Merge remote-tracking branch 'origin/fix-register-auth-with-new-spec' into fix-register-auth-with-new-spec

This commit is contained in:
Marcel 2020-04-10 19:16:34 +02:00
commit 02becb05ca
54 changed files with 3182 additions and 1149 deletions

View file

@ -64,8 +64,8 @@
"create-react-class": "^15.6.0",
"diff-dom": "^4.1.3",
"diff-match-patch": "^1.0.4",
"emojibase-data": "^4.0.2",
"emojibase-regex": "^3.0.0",
"emojibase-data": "^5.0.1",
"emojibase-regex": "^4.0.1",
"escape-html": "^1.0.3",
"file-saver": "^1.3.3",
"filesize": "3.5.6",

View file

@ -23,3 +23,84 @@ limitations under the License.
margin-left: auto;
margin-right: auto;
}
.mx_HomePage_default {
text-align: center;
.mx_HomePage_default_wrapper {
padding: 25vh 0 12px;
}
img {
height: 48px;
}
h1 {
font-weight: 600;
font-size: $font-32px;
line-height: $font-44px;
margin-bottom: 4px;
}
h4 {
margin-top: 4px;
font-weight: 600;
font-size: $font-18px;
line-height: $font-25px;
color: $muted-fg-color;
}
.mx_HomePage_default_buttons {
margin: 80px auto 0;
width: fit-content;
.mx_AccessibleButton {
padding: 73px 8px 15px; // top: 20px top padding + 40px icon + 13px margin
width: 104px; // 120px - 2* 8px
margin: 0 39px; // 55px - 2* 8px
position: relative;
display: inline-block;
border-radius: 8px;
vertical-align: top;
word-break: break-word;
font-weight: 600;
font-size: $font-15px;
line-height: $font-20px;
color: $muted-fg-color;
&:hover {
color: $accent-color;
background: rgba(#03b381, 0.06);
&::before {
background-color: $accent-color;
}
}
&::before {
top: 20px;
left: 40px; // (120px-40px)/2
width: 40px;
height: 40px;
content: '';
position: absolute;
background-color: $muted-fg-color;
mask-repeat: no-repeat;
mask-size: contain;
}
&.mx_HomePage_button_sendDm::before {
mask-image: url('$(res)/img/feather-customised/message-circle.svg');
}
&.mx_HomePage_button_explore::before {
mask-image: url('$(res)/img/feather-customised/explore.svg');
}
&.mx_HomePage_button_createGroup::before {
mask-image: url('$(res)/img/feather-customised/group.svg');
}
}
}
}

View file

@ -61,3 +61,21 @@ limitations under the License.
.mx_VerificationShowSas_emojiSas_break {
flex-basis: 100%;
}
.mx_VerificationShowSas {
.mx_Dialog_buttons {
// this is more specific than the DialogButtons css so gets preference
button.mx_VerificationShowSas_matchButton {
color: $accent-color;
background-color: $accent-bg-color;
border: none;
}
// this is more specific than the DialogButtons css so gets preference
button.mx_VerificationShowSas_noMatchButton {
color: $notice-primary-color;
background-color: $notice-primary-bg-color;
border: none;
}
}
}

View file

@ -0,0 +1,8 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="12" cy="12" r="11.5" stroke="#2E2F32" stroke-linecap="round"/>
<circle cx="12" cy="4" r="0.8" fill="#2E2F32" stroke="#2E2F32" stroke-width="0.4"/>
<circle cx="12" cy="20" r="0.8" fill="#2E2F32" stroke="#2E2F32" stroke-width="0.4"/>
<circle cx="20" cy="12" r="0.8" fill="#2E2F32" stroke="#2E2F32" stroke-width="0.4"/>
<circle cx="4" cy="12" r="0.8" fill="#2E2F32" stroke="#2E2F32" stroke-width="0.4"/>
<path d="M10.7272 10.4443L18.3639 5.63602L13.5556 13.2728L5.636 18.3639L10.7272 10.4443Z" stroke="#2E2F32" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 672 B

View file

@ -0,0 +1,7 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.7273 16.8V15.6666C14.7273 14.4148 13.7504 13.4 12.5455 13.4H8.18182C6.97683 13.4 6 14.4148 6 15.6666V16.8" stroke="#27303A" stroke-linecap="round"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.3636 11.1333C11.5686 11.1333 12.5455 10.1185 12.5455 8.86664C12.5455 7.6148 11.5686 6.59998 10.3636 6.59998C9.15866 6.59998 8.18182 7.6148 8.18182 8.86664C8.18182 10.1185 9.15866 11.1333 10.3636 11.1333Z" stroke="#27303A" stroke-linecap="round"/>
<path d="M18 16.8V15.6666C17.9993 14.6337 17.3264 13.7319 16.3636 13.4736" stroke="#27303A" stroke-linecap="round"/>
<path d="M14.1818 6.67352C15.1472 6.93032 15.8225 7.83405 15.8225 8.86936C15.8225 9.90466 15.1472 10.8084 14.1818 11.0652" stroke="#27303A" stroke-linecap="round"/>
<circle cx="12" cy="12" r="11.5" stroke="#27303A" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 922 B

View file

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M23.5 11.3334L23.5 11.3347C23.5043 13.0157 23.1116 14.6741 22.3537 16.1746L22.3527 16.1765C20.5186 19.8462 16.769 22.1651 12.6665 22.1667L12.6653 22.1667C10.9843 22.1711 9.32594 21.7783 7.82541 21.0204C7.70642 20.9603 7.56835 20.9502 7.44187 20.9923L1.73925 22.8932C1.34837 23.0235 0.976504 22.6516 1.1068 22.2607L3.00767 16.5581C3.04983 16.4317 3.03973 16.2936 2.97963 16.1746C2.22171 14.6741 1.82895 13.0157 1.83333 11.3347L1.83333 11.3335C1.83492 7.23102 4.15379 3.48136 7.82352 1.64729L7.82352 1.64729L7.82541 1.64634C9.32594 0.888416 10.9843 0.495653 12.6653 0.500038H12.6666H13.3194C18.8084 0.809695 23.1903 5.19159 23.5 10.6806L23.5 11.3334Z" stroke="#2E2F32" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 828 B

View file

@ -237,7 +237,7 @@ const walkOpts = {
const fullPath = path.join(root, fileStats.name);
let trs;
if (fileStats.name.endsWith('.js') || fileStats.name.endsWith('.tsx')) {
if (fileStats.name.endsWith('.js') || fileStats.name.endsWith('.ts') || fileStats.name.endsWith('.tsx')) {
trs = getTranslationsJs(fullPath);
} else if (fileStats.name.endsWith('.html')) {
trs = getTranslationsOther(fullPath);

View file

@ -123,8 +123,8 @@ const LAST_VISIT_TS_KEY = "mx_Riot_Analytics_lvts";
function getUid() {
try {
let data = localStorage.getItem(UID_KEY);
if (!data) {
let data = localStorage && localStorage.getItem(UID_KEY);
if (!data && localStorage) {
localStorage.setItem(UID_KEY, data = [...Array(16)].map(() => Math.random().toString(16)[2]).join(''));
}
return data;
@ -145,15 +145,17 @@ class Analytics {
this.firstPage = true;
this._heartbeatIntervalID = null;
this.creationTs = localStorage.getItem(CREATION_TS_KEY);
if (!this.creationTs) {
this.creationTs = localStorage && localStorage.getItem(CREATION_TS_KEY);
if (!this.creationTs && localStorage) {
localStorage.setItem(CREATION_TS_KEY, this.creationTs = new Date().getTime());
}
this.lastVisitTs = localStorage.getItem(LAST_VISIT_TS_KEY);
this.visitCount = localStorage.getItem(VISIT_COUNT_KEY) || 0;
this.lastVisitTs = localStorage && localStorage.getItem(LAST_VISIT_TS_KEY);
this.visitCount = localStorage && localStorage.getItem(VISIT_COUNT_KEY) || 0;
if (localStorage) {
localStorage.setItem(VISIT_COUNT_KEY, parseInt(this.visitCount, 10) + 1);
}
}
get disabled() {
return !this.baseUrl;

View file

@ -60,12 +60,12 @@ import * as sdk from './index';
import { _t } from './languageHandler';
import Matrix from 'matrix-js-sdk';
import dis from './dispatcher';
import SdkConfig from './SdkConfig';
import { showUnknownDeviceDialogForCalls } from './cryptodevices';
import WidgetUtils from './utils/WidgetUtils';
import WidgetEchoStore from './stores/WidgetEchoStore';
import SettingsStore, { SettingLevel } from './settings/SettingsStore';
import {generateHumanReadableId} from "./utils/NamingUtils";
import {Jitsi} from "./widgets/Jitsi";
global.mxCalls = {
//room_id: MatrixCall
@ -431,7 +431,7 @@ async function _startCallApp(roomId, type) {
}
const confId = `JitsiConference${generateHumanReadableId()}`;
const jitsiDomain = SdkConfig.get()['jitsi']['preferredDomain'];
const jitsiDomain = Jitsi.getInstance().preferredDomain;
let widgetUrl = WidgetUtils.getLocalJitsiWrapperUrl();

View file

@ -90,8 +90,15 @@ export default class DeviceListener {
}
_onAccountData = (ev) => {
// User may have migrated SSSS to symmetric, in which case we can dismiss that toast
if (ev.getType().startsWith('m.secret_storage.key.')) {
// User may have:
// * migrated SSSS to symmetric
// * uploaded keys to secret storage
// * completed secret storage creation
// which result in account data changes affecting checks below.
if (
ev.getType().startsWith('m.secret_storage.') ||
ev.getType().startsWith('m.cross_signing.')
) {
this._recheck();
}
}

View file

@ -40,6 +40,7 @@ import ToastStore from "./stores/ToastStore";
import {IntegrationManagers} from "./integrations/IntegrationManagers";
import {Mjolnir} from "./mjolnir/Mjolnir";
import DeviceListener from "./DeviceListener";
import {Jitsi} from "./widgets/Jitsi";
/**
* Called at startup, to attempt to build a logged-in Matrix session. It tries
@ -578,9 +579,6 @@ async function startMatrixClient(startSyncing=true) {
UserActivity.sharedInstance().start();
TypingStore.sharedInstance().reset(); // just in case
ToastStore.sharedInstance().reset();
if (!SettingsStore.getValue("lowBandwidth")) {
Presence.start();
}
DMRoomMap.makeShared().start();
IntegrationManagers.sharedInstance().startWatching();
ActiveWidgetStore.start();
@ -603,6 +601,14 @@ async function startMatrixClient(startSyncing=true) {
// This needs to be started after crypto is set up
DeviceListener.sharedInstance().start();
// Similarly, don't start sending presence updates until we've started
// the client
if (!SettingsStore.getValue("lowBandwidth")) {
Presence.start();
}
// Now that we have a MatrixClientPeg, update the Jitsi info
await Jitsi.getInstance().update();
// dispatch that we finished starting up to wire up any other bits
// of the matrix client that cannot be set prior to starting up.
@ -637,6 +643,10 @@ async function _clearStorage() {
window.localStorage.clear();
}
if (window.sessionStorage) {
window.sessionStorage.clear();
}
// create a temporary client to clear out the persistent stores.
const cli = createMatrixClient({
// we'll never make any requests, so can pass a bogus HS URL

View file

@ -37,6 +37,18 @@ import SettingsStore, {SettingLevel} from "./settings/SettingsStore";
const MAX_PENDING_ENCRYPTED = 20;
/*
Override both the content body and the TextForEvent handler for specific msgtypes, in notifications.
This is useful when the content body contains fallback text that would explain that the client can't handle a particular
type of tile.
*/
const typehandlers = {
"m.key.verification.request": (event) => {
const name = (event.sender || {}).name;
return _t("%(name)s is requesting verification", { name });
},
};
const Notifier = {
notifsByRoom: {},
@ -46,6 +58,9 @@ const Notifier = {
pendingEncryptedEventIds: [],
notificationMessageForEvent: function(ev) {
if (typehandlers.hasOwnProperty(ev.getContent().msgtype)) {
return typehandlers[ev.getContent().msgtype](ev);
}
return TextForEvent.textForEvent(ev);
},
@ -69,7 +84,9 @@ const Notifier = {
title = room.name;
// notificationMessageForEvent includes sender,
// but we already have the sender here
if (ev.getContent().body) msg = ev.getContent().body;
if (ev.getContent().body && !typehandlers.hasOwnProperty(ev.getContent().msgtype)) {
msg = ev.getContent().body;
}
} else if (ev.getType() === 'm.room.member') {
// context is all in the message here, we don't need
// to display sender info
@ -78,7 +95,9 @@ const Notifier = {
title = ev.sender.name + " (" + room.name + ")";
// notificationMessageForEvent includes sender,
// but we've just out sender in the title
if (ev.getContent().body) msg = ev.getContent().body;
if (ev.getContent().body && !typehandlers.hasOwnProperty(ev.getContent().msgtype)) {
msg = ev.getContent().body;
}
}
if (!this.isBodyEnabled()) {

View file

@ -0,0 +1,66 @@
/*
Copyright 2020 The Matrix.org Foundation C.I.C.
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 * as React from "react";
import AutoHideScrollbar from './AutoHideScrollbar';
import { getHomePageUrl } from "../../utils/pages";
import { _t } from "../../languageHandler";
import SdkConfig from "../../SdkConfig";
import * as sdk from "../../index";
import dis from "../../dispatcher";
const onClickSendDm = () => dis.dispatch({action: 'view_create_chat'});
const onClickExplore = () => dis.dispatch({action: 'view_room_directory'});
const onClickNewRoom = () => dis.dispatch({action: 'view_create_room'});
const HomePage = () => {
const config = SdkConfig.get();
const pageUrl = getHomePageUrl(config);
if (pageUrl) {
const EmbeddedPage = sdk.getComponent('structures.EmbeddedPage');
return <EmbeddedPage className="mx_HomePage" url={pageUrl} scrollbar={true} />;
}
const brandingConfig = config.branding;
let logoUrl = "themes/riot/img/logos/riot-logo.svg";
if (brandingConfig && brandingConfig.authHeaderLogoUrl) {
logoUrl = brandingConfig.authHeaderLogoUrl;
}
const AccessibleButton = sdk.getComponent("elements.AccessibleButton");
return <AutoHideScrollbar className="mx_HomePage mx_HomePage_default">
<div className="mx_HomePage_default_wrapper">
<img src={logoUrl} alt="Riot" />
<h1>{ _t("Welcome to %(appName)s", { appName: config.brand || "Riot" }) }</h1>
<h4>{ _t("Liberate your communication") }</h4>
<div className="mx_HomePage_default_buttons">
<AccessibleButton onClick={onClickSendDm} className="mx_HomePage_button_sendDm">
{ _t("Send a Direct Message") }
</AccessibleButton>
<AccessibleButton onClick={onClickExplore} className="mx_HomePage_button_explore">
{ _t("Explore Public Rooms") }
</AccessibleButton>
<AccessibleButton onClick={onClickNewRoom} className="mx_HomePage_button_createGroup">
{ _t("Create a Group Chat") }
</AccessibleButton>
</div>
</div>
</AutoHideScrollbar>;
};
export default HomePage;

View file

@ -32,7 +32,6 @@ import sessionStore from '../../stores/SessionStore';
import {MatrixClientPeg} from '../../MatrixClientPeg';
import SettingsStore from "../../settings/SettingsStore";
import RoomListStore from "../../stores/RoomListStore";
import { getHomePageUrl } from '../../utils/pages';
import TagOrderActions from '../../actions/TagOrderActions';
import RoomListActions from '../../actions/RoomListActions';
@ -40,6 +39,7 @@ import ResizeHandle from '../views/elements/ResizeHandle';
import {Resizer, CollapseDistributor} from '../../resizer';
import MatrixClientContext from "../../contexts/MatrixClientContext";
import * as KeyboardShortcuts from "../../accessibility/KeyboardShortcuts";
import HomePage from "./HomePage";
// We need to fetch each pinned message individually (if we don't already have it)
// so each pinned message may trigger a request. Limit the number per room for sanity.
// NB. this is just for server notices rather than pinned messages in general.
@ -538,7 +538,6 @@ const LoggedInView = createReactClass({
const LeftPanel = sdk.getComponent('structures.LeftPanel');
const RoomView = sdk.getComponent('structures.RoomView');
const UserView = sdk.getComponent('structures.UserView');
const EmbeddedPage = sdk.getComponent('structures.EmbeddedPage');
const GroupView = sdk.getComponent('structures.GroupView');
const MyGroups = sdk.getComponent('structures.MyGroups');
const ToastContainer = sdk.getComponent('structures.ToastContainer');
@ -577,13 +576,7 @@ const LoggedInView = createReactClass({
break;
case PageTypes.HomePage:
{
const pageUrl = getHomePageUrl(this.props.config);
pageElement = <EmbeddedPage className="mx_HomePage"
url={pageUrl}
scrollbar={true}
/>;
}
pageElement = <HomePage />;
break;
case PageTypes.UserView:

View file

@ -26,6 +26,7 @@ import { getHostingLink } from '../../../utils/HostingLink';
import {MatrixClientPeg} from '../../../MatrixClientPeg';
import {MenuItem} from "../../structures/ContextMenu";
import * as sdk from "../../../index";
import {getHomePageUrl} from "../../../utils/pages";
export default class TopLeftMenu extends React.Component {
static propTypes = {
@ -47,15 +48,7 @@ export default class TopLeftMenu extends React.Component {
}
hasHomePage() {
const config = SdkConfig.get();
const pagesConfig = config.embeddedPages;
if (pagesConfig && pagesConfig.homeUrl) {
return true;
}
// This is a deprecated config option for the home page
// (despite the name, given we also now have a welcome
// page, which is not the same).
return !!config.welcomePageUrl;
return !!getHomePageUrl(SdkConfig.get());
}
render() {

View file

@ -1,6 +1,6 @@
/*
Copyright 2016 OpenMarket Ltd
Copyright 2019 The Matrix.org Foundation C.I.C.
Copyright 2019, 2020 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -23,71 +23,109 @@ import Analytics from '../../../Analytics';
import {MatrixClientPeg} from '../../../MatrixClientPeg';
import * as Lifecycle from '../../../Lifecycle';
import { _t } from '../../../languageHandler';
import InteractiveAuth, {ERROR_USER_CANCELLED} from "../../structures/InteractiveAuth";
import {DEFAULT_PHASE, PasswordAuthEntry, SSOAuthEntry} from "../auth/InteractiveAuthEntryComponents";
const dialogAesthetics = {
[SSOAuthEntry.PHASE_PREAUTH]: {
body: _t("Confirm your account deactivation by using Single Sign On to prove your identity."),
continueText: _t("Single Sign On"),
continueKind: "danger",
},
[SSOAuthEntry.PHASE_POSTAUTH]: {
body: _t("Are you sure you want to deactivate your account? This is irreversible."),
continueText: _t("Confirm account deactivation"),
continueKind: "danger",
},
};
// This is the same as aestheticsForStagePhases in InteractiveAuthDialog minus the `title`
const DEACTIVATE_AESTHETICS = {
[SSOAuthEntry.LOGIN_TYPE]: dialogAesthetics,
[SSOAuthEntry.UNSTABLE_LOGIN_TYPE]: dialogAesthetics,
[PasswordAuthEntry.LOGIN_TYPE]: {
[DEFAULT_PHASE]: {
body: _t("To continue, please enter your password:"),
},
},
};
export default class DeactivateAccountDialog extends React.Component {
constructor(props) {
super(props);
this._onOk = this._onOk.bind(this);
this._onCancel = this._onCancel.bind(this);
this._onPasswordFieldChange = this._onPasswordFieldChange.bind(this);
this._onEraseFieldChange = this._onEraseFieldChange.bind(this);
this.state = {
password: "",
busy: false,
shouldErase: false,
errStr: null,
authData: null, // for UIA
// A few strings that are passed to InteractiveAuth for design or are displayed
// next to the InteractiveAuth component.
bodyText: null,
continueText: null,
continueKind: null,
};
}
_onPasswordFieldChange(ev) {
this.setState({
password: ev.target.value,
MatrixClientPeg.get().deactivateAccount(null, false).then(r => {
// If we got here, oops. The server didn't require any auth.
// Our application lifecycle will catch the error and do the logout bits.
// We'll try to log something in an vain attempt to record what happened (storage
// is also obliterated on logout).
console.warn("User's account got deactivated without confirmation: Server had no auth");
this.setState({errStr: _t("Server did not require any authentication")});
}).catch(e => {
if (e && e.httpStatus === 401 && e.data) {
// Valid UIA response
this.setState({authData: e.data});
} else {
this.setState({errStr: _t("Server did not return valid authentication information.")});
}
});
}
_onEraseFieldChange(ev) {
this.setState({
shouldErase: ev.target.checked,
});
_onStagePhaseChange = (stage, phase) => {
const aesthetics = DEACTIVATE_AESTHETICS[stage];
let bodyText = null;
let continueText = null;
let continueKind = null;
if (aesthetics) {
const phaseAesthetics = aesthetics[phase];
if (phaseAesthetics && phaseAesthetics.body) bodyText = phaseAesthetics.body;
if (phaseAesthetics && phaseAesthetics.continueText) continueText = phaseAesthetics.continueText;
if (phaseAesthetics && phaseAesthetics.continueKind) continueKind = phaseAesthetics.continueKind;
}
async _onOk() {
this.setState({busy: true});
try {
// This assumes that the HS requires password UI auth
// for this endpoint. In reality it could be any UI auth.
const auth = {
type: 'm.login.password',
// TODO: Remove `user` once servers support proper UIA
// See https://github.com/vector-im/riot-web/issues/10312
user: MatrixClientPeg.get().credentials.userId,
identifier: {
type: "m.id.user",
user: MatrixClientPeg.get().credentials.userId,
},
password: this.state.password,
this.setState({bodyText, continueText, continueKind});
};
await MatrixClientPeg.get().deactivateAccount(auth, this.state.shouldErase);
} catch (err) {
let errStr = _t('Unknown error');
// https://matrix.org/jira/browse/SYN-744
if (err.httpStatus === 401 || err.httpStatus === 403) {
errStr = _t('Incorrect password');
}
this.setState({
busy: false,
errStr: errStr,
});
_onUIAuthFinished = (success, result, extra) => {
if (success) return; // great! makeRequest() will be called too.
if (result === ERROR_USER_CANCELLED) {
this._onCancel();
return;
}
console.error("Error during UI Auth:", {result, extra});
this.setState({errStr: _t("There was a problem communicating with the server. Please try again.")});
};
_onUIAuthComplete = (auth) => {
MatrixClientPeg.get().deactivateAccount(auth, this.state.shouldErase).then(r => {
// Deactivation worked - logout & close this dialog
Analytics.trackEvent('Account', 'Deactivate Account');
Lifecycle.onLoggedOut();
this.props.onFinished(true);
}
}).catch(e => {
console.error(e);
this.setState({errStr: _t("There was a problem communicating with the server. Please try again.")});
});
};
_onEraseFieldChange = (ev) => {
this.setState({
shouldErase: ev.target.checked,
});
};
_onCancel() {
this.props.onFinished(false);
@ -95,34 +133,36 @@ export default class DeactivateAccountDialog extends React.Component {
render() {
const BaseDialog = sdk.getComponent('views.dialogs.BaseDialog');
const Loader = sdk.getComponent("elements.Spinner");
let passwordBoxClass = '';
let error = null;
if (this.state.errStr) {
error = <div className="error">
{ this.state.errStr }
</div>;
passwordBoxClass = 'error';
}
const okLabel = this.state.busy ? <Loader /> : _t('Deactivate Account');
const okEnabled = this.state.password && !this.state.busy;
let cancelButton = null;
if (!this.state.busy) {
cancelButton = <button onClick={this._onCancel} autoFocus={true}>
{ _t("Cancel") }
</button>;
let auth = <div>{_t("Loading...")}</div>;
if (this.state.authData) {
auth = (
<div>
{this.state.bodyText}
<InteractiveAuth
matrixClient={MatrixClientPeg.get()}
authData={this.state.authData}
makeRequest={this._onUIAuthComplete}
onAuthFinished={this._onUIAuthFinished}
onStagePhaseChange={this._onStagePhaseChange}
continueText={this.state.continueText}
continueKind={this.state.continueKind}
/>
</div>
);
}
const Field = sdk.getComponent('elements.Field');
// this is on purpose not a <form /> to prevent Enter triggering submission, to further prevent accidents
return (
<BaseDialog className="mx_DeactivateAccountDialog"
onFinished={this.props.onFinished}
onEnterPressed={this.onOk}
titleClass="danger"
title={_t("Deactivate Account")}
>
@ -172,28 +212,10 @@ export default class DeactivateAccountDialog extends React.Component {
</label>
</p>
<p>{ _t("To continue, please enter your password:") }</p>
<Field
type="password"
label={_t('Password')}
onChange={this._onPasswordFieldChange}
value={this.state.password}
className={passwordBoxClass}
/>
</div>
{error}
{auth}
</div>
<div className="mx_Dialog_buttons">
<button
className="mx_Dialog_primary danger"
onClick={this._onOk}
disabled={!okEnabled}
>
{ okLabel }
</button>
{ cancelButton }
</div>
</BaseDialog>
);

View file

@ -70,9 +70,16 @@ export default class ShareDialog extends React.Component {
this.onCopyClick = this.onCopyClick.bind(this);
this.onLinkSpecificEventCheckboxClick = this.onLinkSpecificEventCheckboxClick.bind(this);
let permalinkCreator: RoomPermalinkCreator = null;
if (props.target instanceof Room) {
permalinkCreator = new RoomPermalinkCreator(props.target);
permalinkCreator.load();
}
this.state = {
// MatrixEvent defaults to share linkSpecificEvent
linkSpecificEvent: this.props.target instanceof MatrixEvent,
permalinkCreator,
};
this._link = createRef();
@ -121,14 +128,6 @@ export default class ShareDialog extends React.Component {
});
}
componentDidMount() {
if (this.props.target instanceof Room) {
const permalinkCreator = new RoomPermalinkCreator(this.props.target);
permalinkCreator.load();
this.setState({permalinkCreator});
}
}
componentWillUnmount() {
// if the Copied tooltip is open then get rid of it, there are ways to close the modal which wouldn't close
// the tooltip otherwise, such as pressing Escape or clicking X really quickly

View file

@ -61,7 +61,6 @@ export default class VerificationRequestDialog extends React.Component {
verificationRequestPromise={this.props.verificationRequestPromise}
onClose={this.props.onFinished}
member={member}
inDialog={true}
/>
</BaseDialog>;
}

View file

@ -136,22 +136,21 @@ export default class AppTile extends React.Component {
* If url can not be parsed, it is returned unmodified.
*/
_addWurlParams(urlString) {
const u = url.parse(urlString);
if (!u) {
console.error("_addWurlParams", "Invalid URL", urlString);
return url;
try {
const parsed = new URL(urlString);
// TODO: Replace these with proper widget params
// See https://github.com/matrix-org/matrix-doc/pull/1958/files#r405714833
parsed.searchParams.set('widgetId', this.props.app.id);
parsed.searchParams.set('parentUrl', window.location.href.split('#', 2)[0]);
// Replace the encoded dollar signs back to dollar signs. They have no special meaning
// in HTTP, but URL parsers encode them anyways.
return parsed.toString().replace(/%24/g, '$');
} catch (e) {
console.error("Failed to add widget URL params:", e);
return urlString;
}
const params = qs.parse(u.query);
// Append widget ID to query parameters
params.widgetId = this.props.app.id;
// Append current / parent URL, minus the hash because that will change when
// we view a different room (ie. may change for persistent widgets)
params.parentUrl = window.location.href.split('#', 2)[0];
u.search = undefined;
u.query = params;
return u.format();
}
isMixedContent() {

View file

@ -278,7 +278,7 @@ export default createReactClass({
const button = document.createElement("span");
button.className = "mx_EventTile_copyButton";
button.onclick = (e) => {
const copyCode = button.parentNode.getElementsByTagName("code")[0];
const copyCode = button.parentNode.getElementsByTagName("pre")[0];
const successful = this.copyToClipboard(copyCode.textContent);
const buttonRect = e.target.getBoundingClientRect();

View file

@ -32,7 +32,7 @@ import {_t} from "../../../languageHandler";
const MISMATCHES = ["m.key_mismatch", "m.user_error", "m.mismatched_sas"];
const EncryptionPanel = (props) => {
const {verificationRequest, verificationRequestPromise, member, onClose, layout, isRoomEncrypted, inDialog} = props;
const {verificationRequest, verificationRequestPromise, member, onClose, layout, isRoomEncrypted} = props;
const [request, setRequest] = useState(verificationRequest);
// state to show a spinner immediately after clicking "start verification",
// before we have a request
@ -133,7 +133,7 @@ const EncryptionPanel = (props) => {
isSelfVerification={isSelfVerification}
waitingForOtherParty={requested && initiatedByMe}
waitingForNetwork={requested && !initiatedByMe}
inDialog={inDialog} />
inDialog={layout === "dialog"} />
</React.Fragment>);
} else {
return (<React.Fragment>
@ -145,7 +145,7 @@ const EncryptionPanel = (props) => {
member={member}
request={request}
key={request.channel.transactionId}
inDialog={inDialog}
inDialog={layout === "dialog"}
phase={phase}
device={device} />
</React.Fragment>);

View file

@ -94,8 +94,7 @@ export default class BasicMessageEditor extends React.Component {
this._emoticonSettingHandle = null;
}
// TODO: [REACT-WARNING] Move into better lifecycle position
UNSAFE_componentWillUpdate(prevProps) { // eslint-disable-line camelcase
componentDidUpdate(prevProps) {
if (this.props.placeholder !== prevProps.placeholder && this.props.placeholder) {
const {isEmpty} = this.props.model;
if (isEmpty) {

View file

@ -18,7 +18,7 @@ limitations under the License.
import React, {createRef} from 'react';
import PropTypes from 'prop-types';
import createReactClass from 'create-react-class';
import('../../../VelocityBounce');
import '../../../VelocityBounce';
import { _t } from '../../../languageHandler';
import {formatDate} from '../../../DateUtils';
import Velociraptor from "../../../Velociraptor";

View file

@ -81,7 +81,9 @@ export default class CrossSigningPanel extends React.PureComponent {
const crossSigningPrivateKeysInStorage = await crossSigning.isStoredInSecretStorage(secretStorage);
const selfSigningPrivateKeyCached = !!(pkCache && await pkCache.getCrossSigningKeyCache("self_signing"));
const userSigningPrivateKeyCached = !!(pkCache && await pkCache.getCrossSigningKeyCache("user_signing"));
const sessionBackupKeyCached = !!(await cli._crypto.getSessionBackupPrivateKey());
const sessionBackupKeyFromCache = await cli._crypto.getSessionBackupPrivateKey();
const sessionBackupKeyCached = !!(sessionBackupKeyFromCache);
const sessionBackupKeyWellFormed = sessionBackupKeyFromCache instanceof Uint8Array;
const secretStorageKeyInAccount = await secretStorage.hasKey();
const homeserverSupportsCrossSigning =
await cli.doesServerSupportUnstableFeature("org.matrix.e2e_cross_signing");
@ -94,6 +96,7 @@ export default class CrossSigningPanel extends React.PureComponent {
selfSigningPrivateKeyCached,
userSigningPrivateKeyCached,
sessionBackupKeyCached,
sessionBackupKeyWellFormed,
secretStorageKeyInAccount,
homeserverSupportsCrossSigning,
crossSigningReady,
@ -143,6 +146,7 @@ export default class CrossSigningPanel extends React.PureComponent {
selfSigningPrivateKeyCached,
userSigningPrivateKeyCached,
sessionBackupKeyCached,
sessionBackupKeyWellFormed,
secretStorageKeyInAccount,
homeserverSupportsCrossSigning,
crossSigningReady,
@ -208,6 +212,16 @@ export default class CrossSigningPanel extends React.PureComponent {
);
}
let sessionBackupKeyWellFormedText = "";
if (sessionBackupKeyCached) {
sessionBackupKeyWellFormedText = ", ";
if (sessionBackupKeyWellFormed) {
sessionBackupKeyWellFormedText += _t("well formed");
} else {
sessionBackupKeyWellFormedText += _t("unexpected type");
}
}
return (
<div>
{summarisedStatus}
@ -232,7 +246,10 @@ export default class CrossSigningPanel extends React.PureComponent {
</tr>
<tr>
<td>{_t("Session backup key:")}</td>
<td>{sessionBackupKeyCached ? _t("cached locally") : _t("not found locally")}</td>
<td>
{sessionBackupKeyCached ? _t("cached locally") : _t("not found locally")}
{sessionBackupKeyWellFormedText}
</td>
</tr>
<tr>
<td>{_t("Secret storage public key:")}</td>

View file

@ -124,16 +124,21 @@ export default class DevicesPanel extends React.Component {
// pop up an interactive auth dialog
const InteractiveAuthDialog = sdk.getComponent("dialogs.InteractiveAuthDialog");
const numDevices = this.state.selectedDevices.length;
const dialogAesthetics = {
[SSOAuthEntry.PHASE_PREAUTH]: {
title: _t("Use Single Sign On to continue"),
body: _t("Confirm deleting these sessions by using Single Sign On to prove your identity."),
body: _t("Confirm deleting these sessions by using Single Sign On to prove your identity.", {
count: numDevices,
}),
continueText: _t("Single Sign On"),
continueKind: "primary",
},
[SSOAuthEntry.PHASE_POSTAUTH]: {
title: _t("Confirm deleting these sessions"),
body: _t("Click the button below to confirm deleting these sessions."),
body: _t("Click the button below to confirm deleting these sessions.", {
count: numDevices,
}),
continueText: _t("Delete sessions"),
continueKind: "danger",
},

View file

@ -63,7 +63,9 @@ export default class SetupEncryptionToast extends React.PureComponent {
{}, null, /* priority = */ false, /* static = */ true);
} else {
const Spinner = sdk.getComponent("elements.Spinner");
const modal = Modal.createDialog(Spinner, null, 'mx_Dialog_spinner');
const modal = Modal.createDialog(
Spinner, null, 'mx_Dialog_spinner', /* priority */ false, /* static */ true,
);
try {
await accessSecretStorage();
await this._waitForCompletion();

View file

@ -125,10 +125,10 @@ export default class VerificationShowSas extends React.Component {
confirm = <DialogButtons
primaryButton={_t("They match")}
onPrimaryButtonClick={this.onMatchClick}
primaryButtonClass="mx_UserInfo_wideButton"
primaryButtonClass="mx_UserInfo_wideButton mx_VerificationShowSas_matchButton"
cancelButton={_t("They don't match")}
onCancel={this.onDontMatchClick}
cancelButtonClass="mx_UserInfo_wideButton"
cancelButtonClass="mx_UserInfo_wideButton mx_VerificationShowSas_noMatchButton"
/>;
} else {
confirm = <React.Fragment>

View file

@ -1892,5 +1892,74 @@
"The information being sent to us to help make Riot better includes:": "Информацията, която се изпраща за да ни помогне да подобрим Riot включва:",
"There are unknown sessions in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "В тази стая има непознати сесии: ако продължите без да ги потвърдите, ще е възможно някой да подслуша обаждането ви.",
"Review Sessions": "Прегледай сесиите",
"If you cancel now, you won't complete verifying the other user.": "Ако се откажете сега, няма да завършите верификацията на другия потребител."
"If you cancel now, you won't complete verifying the other user.": "Ако се откажете сега, няма да завършите верификацията на другия потребител.",
"Use Single Sign On to continue": "Използвайте Single Sign On за да продължите",
"Confirm adding this email address by using Single Sign On to prove your identity.": "Потвърдете добавянето на този имейл адрес като потвърдите идентичността си чрез Single Sign On.",
"Single Sign On": "Single Sign On",
"Confirm adding email": "Потвърдете добавянето на имейл",
"Click the button below to confirm adding this email address.": "Кликнете бутона по-долу за да потвърдите добавянето на имейл адреса.",
"Confirm adding this phone number by using Single Sign On to prove your identity.": "Потвърдете добавянето на този телефонен номер като докажете идентичността си чрез използване на Single Sign On.",
"Confirm adding phone number": "Потвърдете добавянето на телефонен номер",
"Click the button below to confirm adding this phone number.": "Кликнете бутона по-долу за да потвърдите добавянето на телефонния номер.",
"If you cancel now, you won't complete verifying your other session.": "Ако се откажете сега, няма да завършите потвърждаването на другата ви сесия.",
"If you cancel now, you won't complete your secret storage operation.": "Ако се откажете сега, няма да завърши операцията по секретно складиране.",
"Cancel entering passphrase?": "Откажете въвеждането на парола?",
"Setting up keys": "Настройка на ключове",
"Verify this session": "Потвърди тази сесия",
"Encryption upgrade available": "Има обновление на шифроването",
"Set up encryption": "Настрой шифроване",
"Unverified login. Was this you?": "Непотвърден вход. Вие ли бяхте?",
"Sign In or Create Account": "Влезте или Създайте профил",
"Use your account or create a new one to continue.": "Използвайте профила си или създайте нов за да продължите.",
"Create Account": "Създай профил",
"Sends a message as html, without interpreting it as markdown": "Изпраща съобщението като HTML, без да го интерпретира като Markdown",
"Verifies a user, session, and pubkey tuple": "Потвърждава потребител, сесия и двойка ключове",
"Unknown (user, session) pair:": "Непозната двойка (потребител, сесия):",
"Session already verified!": "Сесията вече е потвърдена!",
"WARNING: Session already verified, but keys do NOT MATCH!": "ВНИМАНИЕ: Сесията вече е потвърдена, но ключовете НЕ СЪВПАДАТ!",
"WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and session %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "ВНИМАНИЕ: ПОТВЪРЖДАВАНЕТО НА КЛЮЧОВЕТЕ Е НЕУСПЕШНО! Подписващия ключ за %(userId)s и сесия %(deviceId)s е \"%(fprint)s\", което не съвпада с предоставения ключ \"%(fingerprint)s\". Това може би означава, че комуникацията ви бива прихваната!",
"The signing key you provided matches the signing key you received from %(userId)s's session %(deviceId)s. Session marked as verified.": "Предоставения от вас ключ за подписване съвпада с ключа за подписване получен от сесия %(deviceId)s на %(userId)s. Сесията е маркирана като потвърдена.",
"Displays information about a user": "Показва информация за потребителя",
"%(senderDisplayName)s changed the room name from %(oldRoomName)s to %(newRoomName)s.": "%(senderDisplayName)s промени името на стаята от %(oldRoomName)s на %(newRoomName)s.",
"%(senderName)s added the alternative addresses %(addresses)s for this room.|other": "%(senderName)s добави алтернативните адреси %(addresses)s към стаята.",
"%(senderName)s added the alternative addresses %(addresses)s for this room.|one": "%(senderName)s добави алтернативният адрес %(addresses)s към стаята.",
"%(senderName)s removed the alternative addresses %(addresses)s for this room.|other": "%(senderName)s премахна алтернативните адреси %(addresses)s от стаята.",
"%(senderName)s removed the alternative addresses %(addresses)s for this room.|one": "%(senderName)s премахна алтернативният адрес %(addresses)s от стаята.",
"%(senderName)s changed the alternative addresses for this room.": "%(senderName)s промени алтернативните адреси на стаята.",
"%(senderName)s changed the main and alternative addresses for this room.": "%(senderName)s промени основният и алтернативните адреси на стаята.",
"%(senderName)s changed the addresses for this room.": "%(senderName)s промени адресите на стаята.",
"Not Trusted": "Недоверено",
"%(name)s (%(userId)s) signed in to a new session without verifying it:": "%(name)s (%(userId)s) влезе в нова сесия без да я потвърди:",
"Ask this user to verify their session, or manually verify it below.": "Поискайте от този потребител да потвърди сесията си, или я потвърдете ръчно по-долу.",
"Manually Verify by Text": "Ръчно потвърждаване чрез текст",
"Interactively verify by Emoji": "Потвърдете интерактивно с Емоджи",
"Done": "Готово",
"a few seconds ago": "преди няколко секунди",
"about a minute ago": "преди около минута",
"%(num)s minutes ago": "преди %(num)s минути",
"about an hour ago": "преди около час",
"%(num)s hours ago": "преди %(num)s часа",
"about a day ago": "преди около ден",
"%(num)s days ago": "преди %(num)s дни",
"a few seconds from now": "след няколко секунди",
"about a minute from now": "след около минута",
"%(num)s minutes from now": "след %(num)s минути",
"about an hour from now": "след около час",
"%(num)s hours from now": "след %(num)s часа",
"about a day from now": "след около ден",
"%(num)s days from now": "след %(num)s дни",
"Show a presence dot next to DMs in the room list": "Показвай точка за присъствие до директните съобщения в списъка със стаи",
"Support adding custom themes": "Включи поддръжка за добавяне на собствени теми",
"Enable cross-signing to verify per-user instead of per-session (in development)": "Включи кръстосано-подписване за потвърждаване на потребител, вместо на отделни сесии (в процес на разработка)",
"Show padlocks on invite only rooms": "Показвай катинари на стаите изискващи покана",
"Show typing notifications": "Показвай уведомления за писане",
"Never send encrypted messages to unverified sessions from this session": "Никога не изпращай шифровани съобщения към непотвърдени сесии от тази сесия",
"Never send encrypted messages to unverified sessions in this room from this session": "Никога не изпращай шифровани съобщения към непотвърдени сесии в тази стая от тази сесия",
"Order rooms by name": "Подреждай стаите по име",
"Show rooms with unread notifications first": "Показвай първи стаите с непрочетени уведомления",
"Show shortcuts to recently viewed rooms above the room list": "Показвай преки пътища до скоро-прегледаните стаи над списъка със стаи",
"Enable message search in encrypted rooms": "Включи търсенето на съобщения в шифровани стаи",
"Keep secret storage passphrase in memory for this session": "Съхрани паролата за секретното складиране в паметта за тази сесия",
"How fast should messages be downloaded.": "Колко бързо да се изтеглят съобщенията.",
"Manually verify all remote sessions": "Ръчно потвърждаване на всички отдалечени сесии"
}

View file

@ -80,7 +80,7 @@
"Attachment": "Příloha",
"Autoplay GIFs and videos": "Automaticky přehrávat GIFy a videa",
"Can't connect to homeserver - please check your connectivity, ensure your <a>homeserver's SSL certificate</a> is trusted, and that a browser extension is not blocking requests.": "Nelze se připojit k domovskému serveru zkontrolujte prosím své připojení, prověřte, zda je <a>SSL certifikát</a> vašeho domovského serveru důvěryhodný, a že některé z rozšíření prohlížeče neblokuje komunikaci.",
"Anyone who knows the room's link, apart from guests": "Kdokoliv s odkazem na místnost, kromě hostů",
"Anyone who knows the room's link, apart from guests": "Kdokoliv s odkazem na místnost, ale pouze registrovaní uživatelé",
"Anyone who knows the room's link, including guests": "Kdokoliv s odkazem na místnost, včetně hostů",
"Banned users": "Vykázaní uživatelé",
"Ban": "Vykázat",
@ -941,9 +941,9 @@
"Nothing appearing? Not all clients support interactive verification yet. <button>Use legacy verification</button>.": "Nic se neděje? Ne všichni klienti klienti podporují interaktivní ověření. <button>Použít starší verzi</button>.",
"Waiting for %(userId)s to confirm...": "Čekáme až to %(userId)s potvrdí...",
"Use two-way text verification": "Použít oboustranné ověření",
"Security & Privacy": "Bezpečnost a soukromí",
"Security & Privacy": "Zabezpečení",
"Encryption": "Šifrování",
"Once enabled, encryption cannot be disabled.": "Když se šifrování zapne, už nepůjde vypnout.",
"Once enabled, encryption cannot be disabled.": "Po zapnutí, už nepůjde šifrování vypnout.",
"Encrypted": "Šifrování",
"General": "Obecné",
"General failure": "Nějaká chyba",
@ -1546,8 +1546,8 @@
"Create a private room": "Vytvořit neveřejnou místnost",
"Topic (optional)": "Téma (volitelné)",
"Make this room public": "Zveřejnit místnost",
"Hide advanced": "Skrýt pokročilé",
"Show advanced": "Zobrazit pokročilé",
"Hide advanced": "Skrýt pokročilé možnosti",
"Show advanced": "Zobrazit pokročilé možnosti",
"Block users on other matrix homeservers from joining this room (This setting cannot be changed later!)": "Zamezit uživatelům jiných domovských serverů, aby do místnosti vstoupili (nelze později změnit!)",
"Your homeserver doesn't seem to support this feature.": "Váš domovský server asi tuto funkci nepodporuje.",
"Message edits": "Editování zpráv",
@ -2170,5 +2170,72 @@
"Mark all as read": "Označit vše jako přečtené",
"Not currently indexing messages for any room.": "Aktuálně neindexujeme žádné zprávy.",
"Currently indexing: %(currentRoom)s.": "Aktuálně indexujeme: %(currentRoom)s.",
"%(doneRooms)s out of %(totalRooms)s": "%(doneRooms)s z %(totalRooms)s"
"%(doneRooms)s out of %(totalRooms)s": "%(doneRooms)s z %(totalRooms)s",
"Review Sessions": "Prověřit relace",
"Unverified login. Was this you?": "Neověřené přihlášeni. Jste to vy?",
"%(senderDisplayName)s changed the room name from %(oldRoomName)s to %(newRoomName)s.": "%(senderDisplayName)s změnil/a jméno místnosti z %(oldRoomName)s na %(newRoomName)s.",
"%(senderName)s added the alternative addresses %(addresses)s for this room.|other": "%(senderName)s přidal/a této místnosti alternativní adresy %(addresses)s.",
"%(senderName)s added the alternative addresses %(addresses)s for this room.|one": "%(senderName)s přidal/a této místnosti alternativní adresu %(addresses)s.",
"%(senderName)s removed the alternative addresses %(addresses)s for this room.|other": "%(senderName)s odebral/a této místnosti alternativní adresy %(addresses)s.",
"%(senderName)s removed the alternative addresses %(addresses)s for this room.|one": "%(senderName)s odebral/a této místnosti alternativní adresu %(addresses)s.",
"%(senderName)s changed the alternative addresses for this room.": "%(senderName)s změnil/a této místnosti alternativní adresy.",
"%(senderName)s changed the main and alternative addresses for this room.": "%(senderName)s změnil/a této místnosti hlavní a alternativní adresy.",
"%(senderName)s changed the addresses for this room.": "%(senderName)s změnil/a této místnosti adresy.",
"Manually Verify by Text": "Manuální textové ověření",
"Interactively verify by Emoji": "Interaktivní ověření s emotikonami",
"Support adding custom themes": "Umožnit přidání vlastního vzhledu",
"Manually verify all remote sessions": "Manuálně ověřit všechny relace",
"Update your secure storage": "Aktualizovat vaše bezpečné úložistě",
"cached locally": "uložen lokálně",
"not found locally": "nenalezen lolálně",
"Secret Storage key format:": "Formát klíče Bezpečného Úložistě:",
"outdated": "zastaralý",
"up to date": "aktuální",
"Individually verify each session used by a user to mark it as trusted, not trusting cross-signed devices.": "Individuálně ověřit každou uživatelovu relaci a označit jí za důvěryhodnou, bez důvěry v cross-signing.",
"Invalid theme schema.": "Neplatné schéma vzhledu.",
"Error downloading theme information.": "Nepovedlo se stáhnout informace o vzhledu.",
"Theme added!": "Motiv vzhledu přidán!",
"Custom theme URL": "URL adresa vlastního vzhledu",
"Add theme": "Přidat motiv vzhledu",
"Keyboard Shortcuts": "Klávesové zkratky",
"Scroll to most recent messages": "Přejít na poslední zprávy",
"There was an error updating the room's alternative addresses. It may not be allowed by the server or a temporary failure occurred.": "Nepovedlo se změnit alternativní adresy místnosti. Možná to server neumožňuje a nebo je to dočasná chyba.",
"You don't have permission to delete the alias.": "Nemáte oprávnění odebrat alias.",
"Local address": "Lokální adresa",
"Published Addresses": "Publikovaná adresa",
"Published addresses can be used by anyone on any server to join your room. To publish an address, it needs to be set as a local address first.": "Publikovaná adresa může být použíta kýmkoli na libovolném serveru pro přidání se do místnosti. Abyste mohli adresu publikovat, musí být nejdříve nastavená jako lokální.",
"Other published addresses:": "Další publikované adresy:",
"No other published addresses yet, add one below": "Zatím žádné další publikované adresy, přidejte nějakou níže",
"New published address (e.g. #alias:server)": "Nové publikované adresy (například #alias:server)",
"Local Addresses": "Lokální Adresy",
"Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)": "Nastavit adresy pro tuto místnost, aby uživatelé mohli místnost najít zkrze váš domovský server (%(localDomain)s)",
"In encrypted rooms, your messages are secured and only you and the recipient have the unique keys to unlock them.": "V šifrovaných místnostech jsou vaše zprávy bezpečné a pouze vy a příjemce má klíče k jejich rozšifrování.",
"Verify all users in a room to ensure it's secure.": "Ověřit všechny uživatele v místnosti, abyste se přesvědčili o bezpečnosti.",
"In encrypted rooms, verify all users to ensure its secure.": "V šifrovaných místnostech ověřit všechny uživatele, abyste se přesvědčili o bezpečnosti.",
"Verified": "Oveřený",
"Verification cancelled": "Oveření bylo zrušeno",
"Compare emoji": "Porovnejte emotikony",
"Enter a server name": "Zadejte jméno serveru",
"Use Single Sign On to continue": "Pokračovat pomocí Jednotného přihlášení",
"Confirm adding this email address by using Single Sign On to prove your identity.": "Potvrďte přidání této adresy pomocí Jednotného přihlášení.",
"Single Sign On": "Jednotné přihlášení",
"Confirm adding email": "Potvrdit přidání emailu",
"Click the button below to confirm adding this email address.": "Kliknutím na tlačítko potvrdíte přidání emailové adresy.",
"Confirm adding this phone number by using Single Sign On to prove your identity.": "Potvrďte přidání telefonního čísla pomocí Jednotného přihlášení.",
"Confirm adding phone number": "Potrvrdit přidání telefonního čísla",
"Click the button below to confirm adding this phone number.": "Kliknutím na tlačítko potvrdíte přidání telefonního čísla.",
"Sends a message as html, without interpreting it as markdown": "Pošle zprávu jako HTML a nebude jí interpretovat jako Markdown",
"Confirm the emoji below are displayed on both sessions, in the same order:": "Potvrďte, že následující emotikony se zobrazují ve stejném pořadí na obou zařízeních:",
"Verify this session by confirming the following number appears on its screen.": "Ověřtě tuto relaci potrvrzením, že se následující čísla objevily na její obrazovce.",
"Waiting for your other session, %(deviceName)s (%(deviceId)s), to verify…": "Čekám na ověření od relace %(deviceName)s (%(deviceId)s)…",
"From %(deviceName)s (%(deviceId)s)": "Od %(deviceName)s (%(deviceId)s)",
"Confirm deleting these sessions by using Single Sign On to prove your identity.": "Potvrďte odstranění těchto relací pomocí Jednotného přihlášení.",
"Confirm deleting these sessions": "Potvrdit odstranění těchto relací",
"Click the button below to confirm deleting these sessions.": "Kliknutím na tlačítko potvrdíte odstranění těchto relací.",
"Delete sessions": "Odstranit relace",
"To report a Matrix-related security issue, please read the Matrix.org <a>Security Disclosure Policy</a>.": "Pro hlášení bezpečnostních problémů s Matrixem si prosím přečtěte <a>naší Bezpečnostní politiku</a> (anglicky).",
"Waiting for you to accept on your other session…": "Čekáme na vaše přijetí v druhé relaci…",
"Almost there! Is your other session showing the same shield?": "Téměř hotovo! Je vaše druhá relace také ověřená?",
"Almost there! Is %(displayName)s showing the same shield?": "Téměř hotovo! Je relace %(displayName)s také ověřená?",
"You've successfully verified %(deviceName)s (%(deviceId)s)!": "Ověřili jste %(deviceName)s (%(deviceId)s)!"
}

View file

@ -64,8 +64,8 @@
"For security, this session has been signed out. Please sign in again.": "Aus Sicherheitsgründen wurde diese Sitzung beendet. Bitte melde dich erneut an.",
"Guests cannot join this room even if explicitly invited.": "Gäste können diesem Raum nicht beitreten, auch wenn sie explizit eingeladen wurden.",
"Hangup": "Auflegen",
"Homeserver is": "Heimserver:",
"Identity Server is": "Identitätsserver:",
"Homeserver is": "Der Heimserver ist",
"Identity Server is": "Der Identitätsserver ist",
"I have verified my email address": "Ich habe meine E-Mail-Adresse verifiziert",
"Import E2E room keys": "E2E-Raum-Schlüssel importieren",
"Invalid Email Address": "Ungültige E-Mail-Adresse",
@ -692,7 +692,7 @@
"You will not be able to undo this change as you are demoting yourself, if you are the last privileged user in the room it will be impossible to regain privileges.": "Du wirst nicht in der Lage sein, die Änderung zurückzusetzen, da du dich degradierst. Wenn du der letze Nutzer mit Berechtigungen bist, wird es unmöglich sein die Privilegien zurückzubekommen.",
"Community IDs cannot be empty.": "Community-IDs können nicht leer sein.",
"Learn more about how we use analytics.": "Lerne mehr darüber, wie wir die Analysedaten nutzen.",
"Where this page includes identifiable information, such as a room, user or group ID, that data is removed before being sent to the server.": "Wenn diese Seite identifizierbare Informationen wie Raum, Nutzer oder Gruppen-ID enthalten, werden diese Daten entfernt bevor sie an den Server gesendet werden.",
"Where this page includes identifiable information, such as a room, user or group ID, that data is removed before being sent to the server.": "Wenn diese Seite identifizierbare Informationen wie Raum-, Nutzer- oder Gruppen-ID enthält, werden diese Daten entfernt bevor sie an den Server gesendet werden.",
"Which officially provided instance you are using, if any": "Welche offiziell angebotene Instanz du nutzt, wenn es der Fall ist",
"<a>In reply to</a> <pill>": "<a>Als Antwort auf</a> <pill>",
"This room is not public. You will not be able to rejoin without an invite.": "Dies ist kein öffentlicher Raum. Du wirst diesen nicht ohne Einladung wieder beitreten können.",
@ -1526,7 +1526,7 @@
"Use an Integration Manager to manage bots, widgets, and sticker packs.": "Verwende einen Integrationsmanager um Bots, Widgets und Sticker Packs zu verwalten.",
"Manage integrations": "Integrationen verwalten",
"Agree to the identity server (%(serverName)s) Terms of Service to allow yourself to be discoverable by email address or phone number.": "Stimme den Nutzungsbedingungen des Identitätsservers %(serverName)s zu, um dich per Email Adresse und Telefonnummer auffindbar zu machen.",
"Clear cache and reload": "Cache löschen und neu laden",
"Clear cache and reload": "Zwischenspeicher löschen und neu laden",
"Customise your experience with experimental labs features. <a>Learn more</a>.": "Passe deine Erfahrung mit experimentellen Lab Funktionen an. <a>Mehr erfahren</a>.",
"Ignored/Blocked": "Ignoriert/Blockiert",
"Something went wrong. Please try again or view your console for hints.": "Etwas ist schief gelaufen. Bitte versuche es erneut oder sieh für weitere Hinweise in deiner Konsole nach.",
@ -1544,9 +1544,9 @@
"You are currently subscribed to:": "Du abonnierst momentan:",
"⚠ These settings are meant for advanced users.": "⚠ Diese Einstellungen sind für fortgeschrittene Nutzer gedacht.",
"The version of Riot": "Die Version von Riot",
"Whether you're using Riot on a device where touch is the primary input mechanism": "Ob Sie Riot auf einem Gerät verwenden, bei dem Berührung der primäre Eingabemechanismus ist",
"Whether you're using Riot on a device where touch is the primary input mechanism": "Ob du Riot auf einem Gerät verwendest, bei dem Berührung der primäre Eingabemechanismus ist",
"Whether you're using Riot as an installed Progressive Web App": "Ob Sie Riot als installierte progressive Web-App verwenden",
"Your user agent": "Ihr User-Agent",
"Your user agent": "Dein User-Agent",
"The information being sent to us to help make Riot better includes:": "Zu den Informationen, die uns zugesandt werden, um zu helfen, Riot besser zu machen, gehören:",
"There are unknown sessions in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "Es sind unbekannte Sitzungen in diesem Raum: Wenn du ohne Verifizierung fortfährst, wird es für jemanden möglich sein, deinen Anruf zu belauschen.",
"If you cancel now, you won't complete verifying the other user.": "Wenn Sie jetzt abbrechen, werden Sie die Verifizierung des anderen Nutzers nicht beenden können.",
@ -1571,9 +1571,9 @@
"Notification sound": "Benachrichtigungston",
"Set a new custom sound": "Setze einen neuen benutzerdefinierten Sound",
"Browse": "Durchsuche",
"Direct Messages": "Direkte Nachrichten",
"Direct Messages": "Direktnachrichten",
"You can use <code>/help</code> to list available commands. Did you mean to send this as a message?": "Sie können <code>/help</code> benutzen, um verfügbare Befehle aufzulisten. Wollten Sie dies als Nachricht senden?",
"Direct message": "Direkte Nachricht",
"Direct message": "Direktnachricht",
"Set a room alias to easily share your room with other people.": "Setze ein Raum-Alias, um deinen Raum einfach mit anderen Personen zu teilen.",
"Suggestions": "Vorschläge",
"Recently Direct Messaged": "Kürzlich direkt verschickt",
@ -1625,7 +1625,7 @@
"Create a private room": "Erstelle einen privaten Raum",
"Topic (optional)": "Thema (optional)",
"Make this room public": "Machen Sie diesen Raum öffentlich",
"Hide advanced": "Fortgeschrittenes ausblenden",
"Hide advanced": "Weitere Einstellungen ausblenden",
"Block users on other matrix homeservers from joining this room (This setting cannot be changed later!)": "Hindere Benutzer auf anderen Matrix-Homeservern daran, diesem Raum beizutreten (Diese Einstellung kann später nicht geändert werden!)",
"Session name": "Name der Sitzung",
"This will allow you to return to your account after signing out, and sign in on other sessions.": "So können Sie nach der Abmeldung zu Ihrem Konto zurückkehren und sich bei anderen Sitzungen anmelden.",
@ -1657,7 +1657,7 @@
"or": "oder",
"Compare unique emoji": "Vergleiche einzigartige Emojis",
"Start": "Starte",
"Discovery": "Entdeckung",
"Discovery": "Kontakte",
"Done": "Erledigt",
"Manually Verify": "Manuell verifizieren",
"Trusted": "Vertrauenswürdig",
@ -1718,8 +1718,8 @@
"Displays information about a user": "Zeigt Informationen über einen Benutzer",
"%(senderDisplayName)s changed the room name from %(oldRoomName)s to %(newRoomName)s.": "%(senderDisplayName)s hat den Raumnamen von %(oldRoomName)s zu %(newRoomName)s geändert.",
"%(senderName)s added the alternative addresses %(addresses)s for this room.|other": "%(senderName)s hat die alternative Adresse %(addresses)s für diesen Raum hinzugefügt.",
"%(senderName)s removed the alternative addresses %(addresses)s for this room.|other": "%(senderName)s hat die alternativen Adressen %(addresses)s für diesen Raum entfernt",
"%(senderName)s removed the alternative addresses %(addresses)s for this room.|one": "%(senderName)s hat die alternative Adresse %(addresses)s für diesen Raum entfernt",
"%(senderName)s removed the alternative addresses %(addresses)s for this room.|other": "%(senderName)s hat die alternativen Adressen %(addresses)s für diesen Raum entfernt.",
"%(senderName)s removed the alternative addresses %(addresses)s for this room.|one": "%(senderName)s hat die alternative Adresse %(addresses)s für diesen Raum entfernt.",
"%(senderName)s changed the alternative addresses for this room.": "%(senderName)s hat die alternative Adresse für diesen Raum geändert.",
"%(senderName)s changed the main and alternative addresses for this room.": "%(senderName)s hat die Haupt- und Alternativadresse für diesen Raum geändert.",
"%(senderName)s removed the rule banning users matching %(glob)s": "%(senderName)s entfernte die Ausschluss-Regel für Nutzer, die %(glob)s entsprechen",
@ -1739,5 +1739,53 @@
"Start chatting": "Chat starten",
"Reject & Ignore user": "Ablehnen & Nutzer ignorieren",
"%(senderName)s changed a rule that was banning users matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s ändert eine Ausschluss-Regel von %(oldGlob)s nach %(newGlob)s, wegen %(reason)s",
"%(senderName)s changed a rule that was banning rooms matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s ändert eine Ausschluss-Regel für Räume von %(oldGlob)s nach %(newGlob)s, wegen %(reason)s"
"%(senderName)s changed a rule that was banning rooms matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s ändert eine Ausschluss-Regel für Räume von %(oldGlob)s nach %(newGlob)s, wegen %(reason)s",
"Allow fallback call assist server turn.matrix.org when your homeserver does not offer one (your IP address would be shared during a call)": "Erlaube den Standard-Server zur Anrufunterstützung (turn.matrix.org) zu verwenden wenn dein Heimserver keinen eigenen anbietet (deine IP Adresse wird bei dem Anruf übermittelt)",
"Show more": "mehr",
"This session is <b>not backing up your keys</b>, but you do have an existing backup you can restore from and add to going forward.": "Diese Sitzung <b>speichert deine Schlüssel nicht</b>, du kannst sie aber an die Schlüsselsicherung anschließen.",
"Connect this session to key backup before signing out to avoid losing any keys that may only be on this session.": "Verbinde diese Sitzung mit deiner Schlüsselsicherung bevor du dich abmeldest, um den Verlust von Schlüsseln zu vermeiden.",
"This backup is trusted because it has been restored on this session": "Dieser Sicherung wird vertraut, da sie während dieser Sitzung wiederhergestellt wurde",
"Enable desktop notifications for this session": "Desktop-Benachrichtigungen für diese Sitzung aktivieren",
"Enable audible notifications for this session": "Aktiviere die akustischen Benachrichtigungen für diese Sitzung",
"Integration Managers receive configuration data, and can modify widgets, send room invites, and set power levels on your behalf.": "Integrationsserver können für dich Widgets einstellen, Raum-Einladungen verschicken oder deine Berechtigungen setzen.",
"Read Marker lifetime (ms)": "Gültigkeitsdauer der Gelesen-Markierung (ms)",
"Read Marker off-screen lifetime (ms)": "Gültigkeitsdauer der Gelesen-Markierung außerhalb des Bildschirms (ms)",
"Session key:": "Sitzungsschlüssel:",
"A session's public name is visible to people you communicate with": "Der Sitzungsname ist sichtbar für die Personen mit denen du kommunizierst",
"Sounds": "Töne",
"Upgrade the room": "Raum hochstufen",
"Enable room encryption": "Verschlüsselung aktivieren",
"This message cannot be decrypted": "Diese Nachricht konnte nicht entschlüsselt werden",
"Encrypted by an unverified session": "Verschlüsselt von einer unbekannten Sitzung",
"Unencrypted": "Unverschlüsselt",
"Encrypted by a deleted session": "Verschlüsselt von einer gelöschten Sitzung",
"The encryption used by this room isn't supported.": "Die Verschlüsselung, die dieser Raum verwendet, wird nicht unterstützt.",
"React": "Reaktion hinzufügen",
"e.g. my-room": "z.B. mein-raum",
"Use an identity server to invite by email. <default>Use the default (%(defaultIdentityServerName)s)</default> or manage in <settings>Settings</settings>.": "Verwende einen Identitätsserver um mit einer E-Mail-Adresse einzuladen. <default>Benutzer den Standard-Identitätsserver (%(defaultIdentityServerName)s)</default> oder konfiguriere einen in den <settings>Einstellungen</settings>.",
"Use an identity server to invite by email. Manage in <settings>Settings</settings>.": "Verwende einen Identitätsserver um mit einer E-Mail-Adresse einzuladen. Diese können in den <settings>Einstellungen</settings> konfiguriert werden.",
"Create a public room": "Erstelle einen öffentlichen Raum",
"Show advanced": "Weitere Einstellungen anzeigen",
"Verify session": "Sitzung verifizieren",
"To verify that this session 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 session matches the key below:": "Um diese Sitzung zu verifizieren kontaktiere bitte den Benutzer über einen anderen Kanal (z.B. persönlich oder mit einem Telefonanruf) und frage ihn ob der Sitzungsschlüssel in seinen Benutzereinstellungen mit dem hier angezeigten übereinstimmt:",
"Session key": "Sitzungsschlüssel",
"If it matches, press the verify button below. If it doesn't, then someone else is intercepting this session and you probably want to press the blacklist button instead.": "Wenn die Sitzungsschlüssel übereinstimmen, drücke den Knopf zur Bestätigung. Stimmen sie nicht überein versucht jemand diese Sitzung abzufangen und du solltest diese Sitzung blockieren.",
"Recent Conversations": "Letzte Unterhaltungen",
"Report Content to Your Homeserver Administrator": "Inhalte an den Administrator deines Heimservers melden",
"Reporting this message will send its unique 'event ID' to the administrator of your homeserver. If messages in this room are encrypted, your homeserver administrator will not be able to read the message text or view any files or images.": "Wenn du diese Nachricht meldest wird dessen einzigartige 'event ID' an den Administrator deines Heimservers übermittelt. Wenn die Nachrichten in diesem Raum verschlüsselt sind wird dein Administrator nicht in der Lage sein den Text zu lesen oder Medien einzusehen.",
"Send report": "Bericht senden",
"Enter recovery passphrase": "Gib die Wiederherstellungspassphrase ein",
"Enter recovery key": "Wiederherstellungspassphrase eingeben",
"Report Content": "Inhalte melden",
"Set an email for account recovery. Use email to optionally be discoverable by existing contacts.": "Gib eine E-Mail-Adresse an um dein Konto wiederherstellen zu können. Die E-Mail-Adresse kann auch genutzt werden um deinen Kontakt zu finden.",
"Enter your custom homeserver URL <a>What does this mean?</a>": "Gib eine andere Heimserver-Adresse an <a>Was bedeutet das?</a>",
"%(creator)s created and configured the room.": "%(creator)s hat den Raum erstellt und konfiguriert.",
"Sender session information": "Absender Sitzungsinformationen",
"Set up with a recovery key": "Mit einem Wiederherstellungsschlüssel einrichten",
"Keep a copy of it somewhere secure, like a password manager or even a safe.": "Bewahre ihn sicher auf, wie in einem Passwort-Manager oder einem Safe.",
"Your recovery key": "Dein Wiederherstellungsschlüssel",
"Copy": "In Zwischenablage kopieren",
"Make a copy of your recovery key": "Speichere deinen Wiederherstellungsschlüssel",
"Unverified login. Was this you?": "Nicht verifzierte Anmeldung. Bist du es gewesen?",
"Sends a message as html, without interpreting it as markdown": "Verschickt eine Nachricht im html-Format, ohne sie in Markdown zu formatieren"
}

View file

@ -125,6 +125,7 @@
"This action requires accessing the default identity server <server /> to validate an email address or phone number, but the server does not have any terms of service.": "This action requires accessing the default identity server <server /> to validate an email address or phone number, but the server does not have any terms of service.",
"Only continue if you trust the owner of the server.": "Only continue if you trust the owner of the server.",
"Trust": "Trust",
"%(name)s is requesting verification": "%(name)s is requesting verification",
"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",
"Unable to enable Notifications": "Unable to enable Notifications",
@ -591,6 +592,8 @@
"Cross-signing and secret storage are not yet set up.": "Cross-signing and secret storage are not yet set up.",
"Reset cross-signing and secret storage": "Reset cross-signing and secret storage",
"Bootstrap cross-signing and secret storage": "Bootstrap cross-signing and secret storage",
"well formed": "well formed",
"unexpected type": "unexpected type",
"Cross-signing public keys:": "Cross-signing public keys:",
"in memory": "in memory",
"not found": "not found",
@ -610,9 +613,11 @@
"up to date": "up to date",
"Your homeserver does not support session management.": "Your homeserver does not support session management.",
"Unable to load session list": "Unable to load session list",
"Confirm deleting these sessions by using Single Sign On to prove your identity.": "Confirm deleting these sessions by using Single Sign On to prove your identity.",
"Confirm deleting these sessions by using Single Sign On to prove your identity.|other": "Confirm deleting these sessions by using Single Sign On to prove your identity.",
"Confirm deleting these sessions by using Single Sign On to prove your identity.|one": "Confirm deleting this session by using Single Sign On to prove your identity.",
"Confirm deleting these sessions": "Confirm deleting these sessions",
"Click the button below to confirm deleting these sessions.": "Click the button below to confirm deleting these sessions.",
"Click the button below to confirm deleting these sessions.|other": "Click the button below to confirm deleting these sessions.",
"Click the button below to confirm deleting these sessions.|one": "Click the button below to confirm deleting this session.",
"Delete sessions": "Delete sessions",
"Authentication": "Authentication",
"Delete %(count)s sessions|other": "Delete %(count)s sessions",
@ -1566,13 +1571,17 @@
"You've previously used a newer version of Riot on %(host)s. To use this version again with end to end encryption, you will need to sign out and back in again. ": "You've previously used a newer version of Riot on %(host)s. To use this version again with end to end encryption, you will need to sign out and back in again. ",
"Incompatible Database": "Incompatible Database",
"Continue With Encryption Disabled": "Continue With Encryption Disabled",
"Unknown error": "Unknown error",
"Incorrect password": "Incorrect password",
"Confirm your account deactivation by using Single Sign On to prove your identity.": "Confirm your account deactivation by using Single Sign On to prove your identity.",
"Are you sure you want to deactivate your account? This is irreversible.": "Are you sure you want to deactivate your account? This is irreversible.",
"Confirm account deactivation": "Confirm account deactivation",
"To continue, please enter your password:": "To continue, please enter your password:",
"Server did not require any authentication": "Server did not require any authentication",
"Server did not return valid authentication information.": "Server did not return valid authentication information.",
"There was a problem communicating with the server. Please try again.": "There was a problem communicating with the server. Please try again.",
"This will make your account permanently unusable. You will not be able to log in, and no one will be able to re-register the same user ID. This will cause your account to leave all rooms it is participating in, and it will remove your account details from your identity server. <b>This action is irreversible.</b>": "This will make your account permanently unusable. You will not be able to log in, and no one will be able to re-register the same user ID. This will cause your account to leave all rooms it is participating in, and it will remove your account details from your identity server. <b>This action is irreversible.</b>",
"Deactivating your account <b>does not by default cause us to forget messages you have sent.</b> If you would like us to forget your messages, please tick the box below.": "Deactivating your account <b>does not by default cause us to forget messages you have sent.</b> If you would like us to forget your messages, please tick the box below.",
"Message visibility in Matrix is similar to email. Our forgetting your messages means that messages you have sent will not be shared with any new or unregistered users, but registered users who already have access to these messages will still have access to their copy.": "Message visibility in Matrix is similar to email. Our forgetting your messages means that messages you have sent will not be shared with any new or unregistered users, but registered users who already have access to these messages will still have access to their copy.",
"Please forget all messages I have sent when my account is deactivated (<b>Warning:</b> this will cause future users to see an incomplete view of conversations)": "Please forget all messages I have sent when my account is deactivated (<b>Warning:</b> this will cause future users to see an incomplete view of conversations)",
"To continue, please enter your password:": "To continue, please enter your password:",
"Verify session": "Verify session",
"Use Legacy Verification (for older clients)": "Use Legacy Verification (for older clients)",
"Verify by comparing a short text string.": "Verify by comparing a short text string.",
@ -1954,6 +1963,11 @@
"Community %(groupId)s not found": "Community %(groupId)s not found",
"This homeserver does not support communities": "This homeserver does not support communities",
"Failed to load %(groupId)s": "Failed to load %(groupId)s",
"Welcome to %(appName)s": "Welcome to %(appName)s",
"Liberate your communication": "Liberate your communication",
"Send a Direct Message": "Send a Direct Message",
"Explore Public Rooms": "Explore Public Rooms",
"Create a Group Chat": "Create a Group Chat",
"Explore": "Explore",
"Filter": "Filter",
"Filter rooms…": "Filter rooms…",
@ -1963,6 +1977,7 @@
"Failed to leave room": "Failed to leave room",
"Can't leave Server Notices room": "Can't leave Server Notices room",
"This room is used for important messages from the Homeserver, so you cannot leave it.": "This room is used for important messages from the Homeserver, so you cannot leave it.",
"Unknown error": "Unknown error",
"Signed Out": "Signed Out",
"For security, this session has been signed out. Please sign in again.": "For security, this session has been signed out. Please sign in again.",
"Terms and Conditions": "Terms and Conditions",
@ -2102,6 +2117,7 @@
"Without completing security on this session, it wont have access to encrypted messages.": "Without completing security on this session, it wont have access to encrypted messages.",
"Go Back": "Go Back",
"Failed to re-authenticate due to a homeserver problem": "Failed to re-authenticate due to a homeserver problem",
"Incorrect password": "Incorrect password",
"Failed to re-authenticate": "Failed to re-authenticate",
"Regain access to your account and recover encryption keys stored in this session. Without them, you wont be able to read all of your secure messages in any session.": "Regain access to your account and recover encryption keys stored in this session. Without them, you wont be able to read all of your secure messages in any session.",
"Enter your password to sign in and regain access to your account.": "Enter your password to sign in and regain access to your account.",

View file

@ -2213,7 +2213,7 @@
"If you cant access one, <button>use your recovery key or passphrase.</button>": "Se vi ne povas iun atingi, <button>uzu vian rehavan ŝlosilon aŭ pasfrazon.</button>",
"Manually Verify by Text": "Permane kontroli tekste",
"Interactively verify by Emoji": "Interage kontroli bildosigne",
"Self signing private key:": "Memsubskriba privata ŝlosilo",
"Self signing private key:": "Memsubskriba privata ŝlosilo:",
"cached locally": "kaŝmemorita loke",
"not found locally": "ne trovita loke",
"User signing private key:": "Uzantosubskriba privata ŝlosilo:",
@ -2233,7 +2233,7 @@
"Signature upload success": "Alŝuto de subskribo sukcesis",
"Signature upload failed": "Alŝuto de subskribo malsukcesis",
"Confirm by comparing the following with the User Settings in your other session:": "Konfirmu per komparo de la sekva kun la agardoj de uzanto en via alia salutaĵo:",
"Confirm this user's session by comparing the following with their User Settings:": "Konfirmu la salutaĵon de ĉi tiu uzanto per komparo de la sekva kun ĝiaj agordoj de uzanto",
"Confirm this user's session by comparing the following with their User Settings:": "Konfirmu la salutaĵon de ĉi tiu uzanto per komparo de la sekva kun ĝiaj agordoj de uzanto:",
"If they don't match, the security of your communication may be compromised.": "Se ili ne akordas, la sekureco de via komunikado eble estas rompita.",
"Navigation": "Navigado",
"Calls": "Vokoj",
@ -2274,5 +2274,20 @@
"Esc": "Eskapa klavo",
"Enter": "Eniga klavo",
"Space": "Spaco",
"End": "Finen-klavo"
"End": "Finen-klavo",
"Whether you're using Riot as an installed Progressive Web App": "Ĉu vi uzas Rioton kiel Progresan retan aplikaĵon",
"Review Sessions": "Rekontroli salutaĵojn",
"Unverified login. Was this you?": "Nekontrolita salutaĵo. Ĉu tio estis vi?",
"Manually verify all remote sessions": "Permane kontroli ĉiujn forajn salutaĵojn",
"Update your secure storage": "Ĝisdatigi vian sekuran deponejon",
"Session backup key:": "Savkopia ŝlosilo de salutaĵo:",
"Individually verify each session used by a user to mark it as trusted, not trusting cross-signed devices.": "Unuope kontroli ĉiun salutaĵon de uzanto por marki ĝin fidata, ne fidante transire subskribitajn aparatojn.",
"Invalid theme schema.": "Nevalida skemo de haŭto.",
"Mod": "Reguligisto",
"In encrypted rooms, your messages are secured and only you and the recipient have the unique keys to unlock them.": "En ĉifritaj ĉambroj, viaj mesaĝoj estas sekurigitaj, kaj nur vi kaj la ricevanto havas la unikajn malĉifrajn ŝlosilojn.",
"Verify all users in a room to ensure it's secure.": "Kontroli ĉiujn uzantojn en ĉambro por certigi, ke ĝi sekuras.",
"In encrypted rooms, verify all users to ensure its secure.": "En ĉifritaj ĉambroj, kontroli ĉiujn uzantojn por certigi, ke ili sekuras.",
"Verified": "Kontrolita",
"Verification cancelled": "Kontrolo nuliĝis",
"Compare emoji": "Kompari bildsignojn"
}

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

@ -0,0 +1 @@
{}

View file

@ -2275,5 +2275,26 @@
"Esc": "Esc",
"Enter": "Sartu",
"Space": "Zuriune-barra",
"End": "Amaiera"
"End": "Amaiera",
"Manually verify all remote sessions": "Egiaztatu eskuz urruneko saio guztiak",
"Update your secure storage": "Eguneratu zure biltegi segurua",
"Self signing private key:": "Norberak sinatutako gako pribatua:",
"cached locally": "cache lokalean",
"not found locally": "ez da lokalean aurkitu",
"User signing private key:": "Erabiltzaileak sinatzeko gako pribatua:",
"Secret Storage key format:": "Biltegi sekretuaren gakoaren formatua:",
"outdated": "zaharkitua",
"up to date": "egunean",
"Individually verify each session used by a user to mark it as trusted, not trusting cross-signed devices.": "Egiaztatu erabiltzaile baten saio bakoitza hau fidagarri gisa markatzeko, ez dira zeharka sinatutako gailuak fidagarritzat jotzen.",
"In encrypted rooms, your messages are secured and only you and the recipient have the unique keys to unlock them.": "Gela zifratuetan, zuon mezuak babestuta daude, zuk zeuk eta hartzaileak bakarrik duzue hauek deszifratzeko gako bakanak.",
"Verify all users in a room to ensure it's secure.": "Egiaztatu gela bateko erabiltzaile guztiak segurua dela baieztatzeko.",
"In encrypted rooms, verify all users to ensure its secure.": "Gela zifratuetan, egiaztatu erabiltzaile guztiak segurua dela baieztatzeko.",
"Verified": "Egiaztatuta",
"Verification cancelled": "Egiaztaketa ezeztatuta",
"Compare emoji": "Konparatu emojiak",
"Unverified login. Was this you?": "Egiaztatu gabeko saioa. Zu izan zara?",
"Session backup key:": "Saioaren babes-kopia gakoa:",
"Sends a message as html, without interpreting it as markdown": "Bidali mezua html gisa, markdown balitz aztertu gabe",
"Sign in with SSO": "Hasi saioa SSO-rekin",
"Cancel replying to a message": "Utzi mezua erantzuteari"
}

View file

@ -1174,7 +1174,7 @@
"Only room administrators will see this warning": "Vain huoneen ylläpitäjät näkevät tämän varoituksen",
"Add some now": "Lisää muutamia",
"Error updating main address": "Pääosoitteen päivityksessä tapahtui virhe",
"There was an error updating the room's main address. It may not be allowed by the server or a temporary failure occurred.": "Huoneen pääosoitteen päivityksessä tapahtui virhe. Se ei välttämättä ole sallittua tällä palevlimella tai kyseessä on väliaikainen virhe.",
"There was an error updating the room's main address. It may not be allowed by the server or a temporary failure occurred.": "Huoneen pääosoitteen päivityksessä tapahtui virhe. Se ei välttämättä ole sallittua tällä palvelimella tai kyseessä on väliaikainen virhe.",
"Error creating alias": "Aliaksen luonnissa tapahtui virhe",
"There was an error creating that alias. It may not be allowed by the server or a temporary failure occurred.": "Aliaksen luonnissa tapahtui virhe. Se ei välttämättä ole sallittua tällä palvelimella tai kyseessä on väliaikainen virhe.",
"Error removing alias": "Aliaksen poistossa tapahtui virhe",
@ -2052,5 +2052,59 @@
"This bridge was provisioned by <user />.": "Tämän sillan tarjoaa käyttäjä <user />.",
"This bridge is managed by <user />.": "Tätä siltaa hallinnoi käyttäjä <user />.",
"Workspace: %(networkName)s": "Työtila: %(networkName)s",
"Channel: %(channelName)s": "Kanava: %(channelName)s"
"Channel: %(channelName)s": "Kanava: %(channelName)s",
"outdated": "vanhentunut",
"up to date": "ajan tasalla",
"Delete %(count)s sessions|other": "Poista %(count)s istuntoa",
"Enable": "Ota käyttöön",
"Backup is not signed by any of your sessions": "Mikään istuntosi ei ole allekirjoittanut varmuuskopiota",
"Theme added!": "Teema lisätty!",
"Add theme": "Lisää teema",
"Scroll to most recent messages": "Vieritä tuoreimpiin viesteihin",
"There was an error updating the room's alternative addresses. It may not be allowed by the server or a temporary failure occurred.": "Huoneen vaihtoehtoisten osoitteiden päivittämisessä tapahtui virhe. Palvelin ei ehkä salli sitä tai syynä oli tilapäinen virhe.",
"You don't have permission to delete the alias.": "Sinulla ei ole lupaa poistaa aliasta.",
"Local address": "Paikallinen osoite",
"Local Addresses": "Paikalliset osoitteet",
"Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)": "Aseta osoitteita tälle huoneelle, jotta käyttäjät löytävät tämän huoneen kotipalvelimeltasi (%(localDomain)s)",
"Your messages are not secure": "Viestisi eivät ole turvassa",
"Accepting …": "Hyväksytään …",
"Declining …": "Kieltäydytään …",
"Enter a server name": "Syötä palvelimen nimi",
"Looks good": "Hyvältä näyttää",
"Can't find this server or its room list": "Tätä palvelinta tai sen huoneluetteloa ei löydy",
"All rooms": "Kaikki huoneet",
"Your server": "Palvelimesi",
"Are you sure you want to remove <b>%(serverName)s</b>": "Haluatko varmasti poistaa palvelimen <b>%(serverName)s</b>",
"Remove server": "Poista palvelin",
"Matrix": "Matrix",
"Add a new server": "Lisää uusi palvelin",
"Server name": "Palvelimen nimi",
"Add a new server...": "Lisää uusi palvelin...",
"If you didnt sign in to this session, your account may be compromised.": "Jos et kirjautunut tähän istuntoon, käyttäjätilisi saattaa olla vaarantunut.",
"This wasn't me": "Tämä en ollut minä",
"Unknown sessions": "Tuntemattomat istunnot",
"Waiting…": "Odotetaan…",
"Disable": "Poista käytöstä",
"Calls": "Puhelut",
"Room List": "Huoneluettelo",
"Autocomplete": "Automaattinen täydennys",
"Alt": "Alt",
"Alt Gr": "Alt Gr",
"Shift": "Vaihto",
"Ctrl": "Ctrl",
"Toggle Bold": "Lihavointi päälle/pois",
"Toggle Italics": "Kursivointi päälle/pois",
"Toggle Quote": "Lainaus päälle/pois",
"New line": "Rivinvaihto",
"Toggle microphone mute": "Mikrofonin mykistys päälle/pois",
"Toggle video on/off": "Video päälle/pois",
"Scroll up/down in the timeline": "Vieritä aikajanaa ylöspäin/alaspäin",
"Activate selected button": "Aktivoi valittu painike",
"Cancel autocomplete": "Peruuta automaattinen täydennys",
"Page Up": "Page Up",
"Page Down": "Page Down",
"Esc": "Esc",
"Enter": "Enter",
"Space": "Välilyönti",
"End": "End"
}

View file

@ -787,7 +787,7 @@
"Reject": "Rejeter",
"Failed to set Direct Message status of room": "Échec du réglage de l'état du salon en Discussion directe",
"Monday": "Lundi",
"All messages (noisy)": "Tous les messages (fort)",
"All messages (noisy)": "Tous les messages (sonore)",
"Enable them now": "Les activer maintenant",
"Toolbox": "Boîte à outils",
"Collecting logs": "Récupération des journaux",
@ -2040,7 +2040,7 @@
"This backup is trusted because it has been restored on this session": "Cette sauvegarde est fiable car elle a été restaurée sur cette session",
"Backup key stored in secret storage, but this feature is not enabled on this session. Please enable cross-signing in Labs to modify key backup state.": "Une sauvegarde de clés est stockée dans le coffre secret, mais cette fonctionnalité nest pas activée sur cette session. Activez la signature croisée dans le Labo pour modifier létat de la sauvegarde de clés.",
"Your keys are <b>not being backed up from this session</b>.": "Vos clés <b>ne sont pas sauvegardées sur cette session</b>.",
"Enable desktop notifications for this session": "Activer les notifications de lordinateur pour cette session",
"Enable desktop notifications for this session": "Activer les notifications de bureau pour cette session",
"Enable audible notifications for this session": "Activer les notifications sonores pour cette session",
"Your password was successfully changed. You will not receive push notifications on other sessions until you log back in to them": "Votre mot de passe a été modifié. Vous ne recevrez plus de notifications push sur les autres sessions tant que vous ne vous y serez pas reconnecté",
"Session ID:": "Identifiant de session :",
@ -2291,5 +2291,59 @@
"Toggle right panel": "Afficher/masquer le panneau de droite",
"Secret Storage key format:": "Format de clé du coffre secret :",
"outdated": "obsolète",
"up to date": "à jour"
"up to date": "à jour",
"Unverified login. Was this you?": "Connexion non vérifiée. Était-ce vous ?",
"Manually verify all remote sessions": "Vérifier manuellement toutes les sessions à distance",
"Update your secure storage": "Mettre à jour votre coffre sécurisé",
"Self signing private key:": "Clé privée dauto-signature :",
"cached locally": "mise en cache localement",
"not found locally": "non trouvée localement",
"User signing private key:": "Clé privée de signature de lutilisateur :",
"Session backup key:": "Clé de sauvegarde de session :",
"Individually verify each session used by a user to mark it as trusted, not trusting cross-signed devices.": "Vérifiez individuellement chaque session utilisée par un utilisateur pour la marquer comme fiable, sans faire confiance aux appareils signés avec la signature croisée.",
"In encrypted rooms, your messages are secured and only you and the recipient have the unique keys to unlock them.": "Dans les salons chiffrés, vos messages sont sécurisés et seuls vous et le destinataire avez les clés uniques pour les déchiffrer.",
"Verify all users in a room to ensure it's secure.": "Vérifiez tous les utilisateurs dun salon pour vous assurer quil est sécurisé.",
"In encrypted rooms, verify all users to ensure its secure.": "Dans les salons chiffrés, vérifiez tous les utilisateurs pour vous assurer quil est sécurisé.",
"Verified": "Vérifié",
"Verification cancelled": "Vérification annulée",
"Compare emoji": "Comparer des émojis",
"Sends a message as html, without interpreting it as markdown": "Envoie un message en HTML, sans linterpréter comme du Markdown",
"Sign in with SSO": "Se connecter avec lauthentification unique",
"Cancel replying to a message": "Annuler la réponse à un message",
"Use Single Sign On to continue": "Utiliser lauthentification unique pour continuer",
"Confirm adding this email address by using Single Sign On to prove your identity.": "Confirmez lajout de cette adresse e-mail en utilisant lauthentification unique pour prouver votre identité.",
"Single Sign On": "Authentification unique",
"Confirm adding email": "Confirmer lajout de le-mail",
"Click the button below to confirm adding this email address.": "Cliquez sur le bouton ci-dessous pour confirmer lajout de ladresse e-mail.",
"Confirm adding this phone number by using Single Sign On to prove your identity.": "Confirmez lajout de ce numéro de téléphone en utilisant lauthentification unique pour prouver votre identité.",
"Confirm adding phone number": "Confirmer lajout du numéro de téléphone",
"Click the button below to confirm adding this phone number.": "Cliquez sur le bouton ci-dessous pour confirmer lajout de ce numéro de téléphone.",
"Confirm deleting these sessions by using Single Sign On to prove your identity.": "Confirmez la suppression de ces sessions en utilisant lauthentification unique pour prouver votre identité.",
"Confirm deleting these sessions": "Confirmer la suppression de ces sessions",
"Click the button below to confirm deleting these sessions.": "Cliquez sur le bouton ci-dessous pour confirmer la suppression de ces sessions.",
"Delete sessions": "Supprimer les sessions",
"Confirm the emoji below are displayed on both sessions, in the same order:": "Confirmez que les émojis ci-dessous saffichent dans les deux sessions et dans le même ordre :",
"Verify this session by confirming the following number appears on its screen.": "Vérifiez cette session en confirmant que le nombre suivant saffiche sur son écran.",
"Waiting for your other session, %(deviceName)s (%(deviceId)s), to verify…": "Dans lattente que votre autre session, %(deviceName)s (%(deviceId)s), vérifie…",
"From %(deviceName)s (%(deviceId)s)": "Depuis %(deviceName)s (%(deviceId)s)",
"Waiting for you to accept on your other session…": "Dans lattente que vous acceptiez dans votre autre session…",
"Almost there! Is your other session showing the same shield?": "On y est presque ! Est-ce que votre autre session affiche le même bouclier ?",
"Almost there! Is %(displayName)s showing the same shield?": "On y est presque ! Est-ce que %(displayName)s affiche le même bouclier ?",
"You've successfully verified %(deviceName)s (%(deviceId)s)!": "Vous avez bien vérifié %(deviceName)s (%(deviceId)s) !",
"Start verification again from the notification.": "Recommencer la vérification depuis la notification.",
"Start verification again from their profile.": "Recommencer la vérification depuis son profil.",
"Verification timed out.": "La vérification a expiré.",
"You cancelled verification on your other session.": "Vous avez annulé la vérification dans votre autre session.",
"%(displayName)s cancelled verification.": "%(displayName)s a annulé la vérification.",
"You cancelled verification.": "Vous avez annulé la vérification.",
"Self-verification request": "Demande dauto-vérification",
"Confirm deleting these sessions by using Single Sign On to prove your identity.|other": "Confirmez la suppression de ces sessions en utilisant lauthentification unique pour prouver votre identité.",
"Confirm deleting these sessions by using Single Sign On to prove your identity.|one": "Confirmez la suppression de cette session en utilisant lauthentification unique pour prouver votre identité.",
"Click the button below to confirm deleting these sessions.|other": "Cliquez sur le bouton ci-dessous pour confirmer la suppression de ces sessions.",
"Click the button below to confirm deleting these sessions.|one": "Cliquez sur le bouton ci-dessous pour confirmer la suppression de cette session.",
"Welcome to %(appName)s": "Bienvenue sur %(appName)s",
"Liberate your communication": "Libérez votre communication",
"Send a Direct Message": "Envoyez un message direct",
"Explore Public Rooms": "Explorez les salons publics",
"Create a Group Chat": "Créez une discussion de groupe"
}

View file

@ -207,5 +207,6 @@
"Thank you!": "רב תודות!",
"With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "באמצעות הדפדפן הנוכחי שלך המראה של היישום יכול להיות שגוי לחלוטין וחלק מהאפשרויות לא תתפקדנה. אם תרצה לנסות בכל זאת תוכל אבל אז כל האחריות עליך!",
"Checking for an update...": "בודק עדכונים...",
"There are advanced notifications which are not shown here": "ישנן התראות מתקדמות אשר אינן מוצגות כאן"
"There are advanced notifications which are not shown here": "ישנן התראות מתקדמות אשר אינן מוצגות כאן",
"Your Riot is misconfigured": "ה Riot שלך מוגדר באופן שגוי"
}

View file

@ -1650,7 +1650,7 @@
"Make this room public": "A szoba legyen nyilvános",
"Hide advanced": "Haladó elrejtése",
"Show advanced": "Haladó megmutatása",
"Block users on other matrix homeservers from joining this room (This setting cannot be changed later!)": "Felhasználók más matrix szerverekről a szobába való belépésének megakadályozása (Ezt a beállítást később nem lehet megváltoztatni!)",
"Block users on other matrix homeservers from joining this room (This setting cannot be changed later!)": "Más szervereken lévő felhasználók belépésének letiltása-csak helyi szoba (Ezt a beállítást később nem lehet megváltoztatni!)",
"Close dialog": "Ablak bezárása",
"Show previews/thumbnails for images": "Előnézet/bélyegkép mutatása a képekhez",
"Clear cache and reload": "Gyorsítótár ürítése és újratöltés",
@ -2226,5 +2226,80 @@
"Are you sure you want to remove <b>%(serverName)s</b>": "Biztos, hogy törölni szeretnéd: <b>%(serverName)s</b>",
"Remove server": "Szerver törlése",
"Matrix": "Matrix",
"Add a new server": "Új szerver hozzáadása"
"Add a new server": "Új szerver hozzáadása",
"Unverified login. Was this you?": "Ellenőrizetlen bejelentkezés. Te voltál?",
"Manually verify all remote sessions": "Az összes távoli munkamenet manuális ellenőrzése",
"Update your secure storage": "A biztonsági tárolód frissítése",
"Individually verify each session used by a user to mark it as trusted, not trusting cross-signed devices.": "A felhasználó által használt munkamenetek ellenőrzése egyenként, a kereszt-aláírással hitelesített eszközökben nem bízol meg.",
"Published addresses can be used by anyone on any server to join your room. To publish an address, it needs to be set as a local address first.": "A nyilvánosságra hozott címeket bárki bármelyik szerveren használhatja a szobádba való belépéshez. A cím közzétételéhez először helyi címnek kell beállítani.",
"Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)": "Állíts be címet ehhez a szobához, hogy a felhasználók a matrix szervereden megtalálhassák (%(localDomain)s)",
"In encrypted rooms, your messages are secured and only you and the recipient have the unique keys to unlock them.": "A titkosított szobákban az üzeneted biztonságban van és csak neked és a címzetteknek van meg az egyedi kulcs a visszafejtéshez.",
"Verify all users in a room to ensure it's secure.": "Ellenőrizd a szoba összes tagját, hogy meggyőződhess a biztonságról.",
"In encrypted rooms, verify all users to ensure its secure.": "Titkosított szobákban ellenőrizd a szoba összes tagját, hogy meggyőződhess a biztonságról.",
"Verified": "Hitelesített",
"Verification cancelled": "Ellenőrzés megszakítva",
"Compare emoji": "Emodzsik összehasonlítása",
"Enter the name of a new server you want to explore.": "Add meg a felfedezni kívánt új szerver nevét.",
"Server name": "Szerver neve",
"Add a new server...": "Új szerver hozzáadása…",
"%(networkName)s rooms": "%(networkName)s szobák",
"Matrix rooms": "Matrix szobák",
"Start a conversation with someone using their name, username (like <userId/>) or email address.": "Indíts beszélgetést valakinek a nevével, felhasználói nevével (mint <userId/>) vagy e-mail címével.",
"a new master key signature": "az új mester kulcs aláírás",
"a new cross-signing key signature": "az új eszközök közötti kulcs aláírása",
"a device cross-signing signature": "az eszköz eszközök közötti aláírása",
"a key signature": "kulcs aláírás",
"Riot encountered an error during upload of:": "Riot hibába ütközött a feltöltés közben:",
"Upload completed": "A feltöltés befejeződött",
"Cancelled signature upload": "Az aláírás feltöltése megszakítva",
"Unabled to upload": "A feltöltés nem lehetséges",
"Signature upload success": "Az aláírások feltöltése sikeres",
"Signature upload failed": "Az aláírások feltöltése sikertelen",
"Confirm by comparing the following with the User Settings in your other session:": "Erősítsd meg a felhasználói beállítások összehasonlításával a többi munkamenetedben:",
"Confirm this user's session by comparing the following with their User Settings:": "Ezt a munkamenetet hitelesítsd az ő felhasználói beállításának az összehasonlításával:",
"If they don't match, the security of your communication may be compromised.": "Ha nem egyeznek akkor a kommunikációtok biztonsága veszélyben lehet.",
"Open an existing session & use it to verify this one, granting it access to encrypted messages.": "Nyiss meg egy meglévő munkamenetet és használd ennek az ellenőrzéséhez, hogy a titkosított üzenetekhez hozzáférhessen.",
"Waiting…": "Várakozik…",
"If you cant access one, <button>use your recovery key or passphrase.</button>": "Ha nem érsz el egyet sem, <button>használd a visszaállítási kulcsodat vagy jelmondatot.</button>",
"Navigation": "Navigálás",
"Calls": "Hívások",
"Room List": "Szoba lista",
"Autocomplete": "Automatikus kiegészítés",
"Alt": "Alt",
"Alt Gr": "Alt Gr",
"Shift": "Shift",
"Super": "Super",
"Ctrl": "Ctrl",
"Toggle Bold": "Félkövér váltása",
"Toggle Italics": "Dőlt váltása",
"Toggle Quote": "Idézet váltása",
"New line": "Új sor",
"Navigate recent messages to edit": "Friss üzenetekben navigálás a szerkesztéshez",
"Jump to start/end of the composer": "Az üzenet elejére/végére ugrás a szerkesztőben",
"Navigate composer history": "A szerkesztő korábbi üzeneteiben navigálás",
"Toggle microphone mute": "Mikrofon némítás váltása",
"Toggle video on/off": "Videó ki-/bekapcsolás váltása",
"Jump to room search": "A szoba keresésre ugrás",
"Navigate up/down in the room list": "A szoba listában fel/le navigál",
"Select room from the room list": "Szoba kiválasztása a szoba listából",
"Collapse room list section": "Szoba lista rész bezárása",
"Expand room list section": "Szoba lista rész kinyitása",
"Clear room list filter field": "Szoba lista szűrő mező törlése",
"Scroll up/down in the timeline": "Az idővonalon görgetés fel/le",
"Previous/next unread room or DM": "Előző/következő olvasatlan szoba vagy közvetlen üzenet",
"Previous/next room or DM": "Előző/következő szoba vagy közvetlen üzenet",
"Toggle the top left menu": "Bal felső menü ki-/bekapcsolása",
"Close dialog or context menu": "Párbeszédablak vagy menü bezárása",
"Activate selected button": "Kiválasztott gomb aktiválása",
"Toggle right panel": "Jobb oldali panel váltása",
"Toggle this dialog": "Ennek a párbeszédablaknak a váltása",
"Move autocomplete selection up/down": "Automatikus kiegészítés kijelölésének mozgatása fel/le",
"Cancel autocomplete": "Automatikus kiegészítés megszakítása",
"Page Up": "Page Up",
"Page Down": "Page Down",
"Esc": "Esc",
"Enter": "Enter",
"Space": "Szóköz",
"End": "End",
"Session backup key:": "Munkamenet másolat kulcs:"
}

View file

@ -215,7 +215,7 @@
"Submit": "Invia",
"Phone": "Telefono",
"Failed to upload profile picture!": "Invio dell'immagine profilo fallito!",
"Upload new:": "Invia nuovo:",
"Upload new:": "Carica nuovo:",
"No display name": "Nessun nome visibile",
"New passwords don't match": "Le nuove password non corrispondono",
"Passwords can't be empty": "Le password non possono essere vuote",
@ -896,8 +896,8 @@
"Permission Required": "Permesso richiesto",
"You do not have permission to start a conference call in this room": "Non hai il permesso di avviare una chiamata di gruppo in questa stanza",
"This event could not be displayed": "Questo evento non può essere mostrato",
"Demote yourself?": "Retrocedi?",
"Demote": "Retrocedi",
"Demote yourself?": "Vuoi declassarti?",
"Demote": "Declassa",
"In encrypted rooms, like this one, URL previews are disabled by default to ensure that your homeserver (where the previews are generated) cannot gather information about links you see in this room.": "Nelle stanze criptate, come questa, le anteprime degli URL sono disabilitate di default per garantire che il tuo server di casa (dove vengono generate le anteprime) non possa raccogliere informazioni sui collegamenti che vedi in questa stanza.",
"When someone puts a URL in their message, a URL preview can be shown to give more information about that link such as the title, description, and an image from the website.": "Quando qualcuno inserisce un URL nel proprio messaggio, è possibile mostrare un'anteprima dell'URL per fornire maggiori informazioni su quel collegamento, come il titolo, la descrizione e un'immagine dal sito web.",
"The email field must not be blank.": "Il campo email non deve essere vuoto.",
@ -1004,7 +1004,7 @@
"Restored %(sessionCount)s session keys": "Ripristinate le chiavi di %(sessionCount)s sessioni",
"Enter Recovery Passphrase": "Inserisci la password di recupero",
"Access your secure message history and set up secure messaging by entering your recovery passphrase.": "Accedi alla cronologia sicura dei messaggi e imposta la messaggistica sicura inserendo la tua password di recupero.",
"Next": "Prossimo",
"Next": "Avanti",
"If you've forgotten your recovery passphrase you can <button1>use your recovery key</button1> or <button2>set up new recovery options</button2>": "Se hai dimenticato la password di recupero puoi <button1>usare la tua chiave di recupero</button1> o <button2>impostare nuove opzioni di recupero</button2>",
"Enter Recovery Key": "Inserisci la chiave di recupero",
"This looks like a valid recovery key!": "Sembra essere una chiave di recupero valida!",
@ -1215,7 +1215,7 @@
"Ignored users": "Utenti ignorati",
"Bulk options": "Opzioni generali",
"Accept all %(invitedRooms)s invites": "Accetta tutti i %(invitedRooms)s inviti",
"Key backup": "Backup chiave",
"Key backup": "Backup chiavi",
"Security & Privacy": "Sicurezza e privacy",
"Missing media permissions, click the button below to request.": "Autorizzazione multimediale mancante, clicca il pulsante sotto per richiederla.",
"Request media permissions": "Richiedi autorizzazioni multimediali",
@ -1342,7 +1342,7 @@
"For maximum security, this should be different from your account password.": "Per la massima sicurezza, questa dovrebbe essere diversa dalla password del tuo account.",
"Set up with a Recovery Key": "Imposta con una chiave di ripristino",
"Please enter your passphrase a second time to confirm.": "Inserisci la tua password un'altra volta per confermare.",
"Your recovery key is a safety net - you can use it to restore access to your encrypted messages if you forget your passphrase.": "La tua chiave di ripristino è una rete di sicurezza - puoi usarla per recuperare l'accesso ai tuoi messaggi cifrati se dimentichi la tua password.",
"Your recovery key is a safety net - you can use it to restore access to your encrypted messages if you forget your passphrase.": "La tua chiave di recupero è come una rete di sicurezza - puoi usarla per recuperare l'accesso ai tuoi messaggi cifrati se dimentichi la tua password.",
"Your keys are being backed up (the first backup could take a few minutes).": "Il backup delle chiavi è in corso (il primo backup potrebbe richiedere qualche minuto).",
"Secure your backup with a passphrase": "Proteggi il tuo backup con una password",
"Confirm your passphrase": "Conferma la tua password",
@ -1433,7 +1433,7 @@
"Your browser likely removed this data when running low on disk space.": "Probabilmente il tuo browser ha rimosso questi dati per mancanza di spazio su disco.",
"Upload files (%(current)s of %(total)s)": "Invio dei file (%(current)s di %(total)s)",
"Upload files": "Invia i file",
"Upload": "Invia",
"Upload": "Carica",
"This file is <b>too large</b> to upload. The file size limit is %(limit)s but this file is %(sizeOfThisFile)s.": "Questo file è <b>troppo grande</b> da inviare. Il limite di dimensione è %(limit)s ma questo file è di %(sizeOfThisFile)s.",
"These files are <b>too large</b> to upload. The file size limit is %(limit)s.": "Questi file sono <b>troppo grandi</b> da inviare. Il limite di dimensione è %(limit)s.",
"Some files are <b>too large</b> to be uploaded. The file size limit is %(limit)s.": "Alcuni file sono <b>troppo grandi</b> da inviare. Il limite di dimensione è %(limit)s.",
@ -1522,7 +1522,7 @@
"Use bots, bridges, widgets and sticker packs": "Usa bot, bridge, widget e pacchetti di adesivi",
"Terms of Service": "Condizioni di servizio",
"Service": "Servizio",
"Summary": "Sommario",
"Summary": "Riepilogo",
"Call failed due to misconfigured server": "Chiamata non riuscita a causa di un server non configurato correttamente",
"Please ask the administrator of your homeserver (<code>%(homeserverDomain)s</code>) to configure a TURN server in order for calls to work reliably.": "Chiedi all'amministratore del tuo homeserver(<code>%(homeserverDomain)s</code>) per configurare un server TURN affinché le chiamate funzionino in modo affidabile.",
"Alternatively, you can try to use the public server at <code>turn.matrix.org</code>, but this will not be as reliable, and it will share your IP address with that server. You can also manage this in Settings.": "In alternativa, puoi provare a utilizzare il server pubblico all'indirizzo <code>turn.matrix.org</code>, ma questo non sarà così affidabile e condividerà il tuo indirizzo IP con quel server. Puoi anche gestirlo in Impostazioni.",
@ -2288,5 +2288,50 @@
"Navigate composer history": "Naviga cronologia compositore",
"Previous/next unread room or DM": "Stanza o msg non letti successivi/precedenti",
"Previous/next room or DM": "Stanza o msg successivi/precedenti",
"Toggle right panel": "Apri/chiudi pannello a destra"
"Toggle right panel": "Apri/chiudi pannello a destra",
"Unverified login. Was this you?": "Accesso non verificato. Eri tu?",
"Manually verify all remote sessions": "Verifica manualmente tutte le sessioni remote",
"Update your secure storage": "Aggiorna la tua archiviazione sicura",
"Self signing private key:": "Chiave privata di auto-firma:",
"cached locally": "in cache locale",
"not found locally": "non trovato in locale",
"User signing private key:": "Chiave privata di firma utente:",
"Session backup key:": "Chiave di backup sessione:",
"Individually verify each session used by a user to mark it as trusted, not trusting cross-signed devices.": "Verifica individualmente ogni sessione usata da un utente per segnarla come fidata, senza fidarsi dei dispositivi a firma incrociata.",
"In encrypted rooms, your messages are secured and only you and the recipient have the unique keys to unlock them.": "Nelle stanze cifrate, i tuoi messaggi sono protetti e solo tu ed il destinatario avete le chiavi univoche per sbloccarli.",
"Verify all users in a room to ensure it's secure.": "Verifica tutti gli utenti in una stanza per confermare che sia sicura.",
"In encrypted rooms, verify all users to ensure its secure.": "Nelle stanze cifrate, verifica tutti gli utenti per confermare che siano sicure.",
"Verified": "Verificato",
"Verification cancelled": "Verifica annullata",
"Compare emoji": "Confronta emoji",
"Cancel replying to a message": "Annulla la risposta a un messaggio",
"Sends a message as html, without interpreting it as markdown": "Invia un messaggio come html, senza interpretarlo come markdown",
"Sign in with SSO": "Accedi con SSO",
"Use Single Sign On to continue": "Usa Single Sign On per continuare",
"Confirm adding this email address by using Single Sign On to prove your identity.": "Conferma aggiungendo questa email usando Single Sign On per provare la tua identità.",
"Single Sign On": "Single Sign On",
"Confirm adding email": "Conferma aggiungendo email",
"Click the button below to confirm adding this email address.": "Clicca il pulsante sotto per confermare l'aggiunta di questa email.",
"Confirm adding this phone number by using Single Sign On to prove your identity.": "Conferma aggiungendo questo numero di telefono usando Single Sign On per provare la tua identità.",
"Confirm adding phone number": "Conferma aggiungendo un numero di telefono",
"Click the button below to confirm adding this phone number.": "Clicca il pulsante sotto per confermare l'aggiunta di questo numero di telefono.",
"Confirm deleting these sessions by using Single Sign On to prove your identity.": "Conferma eliminando queste sessioni usando Single Sign On per provare la tua identità.",
"Confirm deleting these sessions": "Conferma eliminando queste sessioni",
"Click the button below to confirm deleting these sessions.": "Clicca il pulsante sotto per confermare l'eliminazione di queste sessioni.",
"Delete sessions": "Elimina sessioni",
"Almost there! Is your other session showing the same shield?": "Quasi fatto! L'altra tua sessione sta mostrando lo stesso scudo?",
"Almost there! Is %(displayName)s showing the same shield?": "Quasi fatto! %(displayName)s sta mostrando lo stesso scudo?",
"Confirm the emoji below are displayed on both sessions, in the same order:": "Conferma che gli emoji sottostanti sono mostrati in entrambe le sessioni, nello stesso ordine:",
"Verify this session by confirming the following number appears on its screen.": "Verifica questa sessione confermando che il seguente numero compare nel suo schermo.",
"Waiting for your other session, %(deviceName)s (%(deviceId)s), to verify…": "In attesa che la tua altra sessione, %(deviceName)s (%(deviceId)s), verifichi…",
"From %(deviceName)s (%(deviceId)s)": "Da %(deviceName)s (%(deviceId)s)",
"Waiting for you to accept on your other session…": "In attesa che tu accetti nella tua altra sessione…",
"You've successfully verified %(deviceName)s (%(deviceId)s)!": "Hai verificato %(deviceName)s (%(deviceId)s) correttamente!",
"Start verification again from the notification.": "Inizia di nuovo la verifica dalla notifica.",
"Start verification again from their profile.": "Inizia di nuovo la verifica dal suo profilo.",
"Verification timed out.": "Verifica scaduta.",
"You cancelled verification on your other session.": "Hai annullato la verifica nell'altra sessione.",
"%(displayName)s cancelled verification.": "%(displayName)s ha annullato la verifica.",
"You cancelled verification.": "Hai annullato la verifica.",
"Self-verification request": "Richiesta di auto-verifica"
}

View file

@ -309,35 +309,35 @@
"Displays action": "アクションを表示",
"Forces the current outbound group session in an encrypted room to be discarded": "暗号化されたルーム内の現在のアウトバウンドグループセッションを強制的に破棄します",
"Reason": "理由",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s %(displayName)s の招待を受け入れました。",
"%(targetName)s accepted an invitation.": "%(targetName)s 招待を受け入れました。",
"%(senderName)s requested a VoIP conference.": "%(senderName)s VoIP会議を要求しました。",
"%(senderName)s invited %(targetName)s.": "%(senderName)s %(targetName)s を招待しました。",
"%(senderName)s banned %(targetName)s.": "%(senderName)s %(targetName)s をブロックしました。",
"%(oldDisplayName)s changed their display name to %(displayName)s.": "%(oldDisplayName)s 、表示名を %(displayName)s に変更しました。",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s は、表示名を %(displayName)s に設定します。",
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s 表示名 (%(oldDisplayName)s) を削除しました。",
"%(senderName)s removed their profile picture.": "%(senderName)s プロフィール画像を削除しました。",
"%(senderName)s changed their profile picture.": "%(senderName)s プロフィール画像を変更しました。",
"%(senderName)s set a profile picture.": "%(senderName)s プロフィール画像を設定しました。",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s %(displayName)s の招待を受け入れました。",
"%(targetName)s accepted an invitation.": "%(targetName)s 招待を受け入れました。",
"%(senderName)s requested a VoIP conference.": "%(senderName)s VoIP会議を要求しました。",
"%(senderName)s invited %(targetName)s.": "%(senderName)s %(targetName)s を招待しました。",
"%(senderName)s banned %(targetName)s.": "%(senderName)s %(targetName)s をブロックしました。",
"%(oldDisplayName)s changed their display name to %(displayName)s.": "%(oldDisplayName)s 、表示名を %(displayName)s に変更しました。",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s が、表示名を %(displayName)s に設定しました。",
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s 表示名 (%(oldDisplayName)s) を削除しました。",
"%(senderName)s removed their profile picture.": "%(senderName)s プロフィール画像を削除しました。",
"%(senderName)s changed their profile picture.": "%(senderName)s プロフィール画像を変更しました。",
"%(senderName)s set a profile picture.": "%(senderName)s プロフィール画像を設定しました。",
"VoIP conference started.": "VoIP会議が開始されました。",
"VoIP conference finished.": "VoIP会議が終了しました。",
"%(targetName)s rejected the invitation.": "%(targetName)s 招待を拒否しました。",
"%(targetName)s left the room.": "%(targetName)s 部屋を退出しました。",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s は %(targetName)s をブロック解除しました。",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s %(targetName)s を追放しました。",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s %(targetName)s の招待を撤回しました。",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s トピックを \"%(topic)s\" に変更しました。",
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s 部屋名を削除しました。",
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s 部屋名を %(roomName)s に変更しました。",
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s はイメージを送信しました。",
"%(targetName)s rejected the invitation.": "%(targetName)s 招待を拒否しました。",
"%(targetName)s left the room.": "%(targetName)s 部屋を退出しました。",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s が %(targetName)s のブロックを解除しました。",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s %(targetName)s を追放しました。",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s %(targetName)s の招待を撤回しました。",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s トピックを \"%(topic)s\" に変更しました。",
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s 部屋名を削除しました。",
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s 部屋名を %(roomName)s に変更しました。",
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s が画像を送信しました。",
"%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|other": "%(senderName)s はこの部屋のアドレスとして %(addedAddresses)s を追加しました。",
"%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|one": "%(senderName)s はこの部屋のアドレスとして %(addedAddresses)s を追加しました。",
"%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|other": "%(senderName)s はこの部屋のアドレスとして %(removedAddresses)s を削除しました。",
"%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|one": "%(senderName)s はこの部屋のアドレスとして %(removedAddresses)s を削除しました。",
"%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.": "%(senderName)s はこの部屋のアドレスとして %(addedAddresses)s を追加し、%(removedAddresses)s を削除しました。",
"%(senderName)s set the main address for this room to %(address)s.": "%(senderName)s は、この部屋の主アドレスを %(address)s に設定しました。",
"%(senderName)s removed the main address for this room.": "%(senderName)s はこの部屋の主アドレスを削除しました。",
"%(senderName)s set the main address for this room to %(address)s.": "%(senderName)s が、この部屋のメインアドレスを %(address)s に設定しました。",
"%(senderName)s removed the main address for this room.": "%(senderName)s がこの部屋のメインアドレスを削除しました。",
"Someone": "誰か",
"(not supported by this browser)": "(このブラウザではサポートされていません)",
"%(senderName)s answered the call.": "%(senderName)s が応答しました。",
@ -544,7 +544,7 @@
"You have <a>disabled</a> URL previews by default.": "デフォルトでURLプレビューが<a>無効</a>です。",
"URL previews are enabled by default for participants in this room.": "この部屋の参加者は、デフォルトでURLプレビューが有効です。",
"URL previews are disabled by default for participants in this room.": "この部屋の参加者は、デフォルトでURLプレビューが無効です。",
"In encrypted rooms, like this one, URL previews are disabled by default to ensure that your homeserver (where the previews are generated) cannot gather information about links you see in this room.": "このような暗号化された部屋では、URLプレビューはデフォルトで無効になっており、あなたのホームサーバー(プレビューが生成された場所)がこの部屋に表示されているリンクに関する情報を収集できないようにしています。",
"In encrypted rooms, like this one, URL previews are disabled by default to ensure that your homeserver (where the previews are generated) cannot gather information about links you see in this room.": "このような暗号化された部屋では、URLプレビューはデフォルトで無効になっており、あなたのホームサーバー(プレビューを作成する場所)がこの部屋に表示されているリンクに関する情報を収集できないようにしています。",
"URL Previews": "URLプレビュー",
"Historical": "履歴のある",
"When someone puts a URL in their message, a URL preview can be shown to give more information about that link such as the title, description, and an image from the website.": "メッセージにURLを入力すると、URLプレビューが表示され、タイトル、説明、ウェブサイトからの画像など、そのリンクに関する詳細情報が表示されます。",
@ -844,7 +844,7 @@
"%(count)s <resendText>Resend all</resendText> or <cancelText>cancel all</cancelText> now. You can also select individual messages to resend or cancel.|other": "<resendText>すべて再送信</resendText>または<cancelText>すべてキャンセル</cancelText>。個々のメッセージを選択して、再送信またはキャンセルすることもできます。",
"%(count)s <resendText>Resend all</resendText> or <cancelText>cancel all</cancelText> now. You can also select individual messages to resend or cancel.|one": "<resendText>メッセージ再送信</resendText>または<cancelText>メッセージキャンセル</cancelText>。",
"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.": "送信されたメッセージは、接続が復旧するまで保存されます。",
"Active call": "アクティブコール",
"There's no one else here! Would you like to <inviteText>invite others</inviteText> or <nowarnText>stop warning about the empty room</nowarnText>?": "他に誰もいません! <inviteText>他のユーザーを招待</inviteText>または<nowarnText>空の部屋に関する警告を停止しますか</nowarnText>?",
"You seem to be uploading files, are you sure you want to quit?": "ファイルをアップロードしているようですが、中止しますか?",
@ -1015,17 +1015,17 @@
"Sends the given emote coloured as a rainbow": "与えられたエモートを虹色で送信する",
"Displays list of commands with usages and descriptions": "使い方と説明付きのコマンド一覧を表示する",
"%(senderName)s made no change.": "%(senderName)s は変更されませんでした。",
"%(senderDisplayName)s upgraded this room.": "%(senderDisplayName)s この部屋をアップグレードしました。",
"%(senderDisplayName)s made the room public to whoever knows the link.": "%(senderDisplayName)s はこの部屋をリンクを知っている人全てに公開しました。",
"%(senderDisplayName)s made the room invite only.": "%(senderDisplayName)s はこの部屋を招待者のみに変更しました。",
"%(senderDisplayName)s has allowed guests to join the room.": "%(senderDisplayName)s はゲストがこの部屋に参加できるようにしました。",
"%(senderDisplayName)s upgraded this room.": "%(senderDisplayName)s この部屋をアップグレードしました。",
"%(senderDisplayName)s made the room public to whoever knows the link.": "%(senderDisplayName)s がこの部屋を「リンクを知っている人全員」に公開しました。",
"%(senderDisplayName)s made the room invite only.": "%(senderDisplayName)s がこの部屋を「招待者のみ参加可能」に変更しました。",
"%(senderDisplayName)s has allowed guests to join the room.": "%(senderDisplayName)s がこの部屋へのゲストによる参加を許可しました。",
"Whether or not you're using the 'breadcrumbs' feature (avatars above the room list)": "「パンくずリスト」機能(部屋リストの上のアバター)を使っているかどうか",
"Only continue if you trust the owner of the server.": "そのサーバーの所有者を信頼する場合のみ続ける。",
"Trust": "信頼",
"Use an identity server to invite by email. Manage in Settings.": "メールによる招待のためにIDサーバーを用いる。設定画面で管理する。",
"%(senderDisplayName)s changed the join rule to %(rule)s": "%(senderDisplayName)s は参加ルールを %(rule)s に変更しました",
"%(senderDisplayName)s has prevented guests from joining the room.": "%(senderDisplayName)s はゲストの部屋への参加を差し止めています。",
"%(senderDisplayName)s changed guest access to %(rule)s": "%(senderDisplayName)s はゲストのアクセスを %(rule)s に変更しました",
"%(senderDisplayName)s changed the join rule to %(rule)s": "%(senderDisplayName)s が参加ルールを「%(rule)s」に変更しました。",
"%(senderDisplayName)s has prevented guests from joining the room.": "%(senderDisplayName)s がこの部屋へのゲストによる参加を拒否しました。",
"%(senderDisplayName)s changed guest access to %(rule)s": "%(senderDisplayName)s はゲストによるアクセスを %(rule)s に変更しました。",
"%(displayName)s is typing …": "%(displayName)s が入力中 …",
"%(names)s and %(count)s others are typing …|other": "%(names)s と他 %(count)s 名が入力中 …",
"%(names)s and %(count)s others are typing …|one": "%(names)s ともう一人が入力中 …",
@ -1245,5 +1245,32 @@
"Italics": "イタリック体",
"React": "リアクション",
"Quick Reactions": "一般的なリアクション",
"Share Permalink": "パーマリンクを共有"
"Share Permalink": "パーマリンクを共有",
"Keyboard Shortcuts": "キーボードショートカット",
"Local address": "ローカルアドレス",
"Calls": "通話",
"Alt": "Alt",
"Shift": "Shift",
"Ctrl": "Ctrl",
"Toggle microphone mute": "マイクのミュート切り替え",
"Toggle video on/off": "ビデオのオンオフ切り替え",
"%(senderDisplayName)s changed the room name from %(oldRoomName)s to %(newRoomName)s.": "%(senderDisplayName)s が部屋名を %(oldRoomName)s から %(newRoomName)s に変更しました。",
"Unknown Command": "不明なコマンド",
"Unrecognised command: %(commandText)s": "認識されていないコマンド: %(commandText)s",
"Send as message": "メッセージとして送信",
"Confirm": "確認",
"Enable audible notifications for this session": "このセッションでは音声通知を有効にする",
"Enable encryption?": "暗号化を有効にしますか?",
"Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. <a>Learn more about encryption.</a>": "一度有効にした部屋の暗号化は無効にすることはできません。暗号化された部屋で送信されたメッセージは、サーバーからは見ることができず、その部屋の参加者だけが見ることができます。暗号化を有効にすると、多くのボットやブリッジが正常に動作しなくなる場合があります。<a>暗号化についての詳細はこちらをご覧ください</a>。",
"Enter username": "ユーザー名を入力",
"Email (optional)": "メールアドレス (任意)",
"Phone (optional)": "電話番号 (任意)",
"Create your Matrix account on %(serverName)s": "あなたの Matrix アカウントを %(serverName)s に作成",
"Create your Matrix account on <underlinedServerName />": "あなたの Matrix アカウントを <underlinedServerName /> に作成",
"Set an email for account recovery. Use email or phone to optionally be discoverable by existing contacts.": "アカウント回復のためのメールアドレスを設定できます。また、メールアドレスや電話番号を既存の知り合いにこのアカウントを発見してもらうために使うこともできます。",
"Set an email for account recovery. Use email to optionally be discoverable by existing contacts.": "アカウント回復のためのメールアドレスを設定できます。また、メールアドレスを既存の知り合いにこのアカウントを発見してもらうために使うこともできます。",
"Enter your custom homeserver URL <a>What does this mean?</a>": "独自のホームサーバー URL を入力 <a>詳細情報</a>",
"Homeserver URL": "ホームサーバー URL",
"Sign in instead": "サインインする",
"Create your account": "アカウントの作成"
}

View file

@ -15,7 +15,7 @@
"A new version of Riot is available.": "Yra prieinama nauja Riot versija.",
"I understand the risks and wish to continue": "Aš suprantu riziką ir noriu tęsti",
"Send Account Data": "Siųsti paskyros duomenis",
"Advanced notification settings": "Išplėstiniai pranešimų nustatymai",
"Advanced notification settings": "Sudėtingesni pranešimų nustatymai",
"Uploading report": "Išsiunčiama ataskaita",
"Sunday": "Sekmadienis",
"Guests can join": "Svečiai gali prisijungti",
@ -90,10 +90,10 @@
"Download this file": "Atsisiųsti šį failą",
"Saturday": "Šeštadienis",
"Remember, you can always set an email address in user settings if you change your mind.": "Nepamirškite, kad jei persigalvosite, tai bet kada galite nustatyti el. pašto adresą vartotojo nustatymuose.",
"Direct Chat": "Tiesioginis pokalbis",
"Direct Chat": "Privatus pokalbis",
"The server may be unavailable or overloaded": "Gali būti, kad serveris yra neprieinamas arba perkrautas",
"Online": "Prisijungęs",
"Failed to set Direct Message status of room": "Nepavyko nustatyti tiesioginio pranešimo kambario būklės",
"Failed to set Direct Message status of room": "Nepavyko nustatyti privačios žinutės kambario statuso",
"Monday": "Pirmadienis",
"All messages (noisy)": "Visos žinutės (triukšmingas)",
"Enable them now": "Įjungti juos dabar",
@ -276,7 +276,7 @@
"Password": "Slaptažodis",
"New Password": "Naujas slaptažodis",
"Device ID": "Įrenginio ID",
"Failed to set display name": "Nepavyko nustatyti rodomą vardą",
"Failed to set display name": "Nepavyko nustatyti rodomo vardo",
"Disable Notifications": "Išjungti pranešimus",
"Enable Notifications": "Įjungti pranešimus",
"Cannot add any more widgets": "Nepavyksta pridėti daugiau valdiklių",
@ -324,7 +324,7 @@
"Anyone who knows the room's link, including guests": "Bet kas, žinantis kambario nuorodą, įskaitant svečius",
"Anyone": "Bet kas",
"Permissions": "Leidimai",
"Advanced": "Išplėstiniai",
"Advanced": "Sudėtingesni nustatymai",
"Add a topic": "Pridėti temą",
"Local addresses for this room:": "Vietiniai šio kambario adresai:",
"This room has no local addresses": "Šis kambarys neturi jokių vietinių adresų",
@ -499,9 +499,9 @@
"Not a valid Riot keyfile": "Negaliojantis Riot rakto failas",
"Authentication check failed: incorrect password?": "Autentifikavimo patikra nepavyko: neteisingas slaptažodis?",
"Send analytics data": "Siųsti analitinius duomenis",
"Incoming voice call from %(name)s": "Gaunamasis balso skambutis nuo %(name)s",
"Incoming video call from %(name)s": "Gaunamasis vaizdo skambutis nuo %(name)s",
"Incoming call from %(name)s": "Gaunamasis skambutis nuo %(name)s",
"Incoming voice call from %(name)s": "Įeinantis balso skambutis nuo %(name)s",
"Incoming video call from %(name)s": "Įeinantis vaizdo skambutis nuo %(name)s",
"Incoming call from %(name)s": "Įeinantis skambutis nuo %(name)s",
"Change Password": "Keisti slaptažodį",
"Authentication": "Tapatybės nustatymas",
"The maximum permitted number of widgets have already been added to this room.": "Į šį kambarį jau yra pridėtas didžiausias leidžiamas valdiklių skaičius.",
@ -530,7 +530,7 @@
"Demote yourself?": "Pažeminti save?",
"Demote": "Pažeminti",
"Share Link to User": "Dalintis nuoroda į naudotoją",
"Direct chats": "Tiesioginiai pokalbiai",
"Direct chats": "Privatūs pokalbiai",
"The conversation continues here.": "Pokalbis tęsiasi čia.",
"Jump to message": "Pereiti prie žinutės",
"Favourites": "Mėgstami",
@ -809,7 +809,7 @@
"Adds a custom widget by URL to the room": "Į kambarį prideda pasirinktinį valdiklį pagal URL",
"Please supply a https:// or http:// widget URL": "Prašome pateikti https:// arba http:// valdiklio URL",
"You cannot modify widgets in this room.": "Jūs negalite keisti valdiklių šiame kambaryje.",
"Forces the current outbound group session in an encrypted room to be discarded": "Priverčia išmesti esamą užsibaigiančią grupės sesiją šifruotame kambaryje",
"Forces the current outbound group session in an encrypted room to be discarded": "Priverčia išmesti esamą užsibaigiantį grupės seansą užšifruotame kambaryje",
"Sends the given message coloured as a rainbow": "Išsiunčia nurodytą žinutę nuspalvintą kaip vaivorykštė",
"Sends the given emote coloured as a rainbow": "Išsiunčia nurodytą emociją nuspalvintą kaip vaivorykštė",
"Displays list of commands with usages and descriptions": "Parodo komandų sąrašą su naudojimo būdais ir aprašymais",
@ -835,7 +835,7 @@
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s pakeitė %(powerLevelDiffText)s galios lygį.",
"%(displayName)s is typing …": "%(displayName)s rašo …",
"%(names)s and %(count)s others are typing …|other": "%(names)s ir %(count)s kiti rašo …",
"%(names)s and %(count)s others are typing …|one": "%(names)s ir vienas kitas rašo …",
"%(names)s and %(count)s others are typing …|one": "%(names)s ir dar vienas rašo …",
"%(names)s and %(lastPerson)s are typing …": "%(names)s ir %(lastPerson)s rašo …",
"Cannot reach homeserver": "Serveris nepasiekiamas",
"Ensure you have a stable internet connection, or get in touch with the server admin": "Įsitikinkite, kad jūsų interneto ryšys yra stabilus, arba susisiekite su serverio administratoriumi",
@ -848,7 +848,7 @@
"Unexpected error resolving homeserver configuration": "Netikėta klaida nustatant serverio konfigūraciją",
"Unexpected error resolving identity server configuration": "Netikėta klaida nustatant tapatybės serverio konfigūraciją",
"%(items)s and %(count)s others|other": "%(items)s ir %(count)s kiti",
"%(items)s and %(count)s others|one": "%(items)s ir vienas kitas",
"%(items)s and %(count)s others|one": "%(items)s ir dar vienas",
"%(items)s and %(lastItem)s": "%(items)s ir %(lastItem)s",
"Unrecognised address": "Neatpažintas adresas",
"You do not have permission to invite people to this room.": "Jūs neturite leidimo pakviesti žmones į šį kambarį.",
@ -940,5 +940,138 @@
"We recommend you change your password and recovery key in Settings immediately": "Mes rekomenduojame nedelsiant Nustatymuose pasikeisti jūsų slaptažodį ir atgavimo raktą",
"Email (optional)": "El. paštas (neprivaloma)",
"If you didn't set the new recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "Jei jūs nenustatėte naujo paskyros atgavimo metodo, tada gali būti, kad užpuolikas bando patekti į jūsų paskyrą. Nedelsiant Nustatymuose pakeiskite savo paskyros slaptažodį ir nustatykite naują paskyros atgavimo metodą.",
"If you didn't remove the recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "Jei jūs nepašalinote paskyros atgavimo metodo, tada gali būti, kad užpuolikas bando patekti į jūsų paskyrą. Nedelsiant Nustatymuose pakeiskite savo paskyros slaptažodį ir nustatykite naują paskyros atgavimo metodą."
"If you didn't remove the recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "Jei jūs nepašalinote paskyros atgavimo metodo, tada gali būti, kad užpuolikas bando patekti į jūsų paskyrą. Nedelsiant Nustatymuose pakeiskite savo paskyros slaptažodį ir nustatykite naują paskyros atgavimo metodą.",
"Help & About": "Pagalba ir Apie",
"Direct Messages": "Privačios žinutės",
"Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)": "Nustatykite adresus šiam kambariui, kad vartotojai galėtų surasti šį kambarį per jūsų serverį (%(localDomain)s)",
"Direct message": "Privati žinutė",
"%(severalUsers)sjoined %(count)s times|other": "%(severalUsers)s prisijungė %(count)s kartų(-us)",
"%(severalUsers)sjoined %(count)s times|one": "%(severalUsers)s prisijungė",
"%(oneUser)sjoined %(count)s times|other": "%(oneUser)s prisijungė %(count)s kartų(-us)",
"%(oneUser)sjoined %(count)s times|one": "%(oneUser)s prisijungė",
"%(severalUsers)sjoined and left %(count)s times|other": "%(severalUsers)s prisijungė ir išėjo %(count)s kartų(-us)",
"%(severalUsers)sjoined and left %(count)s times|one": "%(severalUsers)s prisijungė ir išėjo",
"%(oneUser)sjoined and left %(count)s times|other": "%(oneUser)s prisijungė ir išėjo %(count)s kartų(-us)",
"%(oneUser)sjoined and left %(count)s times|one": "%(oneUser)s prisijungė ir išėjo",
"%(severalUsers)sleft and rejoined %(count)s times|other": "%(severalUsers)s išėjo ir vėl prisijungė %(count)s kartų(-us)",
"%(severalUsers)sleft and rejoined %(count)s times|one": "%(severalUsers)s išėjo ir vėl prisijungė",
"%(oneUser)sleft and rejoined %(count)s times|other": "%(oneUser)s išėjo ir vėl prisijungė %(count)s kartų(-us)",
"%(oneUser)sleft and rejoined %(count)s times|one": "%(oneUser)s išėjo ir vėl prisijungė",
"%(severalUsers)srejected their invitations %(count)s times|other": "%(severalUsers)s atmetė jų kvietimus %(count)s kartų(-us)",
"%(severalUsers)srejected their invitations %(count)s times|one": "%(severalUsers)s atmetė jų kvietimus",
"%(oneUser)srejected their invitation %(count)s times|other": "%(oneUser)s atmetė jų kvietimą %(count)s kartų(-us)",
"%(oneUser)srejected their invitation %(count)s times|one": "%(oneUser)s atmetė jų kvietimą",
"%(severalUsers)shad their invitations withdrawn %(count)s times|other": "%(severalUsers)s atšaukė savo pakvietimus %(count)s kartų(-us)",
"%(severalUsers)shad their invitations withdrawn %(count)s times|one": "%(severalUsers)s atšaukė savo pakvietimus",
"%(oneUser)shad their invitation withdrawn %(count)s times|other": "%(oneUser)s atšaukė savo pakvietimą %(count)s kartų(-us)",
"%(oneUser)shad their invitation withdrawn %(count)s times|one": "%(oneUser)s atšaukė savo pakvietimą",
"were invited %(count)s times|other": "buvo pakviesti %(count)s kartų(-us)",
"were invited %(count)s times|one": "buvo pakviesti",
"was invited %(count)s times|other": "buvo pakviestas %(count)s kartų(-us)",
"was invited %(count)s times|one": "buvo pakviestas",
"were banned %(count)s times|other": "buvo užblokuoti %(count)s kartų(-us)",
"were banned %(count)s times|one": "buvo užblokuoti",
"was banned %(count)s times|other": "buvo užblokuotas %(count)s kartų(-us)",
"was banned %(count)s times|one": "buvo užblokuotas",
"were unbanned %(count)s times|other": "buvo atblokuoti %(count)s kartų(-us)",
"were unbanned %(count)s times|one": "buvo atblokuoti",
"was unbanned %(count)s times|other": "buvo atblokuotas %(count)s kartų(-us)",
"was unbanned %(count)s times|one": "buvo atblokuotas",
"were kicked %(count)s times|other": "buvo išmesti %(count)s kartų(-us)",
"were kicked %(count)s times|one": "buvo išmesti",
"was kicked %(count)s times|other": "buvo išmestas %(count)s kartų(-us)",
"was kicked %(count)s times|one": "buvo išmestas",
"%(severalUsers)schanged their name %(count)s times|other": "%(severalUsers)s pasikeitė vardus %(count)s kartų(-us)",
"%(severalUsers)smade no changes %(count)s times|other": "%(severalUsers)s neatliko jokių pakeitimų %(count)s kartų(-us)",
"%(severalUsers)smade no changes %(count)s times|one": "%(severalUsers)s neatliko jokių pakeitimų",
"%(oneUser)smade no changes %(count)s times|other": "%(oneUser)s neatliko jokių pakeitimų %(count)s kartų(-us)",
"%(oneUser)smade no changes %(count)s times|one": "%(oneUser)s neatliko jokių pakeitimų",
"Power level": "Galios lygis",
"Custom level": "Pritaikytas lygis",
"Can't find this server or its room list": "Negalime rasti šio serverio arba jo kambarių sąrašo",
"Matrix rooms": "Matrix kambariai",
"Recently Direct Messaged": "Neseniai siųsta privati žinutė",
"Command Help": "Komandų pagalba",
"Help": "Pagalba",
"Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Sukurkite bendruomenę, kad kartu sugrupuotumėte vartotojus ir kambarius! Sukurkite pagrindinį puslapį, kad pažymėtumėte savo vietą Matrix visatoje.",
"Find a room…": "Rasti kambarį…",
"Find a room… (e.g. %(exampleRoom)s)": "Rasti kambarį... (pvz.: %(exampleRoom)s)",
"If you can't find the room you're looking for, ask for an invite or <a>Create a new room</a>.": "Jei jūs negalite rasti kambario, kurio ieškote, paprašykite pakvietimo arba <a>Sukurkite naują kambarį</a>.",
"Tried to load a specific point in this room's timeline, but was unable to find it.": "Bandyta įkelti konkrečią vietą šio kambario laiko juostoje, bet nepavyko jos rasti.",
"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.": "Šis procesas leidžia jums eksportuoti užšifruotuose kambariuose gautų žinučių raktus į lokalų failą. Tada jūs turėsite galimybę ateityje importuoti šį failą į kitą Matrix klientą, kad tas klientas taip pat galėtų iššifruoti tas žinutes.",
"Failed to set direct chat tag": "Nepavyko nustatyti privataus pokalbio žymos",
"Navigation": "Navigacija",
"Calls": "Skambučiai",
"Room List": "Kambarių sąrašas",
"Autocomplete": "Autorašymas",
"Alt": "Alt",
"Alt Gr": "Alt Gr",
"Shift": "Shift",
"Super": "Super",
"Ctrl": "Ctrl",
"If you cancel now, you won't complete verifying the other user.": "Jei atšauksite dabar, neužbaigsite kito vartotojo patvirtinimo.",
"If you cancel now, you won't complete verifying your other session.": "Jei atšauksite dabar, neužbaigsite kito seanso patvirtinimo.",
"Verify this session": "Patvirtinti šį seansą",
"%(senderDisplayName)s changed the room name from %(oldRoomName)s to %(newRoomName)s.": "%(senderDisplayName)s pakeitė kambario pavadinimą iš %(oldRoomName)s į %(newRoomName)s.",
"Show display name changes": "Rodyti vardo pakeitimus",
"Show read receipts sent by other users": "Rodyti kitų vartotojų siųstus perskaitymo kvitus",
"Order rooms by name": "Rūšiuoti kambarius pagal pavadinimą",
"The other party cancelled the verification.": "Kita šalis atšaukė patvirtinimą.",
"Public Name": "Viešas Vardas",
"Encrypted messages are secured with end-to-end encryption. Only you and the recipient(s) have the keys to read these messages.": "Užšifruotos žinutės yra apsaugotos su \"end-to-end\" šifravimu. Tik jūs ir gavėjas(-ai) turi raktus šioms žinutėms perskaityti.",
"Back up your keys before signing out to avoid losing them.": "Prieš atsijungdami sukurkite atsarginę savo raktų kopiją, kad jų neprarastumėte.",
"Start using Key Backup": "Pradėti naudoti Atsarginę Raktų Kopiją",
"Display Name": "Rodomas Vardas",
"Please verify the room ID or alias and try again.": "Prašome patikrinti kambario ID arba slapyvardį ir bandyti dar kartą.",
"Room %(name)s": "Kambarys %(name)s",
"Upgrading this room will shut down the current instance of the room and create an upgraded room with the same name.": "Atnaujinimas išjungs dabartinę kambario instanciją ir sukurs atnaujintą kambarį tuo pačiu vardu.",
"Other published addresses:": "Kiti paskelbti adresai:",
"No other published addresses yet, add one below": "Kol kas nėra kitų paskelbtų adresų, pridėkite vieną žemiau",
"Room Name": "Kambario Pavadinimas",
"You verified %(name)s": "Jūs patvirtinote %(name)s",
"You cancelled verifying %(name)s": "Jūs atšaukėte %(name)s patvirtinimą",
"%(name)s cancelled verifying": "%(name)s atšaukė patvirtinimą",
"%(name)s accepted": "%(name)s priimtas",
"%(name)s declined": "%(name)s atmestas",
"%(name)s cancelled": "%(name)s atšauktas",
"%(name)s wants to verify": "%(name)s nori patvirtinti",
"Your display name": "Jūsų rodomas vardas",
"Rotate Left": "Pasukti Kairėn",
"Room alias": "Kambario slapyvardis",
"e.g. my-room": "pvz.: mano-kambarys",
"Please provide a room alias": "Įveskite kambario slapyvardį",
"Enter a server name": "Įveskite serverio pavadinimą",
"Enter the name of a new server you want to explore.": "Įveskite naujo, norimo žvalgyti serverio pavadinimą.",
"Server name": "Serverio pavadinimas",
"Please enter a name for the room": "Įveskite kambario pavadinimą",
"Set a room alias to easily share your room with other people.": "Nustatykite kambario slapyvardį, kad galėtumėte nesunkiai pasidalinti juo su kitais.",
"This room is private, and can only be joined by invitation.": "Šis kambarys yra privatus, prie jo prisijungti galima tik su pakvietimu.",
"Create a private room": "Sukurti privatų kambarį",
"Name": "Pavadinimas",
"Topic (optional)": "Tema (nebūtina)",
"Hide advanced": "Paslėpti sudėtingesnius nustatymus",
"Show advanced": "Rodyti sudėtingesnius nustatymus",
"Block users on other matrix homeservers from joining this room (This setting cannot be changed later!)": "Neleisti kitų matrix serverių vartotojams prisijungti prie šio kambario (Šis nustatymas negali būti vėliau pakeistas!)",
"Session name": "Seanso pavadinimas",
"Session key": "Seanso raktas",
"I don't want my encrypted messages": "Man nereikalingos užšifruotos žinutės",
"You'll lose access to your encrypted messages": "Jūs prarasite prieigą prie savo užšifruotų žinučių",
"New session": "Naujas seansas",
"Enter secret storage passphrase": "Įveskite slaptos saugyklos slaptafrazę",
"Enter recovery passphrase": "Įveskite atstatymo slaptafrazę",
"<b>Warning</b>: you should only set up key backup from a trusted computer.": "<b>Įspėjimas</b>: atsarginę raktų kopiją sukurkite tik iš patikimo kompiuterio.",
"<b>Warning</b>: You should only set up key backup from a trusted computer.": "<b>Įspėjimas</b>: Atsarginę raktų kopiją sukurkite tik iš patikimo kompiuterio.",
"Server Name": "Serverio Pavadinimas",
"Other servers": "Kiti serveriai",
"Add room": "Sukurti kambarį",
"Changing your password will reset any end-to-end encryption keys on all of your sessions, making encrypted chat history unreadable. Set up Key Backup or export your room keys from another session before resetting your password.": "Slaptažodžio keitimas ištrins visų jūsų seansų šifravimo raktus, todėl nebebus galima perskaityti užšifruotos pokalbių istorijos. Nustatykite Raktų Atsarginę Kopiją arba eksportuokite savo kambarių raktus iš kito seanso prieš atstatydami slaptažodį.",
"Set a display name:": "Nustatyti rodomą vardą:",
"Secure your encryption keys with a passphrase. For maximum security this should be different to your account password:": "Apsaugokite savo šifravimo raktus slaptafraze. Maksimaliam saugumui užtikrinti ji turi skirtis nuo jūsų paskyros slaptažodžio:",
"Enter a passphrase": "Įveskite slaptafrazę",
"Enter your passphrase a second time to confirm it.": "Įveskite slaptafrazę antrą kartą, kad ją patvirtintumėte.",
"We'll store an encrypted copy of your keys on our server. Protect your backup with a passphrase to keep it secure.": "Mes saugosime užšifruotą jūsų raktų kopiją mūsų serveryje. Apsaugokite savo atsarginę kopiją slaptafraze, kad ji būtų saugi.",
"For maximum security, this should be different from your account password.": "Maksimaliam saugumui užtikrinti ji turi skirtis nuo jūsų paskyros slaptažodžio.",
"Enter a passphrase...": "Įveskite slaptafrazę...",
"Please enter your passphrase a second time to confirm.": "Įveskite slaptafrazę antrą kartą, kad ją patvirtintumėte.",
"Secure your backup with a passphrase": "Apsaugokite savo atsarginę kopiją slaptafraze"
}

View file

@ -158,10 +158,10 @@
"Dec": "Des",
"PM": "PM",
"AM": "AM",
"%(weekDayName)s %(time)s": "%(weekDayName)s. %(time)s",
"%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s,%(monthName)s,%(day)s,%(time)s",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s": "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)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 kl. %(time)s",
"%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s %(day)s. %(monthName)s kl. %(time)s",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s": "%(weekDayName)s %(day)s. %(monthName)s %(fullYear)s",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s %(day)s. %(monthName)s %(fullYear)s kl. %(time)s",
"Who would you like to add to this community?": "Hvem ønsker du å legge til i dette samfunnet?",
"Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Advarsel: Enhver person som du legger til i et samfunn vil bli offentlig synlig til alle som kan samfunns IDen",
"Invite new community members": "Inviter nye samfunnsmedlemmer",
@ -240,7 +240,7 @@
"Sets the room name": "Setter rommets navn",
"Invites user with given id to current room": "Inviterer brukeren med gitt id til dette rommet",
"Joins room with given alias": "Går inn i rommet med gitt alias",
"Leave room": "Forlate rom",
"Leave room": "Forlat rommet",
"Unrecognised room alias:": "Ukjent rom alias:",
"Kicks user with given id": "Sparker ut bruker med gitt id",
"Bans user with given id": "Nekter tilgang til bruker med gitt id",
@ -364,7 +364,7 @@
"Composer": "Komposør",
"Timeline": "Tidslinje",
"Security & Privacy": "Sikkerhet og personvern",
"Sessions": "Sesjoner",
"Sessions": "Økter",
"Camera": "Kamera",
"Reset": "Nullstill",
"Browse": "Bla",
@ -568,7 +568,7 @@
"Allow Peer-to-Peer for 1:1 calls": "Tillat P2P for samtaler under fire øyne",
"Send analytics data": "Send analytiske data",
"Enable inline URL previews by default": "Skru på URL-forhåndsvisninger inni meldinger som standard",
"Prompt before sending invites to potentially invalid matrix IDs": "Si ifra før det sendes invitasjoner til potensielt ugyldig Matrix-ID-er",
"Prompt before sending invites to potentially invalid matrix IDs": "Si ifra før det sendes invitasjoner til potensielt ugyldige Matrix-ID-er",
"Show developer tools": "Vis utviklerverktøy",
"Order rooms by name": "Sorter rom etter navn",
"Show rooms with unread notifications first": "Vis rom med uleste varsler først",
@ -843,5 +843,231 @@
"Starting backup...": "Begynner sikkerhetskopieringen …",
"Don't ask again": "Ikke spør igjen",
"Space used:": "Plass brukt:",
"Indexed rooms:": "Indekserte rom:"
"Indexed rooms:": "Indekserte rom:",
"Verify this session": "Verifiser denne økten",
"Set up encryption": "Sett opp kryptering",
"Create Account": "Opprett konto",
"%(senderName)s set a profile picture.": "%(senderName)s ordnet seg et profilbilde.",
"%(targetName)s left the room.": "%(targetName)s forlot rommet.",
"%(senderDisplayName)s changed the room name from %(oldRoomName)s to %(newRoomName)s.": "%(senderDisplayName)s endret rommets navn fra %(oldRoomName)s til %(newRoomName)s.",
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s endret rommets navn til %(roomName)s.",
"(not supported by this browser)": "(ikke støttet av denne nettleseren)",
"%(senderName)s ended the call.": "%(senderName)s avsluttet samtalen.",
"Not Trusted": "Ikke betrodd",
"%(items)s and %(count)s others|other": "%(items)s og %(count)s andre",
"%(items)s and %(count)s others|one": "%(items)s og én annen",
"%(items)s and %(lastItem)s": "%(items)s og %(lastItem)s",
"a few seconds ago": "noen sekunder siden",
"about a minute ago": "cirka 1 minutt siden",
"about an hour ago": "cirka 1 time siden",
"about a day ago": "cirka 1 dag siden",
"%(num)s days ago": "%(num)s dager siden",
"%(name)s (%(userId)s)": "%(name)s (%(userId)s)",
"Never send encrypted messages to unverified sessions in this room from this session": "Aldri send krypterte meldinger til uverifiserte økter i dette rommet fra denne økten",
"Enable URL previews for this room (only affects you)": "Skru på URL-forhåndsvisninger for dette rommet (Påvirker bare deg)",
"Enable URL previews by default for participants in this room": "Skru på URL-forhåndsvisninger som standard for deltakerne i dette rommet",
"Room Colour": "Romfarge",
"Low bandwidth mode": "Modus for lav båndbredde",
"Manually verify all remote sessions": "Verifiser alle eksterne økter manuelt",
"Show more": "Vis mer",
"Warning!": "Advarsel!",
"Export E2E room keys": "Eksporter E2E-romnøkler",
"not found": "ikke funnet",
"exists": "finnes",
"Authentication": "Autentisering",
"Individually verify each session used by a user to mark it as trusted, not trusting cross-signed devices.": "Verifiser hver brukerøkt individuelt for å stemple den som at du stoler på den, ikke stol på kryss-signerte enheter.",
"Connecting to integration manager...": "Kobler til integreringsbehandleren …",
"Encrypted messages are secured with end-to-end encryption. Only you and the recipient(s) have the keys to read these messages.": "Krypterte meldinger er sikret med punkt-til-punkt-kryptering. Bare du og mottakeren(e) har nøklene til å lese disse meldingene.",
"Your keys are <b>not being backed up from this session</b>.": "Dine nøkler <b>har ikke blitt sikkerhetskopiert fra denne økten</b>.",
"Back up your keys before signing out to avoid losing them.": "Ta sikkerhetskopi av nøklene dine før du logger av for å unngå å miste dem.",
"Start using Key Backup": "Begynn å bruke Nøkkelsikkerhetskopiering",
"Add an email address to configure email notifications": "Legg til en E-postadresse for å sette opp E-postvarsler",
"Identity Server (%(server)s)": "Identitetstjener (%(server)s)",
"If you don't want to use <server /> to discover and be discoverable by existing contacts you know, enter another identity server below.": "Hvis du ikke ønsker å bruke <server /> til å oppdage og bli oppdaget av eksisterende kontakter som du kjenner, skriv inn en annen identitetstjener nedenfor.",
"Enter a new identity server": "Skriv inn en ny identitetstjener",
"For help with using Riot, click <a>here</a>.": "For å få hjelp til å bruke Riot, klikk <a>her</a>.",
"If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "Dersom du har sendt inn en feilrapport på GitHub, kan avlusingsloggbøker hjelpe oss med å finne frem til problemet. Avlusingsloggbøker inneholder programbruksdata inkl. ditt brukernavn, ID-ene eller aliasene til rommene eller gruppene du har besøkt, og brukernavnene til andre brukere. De inneholder ikke noen meldinger.",
"Submit debug logs": "Send inn avlusingsloggbøker",
"Clear cache and reload": "Tøm mellomlageret og last inn siden på nytt",
"To report a Matrix-related security issue, please read the Matrix.org <a>Security Disclosure Policy</a>.": "For å rapportere inn et Matrix-relatert sikkerhetsproblem, vennligst less Matrix.org sine <a>Retningslinjer for sikkerhetspublisering</a>.",
"Keyboard Shortcuts": "Tastatursnarveier",
"Homeserver is": "Hjemmetjeneren er",
"Identity Server is": "Identitetstjeneren er",
"Access Token:": "Tilgangssjetong:",
"Import E2E room keys": "Importer E2E-romnøkler",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot samler inn anonyme statistikker for å hjelpe oss med å forbedre programmet.",
"Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.": "Privatlivet er viktig for oss, så vi samler ikke inn noe personlig eller identifiserbar data for våre analyser.",
"Internal room ID:": "Intern rom-ID:",
"Change room avatar": "Endre rommets avatar",
"Change room name": "Endre rommets navn",
"Change main address for the room": "Endre hovedadressen til rommet",
"Change history visibility": "Endre historikkens synlighet",
"Enable room encryption": "Skru på kryptering av rommet",
"Default role": "Forvalgt rolle",
"Privileged Users": "Priviligerte brukere",
"Send %(eventType)s events": "Send %(eventType)s-hendelser",
"Select the roles required to change various parts of the room": "Velg rollene som kreves for å endre på diverse deler av rommet",
"Only people who have been invited": "Kun folk som har blitt invitert",
"Anyone who knows the room's link, apart from guests": "Alle som kjenner til rommets lenke, bortsett fra gjester",
"Anyone who knows the room's link, including guests": "Alle som kjenner til rommets lenke, inkludert gjester",
"Changes to who can read history will only apply to future messages in this room. The visibility of existing history will be unchanged.": "Endringer for hvem som kan lese historikken, vil kun bli benyttet for fremtidige meldinger i dette rommet. Synligheten til den eksisterende historikken vil forbli uendret.",
"Members only (since the point in time of selecting this option)": "Kun medlemmer (f.o.m. da denne innstillingen ble valgt)",
"Members only (since they were invited)": "Kun medlemmer (f.o.m. da de ble invitert)",
"Members only (since they joined)": "Kun medlemmer (f.o.m. de ble med)",
"Once enabled, encryption cannot be disabled.": "Dersom dette først har blitt skrudd på, kan kryptering aldri bli skrudd av.",
"Who can access this room?": "Hvem kan gå inn i dette rommet?",
"Who can read history?": "Hvem kan lese historikken?",
"Scroll to most recent messages": "Hopp bort til de nyeste meldingene",
"Share Link to User": "Del en lenke til brukeren",
"User Options": "Brukerinnstillinger",
"Filter room members": "Filtrer rommets medlemmer",
"Send a reply…": "Send et svar …",
"Send a reply (unencrypted)…": "Send et svar (ukryptert) …",
"Code block": "Kodefelt",
"Replying": "Svarer på",
"Room %(name)s": "Rom %(name)s",
"Start chatting": "Begynn å chatte",
"%(count)s unread messages.|one": "1 ulest melding.",
"Unread mentions.": "Uleste nevninger.",
"Unread messages.": "Uleste meldinger.",
"Send as message": "Send som en melding",
"You don't currently have any stickerpacks enabled": "Du har ikke skrudd på noen klistremerkepakker for øyeblikket",
"Add some now": "Legg til noen nå",
"Hide Stickers": "Skjul klistremerker",
"Show Stickers": "Vis klistremerker",
"Published addresses can be used by anyone on any server to join your room. To publish an address, it needs to be set as a local address first.": "Publiserte adresser kan brukes av alle på enhver tjener til å bli med i rommet ditt. For å publisere en adresse, må den bli satt til å være en lokal adresse først.",
"No other published addresses yet, add one below": "Det er ingen publiserte adresser enda, legg til en nedenfor",
"New published address (e.g. #alias:server)": "Ny publisert adresse (f.eks. #alias:tjener)",
"Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)": "Velg adresser for dette rommet slik at brukere kan finne dette rommet gjennom hjemmetjeneren din (%(localDomain)s)",
"This room is not showing flair for any communities": "Dette rommet viser ikke merkeskilter for noen samfunn",
"New community ID (e.g. +foo:%(localDomain)s)": "Ny samfunns-ID (f.eks. +foo:%(localDomain)s)",
"Room Name": "Rommets navn",
"Room Topic": "Rommets tema",
"Publish this room to the public in %(domain)s's room directory?": "Vil du publisere dette rommet til offentligheten i %(domain)s sitt rom-arkiv?",
"You have <a>enabled</a> URL previews by default.": "Du har <a>skrudd på</a> URL-forhåndsvisninger som standard.",
"You have <a>disabled</a> URL previews by default.": "Du har <a>skrudd av</a> URL-forhåndsvisninger som standard.",
"When someone puts a URL in their message, a URL preview can be shown to give more information about that link such as the title, description, and an image from the website.": "Når noen legger til en URL i meldingene deres, kan en URL-forhåndsvisning bli vist for å gi mere informasjonen om den lenken, f.eks. tittelen, beskrivelsen, og et bilde fra nettstedet.",
"Trusted": "Betrodd",
"Not trusted": "Ikke betrodd",
"Direct message": "Direktemelding",
"Verified": "Verifisert",
"Compare emoji": "Sammenlign emojier",
"Encryption enabled": "Kryptering er skrudd på",
"Encryption not enabled": "Kryptering er ikke skrudd på",
"%(senderDisplayName)s changed the room avatar to <img/>": "%(senderDisplayName)s endret rommets avatar til <img/>",
"Message removed": "Meldingen ble fjernet",
"Something went wrong!": "Noe gikk galt!",
"Visible to everyone": "Synlig for alle",
"Checking for an update...": "Leter etter en oppdatering …",
"No update available.": "Ingen oppdateringer er tilgjengelige.",
"Downloading update...": "Laster ned oppdatering …",
"Unknown Address": "Ukjent adresse",
"Your display name": "Ditt visningsnavn",
"Your avatar URL": "Din avatars URL",
"Widget added by": "Modulen ble lagt til av",
"Create new room": "Opprett et nytt rom",
"Unverify": "Av-verifiser",
"Verify...": "Verifiser …",
"Language Dropdown": "Språk-nedfallsmeny",
"Manage Integrations": "Behandle integreringer",
"%(nameList)s %(transitionList)s": "%(nameList)s %(transitionList)s",
"%(severalUsers)sjoined %(count)s times|other": "%(severalUsers)s ble med %(count)s ganger",
"%(severalUsers)sjoined %(count)s times|one": "%(severalUsers)s ble med",
"%(oneUser)sjoined %(count)s times|other": "%(oneUser)s ble med %(count)s ganger",
"%(oneUser)sjoined %(count)s times|one": "%(oneUser)s ble med",
"%(severalUsers)sleft %(count)s times|other": "%(severalUsers)s forlot rommet %(count)s ganger",
"%(severalUsers)sleft %(count)s times|one": "%(severalUsers)s forlot rommet",
"%(oneUser)sleft %(count)s times|other": "%(oneUser)s forlot rommet %(count)s ganger",
"%(oneUser)sleft %(count)s times|one": "%(oneUser)s forlot rommet",
"%(severalUsers)schanged their name %(count)s times|one": "%(severalUsers)s endret navnene sine",
"%(oneUser)schanged their name %(count)s times|one": "%(oneUser)s endret navnet sitt",
"%(severalUsers)schanged their avatar %(count)s times|one": "%(severalUsers)s endret avatarene sine",
"%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)s endret avataren sin",
"Custom level": "Tilpasset nivå",
"Room alias": "Rom-alias",
"Please provide a room alias": "Vennligst skriv inn et rom-alias",
"And %(count)s more...|other": "Og %(count)s til...",
"Remove server": "Fjern tjeneren",
"Matrix": "Matrix",
"Add a new server...": "Legg til en ny tjener …",
"Logs sent": "Loggbøkene ble sendt",
"GitHub issue": "Github-saksrapport",
"Send logs": "Send loggbøker",
"Create Community": "Opprett et samfunn",
"Please enter a name for the room": "Vennligst skriv inn et navn for rommet",
"Set a room alias to easily share your room with other people.": "Velg et rom-alias for å dele rommet ditt enkelt med andre.",
"This room is private, and can only be joined by invitation.": "Dette rommet er privat, og man kan kun bli med etter invitasjon",
"Create a public room": "Opprett et offentlig rom",
"Create a private room": "Opprett et privat rom",
"Topic (optional)": "Tema (valgfritt)",
"Make this room public": "Gjør dette rommet offentlig",
"Hide advanced": "Skjul avansert",
"Show advanced": "Vis avansert",
"Block users on other matrix homeservers from joining this room (This setting cannot be changed later!)": "Blokker brukere fra andre Matrix-hjemmetjenere fra å bli med i dette rommet (Denne innstillingen kan ikke bli endret på senere!)",
"To continue, please enter your password:": "For å gå videre, vennligst skriv inn passordet ditt:",
"Event Type": "Hendelsestype",
"Developer Tools": "Utviklerverktøy",
"Recent Conversations": "Nylige samtaler",
"Start a conversation with someone using their name, username (like <userId/>) or email address.": "Start en samtale med noen ut ifra deres navn, brukernavn (slik som <userId/>), eller E-postadresse.",
"Your account is not secure": "Kontoen din er ikke sikker",
"Your password": "Passordet ditt",
"Room Settings - %(roomName)s": "Rominnstillinger - %(roomName)s",
"(HTTP status %(httpStatus)s)": "(HTTP-status %(httpStatus)s)",
"Please set a password!": "Vennligst velg et passord!",
"Integration Manager": "Integreringsbehandler",
"To continue you need to accept the terms of this service.": "For å gå videre må du akseptere brukervilkårene til denne tjenesten.",
"Private Chat": "Privat chat",
"Public Chat": "Offentlig chat",
"Pin Message": "Fest fast meldingen",
"Mentions only": "Kun nevninger",
"Set a new status...": "Velg en ny status …",
"View Community": "Vis samfunnet",
"Confirm your identity by entering your account password below.": "Bekreft identiteten din ved å skrive inn kontopassordet ditt nedenfor.",
"Use an email address to recover your account": "Bruk en E-postadresse til å gjenopprette kontoen din",
"Enter email address (required on this homeserver)": "Skriv inn en E-postadresse (Påkrevd på denne hjemmetjeneren)",
"Doesn't look like a valid email address": "Det ser ikke ut som en gyldig E-postadresse",
"Password is allowed, but unsafe": "Passordet er tillatt, men er ikke trygt",
"Nice, strong password!": "Strålende, passordet er sterkt!",
"Keep going...": "Fortsett sånn …",
"Doesn't look like a valid phone number": "Det ser ikke ut som et gyldig telefonnummer",
"Use lowercase letters, numbers, dashes and underscores only": "Bruk kun småbokstaver, numre, streker og understreker",
"You must join the room to see its files": "Du må bli med i rommet for å se filene dens",
"There are no visible files in this room": "Det er ingen synlig filer i dette rommet",
"Failed to upload image": "Mislyktes i å laste opp bildet",
"Featured Users:": "Fremhevede brukere:",
"Filter rooms…": "Filtrer rom …",
"Signed Out": "Avlogget",
"%(creator)s created and configured the room.": "%(creator)s opprettet og satte opp rommet.",
"Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Opprett et samfunn for å samle sammen brukere og rom! Lag en tilpasset hjemmeside for å markere territoriet ditt i Matrix-universet.",
"You have no visible notifications": "Du har ingen synlige varsler",
"Find a room… (e.g. %(exampleRoom)s)": "Finn et rom… (f.eks. %(exampleRoom)s)",
"If you can't find the room you're looking for, ask for an invite or <a>Create a new room</a>.": "Hvis du ikke finner rommet du leter etter, be om en invitasjon eller <a>Opprett et nytt rom</a>.",
"Active call": "Aktiv samtale",
"Send Reset Email": "Send tilbakestillings-E-post",
"Registration Successful": "Registreringen var vellykket",
"Create your account": "Opprett kontoen din",
"Forgotten your password?": "Har du glemt passordet ditt?",
"Blacklisted": "Svartelistet",
"Export room keys": "Eksporter romnøkler",
"Import room keys": "Importer romnøkler",
"Go to Settings": "Gå til Innstillinger",
"Indexed messages:": "Indekserte meldinger:",
"Navigation": "Navigering",
"Autocomplete": "Autofullfør",
"Alt": "Alt",
"Alt Gr": "Alt Gr",
"Shift": "Shift",
"Super": "Super",
"Ctrl": "Ctrl",
"New line": "Ny linje",
"Cancel replying to a message": "Avbryt å svare på en melding",
"Page Up": "Page Up",
"Page Down": "Page Down",
"Esc": "Esc",
"Enter": "Send",
"Space": "Mellomrom",
"End": "Slutt",
"If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.": "Hvis du støter på noen programfeil eller har tilbakemeldinger som du vil dele, vennligst fortell oss om det på GitHub.",
"To help avoid duplicate issues, please <existingIssuesLink>view existing issues</existingIssuesLink> first (and add a +1) or <newIssueLink>create a new issue</newIssueLink> if you can't find it.": "For å unngå å lage duplikatrapporter, vennligst <existingIssuesLink>sjekk gjennom de eksisterende sakene</existingIssuesLink> først (og gi en tommel opp), eller <newIssueLink>opprett en ny saksrapport</newIssueLink> dersom du ikke finner noen tilsvarende saker.",
"Report bugs & give feedback": "Meld ifra om feil og gi tilbakemeldinger"
}

View file

@ -254,7 +254,7 @@
"Room Colour": "Gesprekskleur",
"%(roomName)s does not exist.": "%(roomName)s bestaat niet.",
"%(roomName)s is not accessible at this time.": "%(roomName)s is op dit moment niet toegankelijk.",
"Rooms": "Gesprekken",
"Rooms": "Groepsgesprekken",
"Save": "Opslaan",
"Scroll to bottom of page": "Scroll naar de onderkant van de pagina",
"Search failed": "Zoeken mislukt",

File diff suppressed because it is too large Load diff

View file

@ -1373,5 +1373,45 @@
"Enable desktop notifications for this session": "Włącz powiadomienia na pulpicie dla tej sesji",
"Enable audible notifications for this session": "Włącz powiadomienia dźwiękowe dla tej sesji",
"Sessions": "Sesje",
"Direct Messages": "Wiadomości bezpośrednie"
"Direct Messages": "Wiadomości bezpośrednie",
"Create Account": "Utwórz konto",
"Sign In": "Zaloguj się",
"a few seconds ago": "kilka sekund temu",
"%(num)s minutes ago": "%(num)s minut temu",
"%(num)s hours ago": "%(num)s godzin temu",
"%(num)s days ago": "%(num)s dni temu",
"Later": "Później",
"Show less": "Pokaż mniej",
"Show more": "Pokaż więcej",
"Clear notifications": "Wyczyść powiadomienia",
"Theme added!": "Dodano motyw!",
"Custom theme URL": "Niestandardowy adres URL motywu",
"Add theme": "Dodaj motyw",
"Keyboard Shortcuts": "Skróty klawiszowe",
"Ignored users": "Zignorowani użytkownicy",
"⚠ These settings are meant for advanced users.": "⚠ Te ustawienia są przeznaczone dla zaawansowanych użytkowników.",
"Subscribe": "Subskrybuj",
"This room isnt bridging messages to any platforms. <a>Learn more.</a>": "Ten pokój nie łączy wiadomości z żadnymi platformami. <a>Dowiedz się więcej.</a>",
"Reset": "Resetuj",
"Local address": "Lokalny adres",
"Published Addresses": "Opublikowane adresy",
"Local Addresses": "Lokalne adresy",
"Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)": "Ustaw adresy tego pokoju, aby użytkownicy mogli go znaleźć za pośrednictwem Twojego serwera domowego (%(localDomain)s)",
"Sign in to your Matrix account on %(serverName)s": "Zaloguj się do Twojego konta Matrix na %(serverName)s",
"Couldn't load page": "Nie można załadować strony",
"Create account": "Utwórz konto",
"Navigation": "Nawigacja",
"Calls": "Połączenia",
"Room List": "Lista pokoi",
"Alt": "Alt",
"Alt Gr": "Alt Gr",
"Shift": "Shift",
"Ctrl": "Ctrl",
"New line": "Nowa linia",
"Page Up": "Page Up",
"Page Down": "Page Down",
"Esc": "Esc",
"Enter": "Enter",
"Space": "Spacja",
"End": "End"
}

View file

@ -19,7 +19,7 @@
"Create Room": "Создать комнату",
"Cryptography": "Криптография",
"Curve25519 identity key": "Ключ идентификации Curve25519",
"Deactivate Account": "Закрыть аккаунт",
"Deactivate Account": "Деактивировать аккаунт",
"Decryption error": "Ошибка расшифровки",
"Default": "По умолчанию",
"Deops user with given id": "Снимает полномочия оператора с пользователя с заданным ID",
@ -43,8 +43,8 @@
"For security, this session has been signed out. Please sign in again.": "Для обеспечения безопасности ваша сессия была завершена. Пожалуйста, войдите снова.",
"Hangup": "Повесить трубку",
"Historical": "Архив",
"Homeserver is": "Домашний сервер:",
"Identity Server is": "Сервер идентификации:",
"Homeserver is": "Домашний сервер",
"Identity Server is": "Сервер идентификации",
"I have verified my email address": "Я подтвердил свой email",
"Import E2E room keys": "Импорт ключей шифрования",
"Invalid Email Address": "Недопустимый email",
@ -116,7 +116,7 @@
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "для %(userId)s с %(fromPowerLevel)s на %(toPowerLevel)s",
"click to reveal": "нажмите для открытия",
"%(senderName)s invited %(targetName)s.": "%(senderName)s приглашает %(targetName)s.",
"%(targetName)s joined the room.": "%(targetName)s вошел(-ла) в комнату.",
"%(targetName)s joined the room.": "К комнате присоединяется %(targetName)s.",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s выгнал(а) %(targetName)s.",
"%(targetName)s left the room.": "%(targetName)s покинул комнату.",
"%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s сделал(а) историю разговора видимой для всех собеседников с момента их приглашения.",
@ -195,7 +195,7 @@
"Ban": "Заблокировать",
"Change Password": "Сменить пароль",
"Command error": "Ошибка команды",
"Confirm password": "Подтвердите новый пароль",
"Confirm password": "Подтвердите пароль",
"Current password": "Текущий пароль",
"Email": "Электронная почта",
"Failed to kick": "Не удалось выгнать",
@ -257,7 +257,7 @@
"Make Moderator": "Сделать модератором",
"Room": "Комната",
"Cancel": "Отмена",
"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, так как в адресной строке браузера указан URL HTTPS. Используйте HTTPS или <a>либо включите небезопасные сценарии</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>.": "Не удается подключиться к домашнему серверу через HTTP, так как в адресной строке браузера указан адрес HTTPS. Используйте HTTPS или <a>включите небезопасные скрипты</a>.",
"Dismiss": "Отклонить",
"Custom Server Options": "Параметры другого сервера",
"Mute": "Приглушить",
@ -450,7 +450,7 @@
"Create": "Создать",
"Featured Rooms:": "Рекомендуемые комнаты:",
"Featured Users:": "Избранные пользователи:",
"Automatically replace plain text Emoji": "Автоматически заменять текстовые смайлики на Emoji",
"Automatically replace plain text Emoji": "Автоматически заменять текстовые смайлики на графические",
"Failed to upload image": "Не удалось загрузить изображение",
"%(widgetName)s widget added by %(senderName)s": "Виджет %(widgetName)s был добавлен %(senderName)s",
"%(widgetName)s widget removed by %(senderName)s": "Виджет %(widgetName)s был удален %(senderName)s",
@ -486,7 +486,7 @@
"Add to summary": "Добавить в сводку",
"Failed to add the following users to the summary of %(groupId)s:": "Не удалось добавить следующих пользователей в сводку %(groupId)s:",
"Which rooms would you like to add to this summary?": "Какие комнаты вы хотите добавить в эту сводку?",
"Room name or alias": "Название комнаты или псевдоним",
"Room name or alias": "Название или псевдоним комнаты",
"Pinned Messages": "Закреплённые сообщения",
"%(senderName)s changed the pinned messages for the room.": "%(senderName)s изменил(а) закреплённые в этой комнате сообщения.",
"Failed to add the following rooms to the summary of %(groupId)s:": "Не удалось добавить следующие комнаты в сводку %(groupId)s:",
@ -706,7 +706,7 @@
"Key request sent.": "Запрос ключа отправлен.",
"Code": "Код",
"If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "Если вы отправили ошибку через GitHub, журналы отладки могут помочь нам выявить проблему. Журналы отладки содержат данные об использовании приложения, включая ваше имя пользователя, идентификаторы или псевдонимы комнат или групп, которые вы посетили, а также имена других пользователей. Они не содержат сообщений.",
"Submit debug logs": "Отправка журналов отладки",
"Submit debug logs": "Отправить отладочные журналы",
"Opens the Developer Tools dialog": "Открывает Инструменты разработчика",
"Seen by %(displayName)s (%(userName)s) at %(dateTime)s": "Прочитано %(displayName)s (%(userName)s) в %(dateTime)s",
"Unable to join community": "Не удалось присоединиться к сообществу",
@ -752,7 +752,7 @@
"Messages in one-to-one chats": "Сообщения в 1:1 чатах",
"Unavailable": "Недоступен",
"Error saving email notification preferences": "Ошибка сохранения настроек email-уведомлений",
"View Decrypted Source": "Просмотр расшифрованного источника",
"View Decrypted Source": "Расшифрованный исходный код",
"Failed to update keywords": "Не удалось обновить ключевые слова",
"remove %(name)s from the directory.": "удалить %(name)s из каталога.",
"Notifications on the following keywords follow rules which cant be displayed here:": "Уведомления по этим ключевым словам соответствуют правилам, которые нельзя отобразить здесь:",
@ -772,7 +772,7 @@
"Enable notifications for this account": "Включить уведомления для этой учётной записи",
"Invite to this community": "Пригласить в это сообщество",
"Messages containing <span>keywords</span>": "Сообщения, содержащие определённые <span>ключевые слова</span>",
"View Source": "Просмотр источника",
"View Source": "Исходный код",
"Tuesday": "Вторник",
"Enter keywords separated by a comma:": "Введите ключевые слова, разделённые запятой:",
"Search…": "Поиск…",
@ -797,7 +797,7 @@
"You must specify an event type!": "Необходимо указать тип мероприятия!",
"(HTTP status %(httpStatus)s)": "(статус HTTP %(httpStatus)s)",
"Invite to this room": "Пригласить в комнату",
"Send logs": "Отправка журналов",
"Send logs": "Отправить журналы",
"All messages": "Все сообщения",
"Call invitation": "Звонки",
"Downloading update...": "Загрузка обновления…",
@ -861,7 +861,7 @@
"We encountered an error trying to restore your previous session.": "Произошла ошибка при попытке восстановить предыдущий сеанс.",
"Clearing your browser's storage may fix the problem, but will sign you out and cause any encrypted chat history to become unreadable.": "Очистка хранилища вашего браузера может устранить проблему, но при этом ваша сессия будет завершена и зашифрованная история чата станет нечитаемой.",
"Unable to load event that was replied to, it either does not exist or you do not have permission to view it.": "Не удается загрузить событие, на которое был дан ответ. Либо оно не существует, либо у вас нет разрешения на его просмотр.",
"Enable widget screenshots on supported widgets": "Включить скриншоты виджета в поддерживаемых виджетах",
"Enable widget screenshots on supported widgets": "Включить скриншоты виджетов для поддерживаемых виджетов",
"Collapse Reply Thread": "Ответить с цитированием",
"Send analytics data": "Отправить данные аналитики",
"Muted Users": "Приглушённые пользователи",
@ -896,8 +896,8 @@
"The password field must not be blank.": "Поле пароля не должно быть пустым.",
"Call in Progress": "Выполнение вызова",
"A call is already in progress!": "Вызов выполняется!",
"Share Room Message": "Обмен сообщениями в комнате",
"Share Message": "Обмен сообщениями",
"Share Room Message": "Поделиться сообщением",
"Share Message": "Поделиться сообщением",
"You can't send any messages until you review and agree to <consentLink>our terms and conditions</consentLink>.": "Вы не можете отправлять сообщения до тех пор, пока вы не примете <consentLink>наши правила и положения</consentLink>.",
"Demote": "Понижение",
"Demote yourself?": "Понизить самого себя?",
@ -939,7 +939,7 @@
"%(names)s and %(lastPerson)s are typing …": "%(names)s и %(lastPerson)s печатают…",
"This homeserver has hit its Monthly Active User limit.": "Сервер достиг ежемесячного ограничения активных пользователей.",
"This homeserver has exceeded one of its resource limits.": "Превышен один из лимитов на ресурсы сервера.",
"Unable to connect to Homeserver. Retrying...": "Невозможно соединиться с домашним сервером. Повторить",
"Unable to connect to Homeserver. Retrying...": "Невозможно соединиться с домашним сервером. Пробуем снова...",
"Unrecognised address": "Нераспознанный адрес",
"You do not have permission to invite people to this room.": "У вас нет разрешения приглашать людей в эту комнату.",
"User %(user_id)s may or may not exist": "Пользователя %(user_id)s не существует",
@ -975,7 +975,7 @@
"Sorry, your homeserver is too old to participate in this room.": "Извините, ваш сервер слишком старый, для участия в этой комнате.",
"Please contact your homeserver administrator.": "Пожалуйста, свяжитесь с администратором вашего сервера.",
"Render simple counters in room header": "Отображать простые счетчики в заголовке комнаты",
"Enable Emoji suggestions while typing": "Включить предложения эмоджи при наборе",
"Enable Emoji suggestions while typing": "Включить предложения смайликов при наборе",
"Show a placeholder for removed messages": "Показывать плашки вместо удалённых сообщений",
"Show join/leave messages (invites/kicks/bans unaffected)": "Показывать сообщения о вступлении | выходе (не влияет на приглашения, исключения и запреты)",
"Show avatar changes": "Показывать изменения аватара",
@ -992,7 +992,7 @@
"The other party cancelled the verification.": "Другая сторона отменила проверку.",
"Verified!": "Верифицировано!",
"You've successfully verified this user.": "Вы успешно верифицировали этого пользователя.",
"Got It": "Понял",
"Got It": "Понятно",
"Verify this user by confirming the following number appears on their screen.": "Верифицируйте пользователя, убедившись, что на его экране отображается следующее число.",
"Yes": "Да",
"No": "Нет",
@ -1175,7 +1175,7 @@
"Folder": "Папка",
"Pin": "Кнопка",
"Your keys are being backed up (the first backup could take a few minutes).": "Выполняется резервная копия ключей (первый раз это может занять несколько минут).",
"The file '%(fileName)s' exceeds this homeserver's size limit for uploads": "Размер файла '%(fileName)s' превышает разрешённый предел для текущего сервера",
"The file '%(fileName)s' exceeds this homeserver's size limit for uploads": "Размер файла '%(fileName)s' превышает допустимый размер для этого сервера",
"Prepends ¯\\_(ツ)_/¯ to a plain-text message": "Добавляет смайл ¯\\_(ツ)_/¯ в начало сообщения",
"Changes your display nickname in the current room only": "Изменяет ваш псевдоним только для текущей комнаты",
"Gets or sets the room topic": "Читает или устанавливает тему комнаты",
@ -1192,7 +1192,7 @@
"Verify this user by confirming the following emoji appear on their screen.": "Проверьте собеседника, убедившись, что на его экране отображаются следующие символы (смайлы).",
"Unable to find a supported verification method.": "Невозможно определить поддерживаемый метод верификации.",
"Scissors": "Ножницы",
"Secure messages with this user are end-to-end encrypted and not able to be read by third parties.": "Общение с этим пользователем зашифровано сквозным шифрованием и недоступно третьим лицам.",
"Secure messages with this user are end-to-end encrypted and not able to be read by third parties.": "Защищённые сообщения с этим пользователем зашифрованы сквозным шифрованием и недоступны третьим лицам.",
"We've sent you an email to verify your address. Please follow the instructions there and then click the button below.": "Мы отправили вам сообщение для подтверждения адреса электронной почты. Пожалуйста выполните указания данные в сообщении и нажмите кнопку внизу.",
"Are you sure? You will lose your encrypted messages if your keys are not backed up properly.": "Вы уверены? Зашифрованные сообщения будут безвозвратно утеряны при отсутствии соответствующего резервного копирования ваших ключей.",
"Encrypted messages are secured with end-to-end encryption. Only you and the recipient(s) have the keys to read these messages.": "Зашифрованные сообщения защищены сквозным шифрованием. Только вы и ваш собеседник имеете ключи для их расшифровки и чтения.",
@ -1245,7 +1245,7 @@
"No homeserver URL provided": "URL-адрес домашнего сервера не указан",
"Unexpected error resolving homeserver configuration": "Неожиданная ошибка в настройках домашнего сервера",
"The user's homeserver does not support the version of the room.": "Домашний сервер пользователя не поддерживает версию комнаты.",
"Show read receipts sent by other users": "Показать подтверждение прочтения, отправленные другими пользователями",
"Show read receipts sent by other users": "Показывать отметки о прочтении, посылаемые другими пользователями",
"Show hidden events in timeline": "Показать скрытые события в хронологии",
"When rooms are upgraded": "При обновлении комнат",
"<a>Upgrade</a> to your own domain": "<a>Обновление</a> до собственного домена",
@ -1254,22 +1254,22 @@
"Upgrade this room to the recommended room version": "Обновите комнату до рекомендованной версии",
"this room": "эта комната",
"View older messages in %(roomName)s.": "Просмотр старых сообщений в %(roomName)s.",
"Change history visibility": "Изменить отображения истории",
"Change history visibility": "Изменить видимость истории",
"Change topic": "Изменить тему",
"Modify widgets": "Изменить виджеты",
"Invite users": "Пригласить пользователей",
"Kick users": "Выгнать пользователей",
"Ban users": "Запрет пользователей",
"Send %(eventType)s events": "Отправить %(eventType)s события",
"Select the roles required to change various parts of the room": "Выбор ролей, необходимых для изменения различных частей комнат",
"Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. <a>Learn more about encryption.</a>": "Включенное шифрование комнаты не может быть отключено. Сообщения, отправленные в зашифрованном помещении, не могут быть просмотрены сервером, только участниками комнаты. Включение шифрования может помешать нормальной работе многих ботов и мостов. <a>Узнайте больше о шифровании.</a>",
"To link to this room, please add an alias.": "Чтобы связаться с этой комнатой, пожалуйста, добавьте псевдоним.",
"Select the roles required to change various parts of the room": "Выберите роли, которые смогут менять различные параметры комнаты",
"Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. <a>Learn more about encryption.</a>": "После включения шифрования в комнате оно не может быть отключено. Сообщения, отправленные в шифрованной комнате, смогут прочитать только участники комнаты, но не сервер. Включенное шифрование может помешать корректной работе многим ботам и мостам. <a>Подробнее о шифровании.</a>",
"To link to this room, please add an alias.": "Для ссылки на эту комнату, пожалуйста, добавьте псевдоним.",
"Changes to who can read history will only apply to future messages in this room. The visibility of existing history will be unchanged.": "Изменения в том, кто может читать историю, будут применяться только к будущим сообщениям в этой комнате. Существующие истории останутся без изменений.",
"%(senderDisplayName)s enabled flair for %(groups)s in this room.": "%(senderDisplayName)s включено для %(groups)s в этой комнате.",
"%(senderDisplayName)s disabled flair for %(groups)s in this room.": "%(senderDisplayName)s выключено для %(groups)s в этой комнате.",
"%(senderDisplayName)s enabled flair for %(newGroups)s and disabled flair for %(oldGroups)s in this room.": "%(senderDisplayName)s включено для %(newGroups)s и отключено для %(oldGroups)s в этой комнате.",
"Once enabled, encryption cannot be disabled.": "После включения, шифрование не может быть отключено.",
"This room has been replaced and is no longer active.": "Эта комната была заменена и больше не активна.",
"This room has been replaced and is no longer active.": "Эта комната была замещена и больше не активна.",
"Joining room …": "Вступление в комнату …",
"Loading …": "Загрузка…",
"Rejecting invite …": "Отказ от приглашения …",
@ -1295,9 +1295,9 @@
"Try again later, or ask a room admin to check if you have access.": "Повторите попытку позже или попросите администратора комнаты проверить, есть ли у вас доступ.",
"%(errcode)s was returned while trying to access the room. If you think you're seeing this message in error, please <issueLink>submit a bug report</issueLink>.": "%(errcode)s был возвращен при попытке доступа в комнату. Если вы считаете, что видите это сообщение по ошибке, пожалуйста, <issueLink> отправьте отчет об ошибке </issueLink>.",
"Never lose encrypted messages": "Никогда не теряйте зашифрованные сообщения",
"Messages in this room are secured with end-to-end encryption. Only you and the recipient(s) have the keys to read these messages.": "Сообщения в этой комнате защищены сквозным шифрованием. Только вы и получатель(и) имеют ключи для чтения этих сообщений.",
"Securely back up your keys to avoid losing them. <a>Learn more.</a>": "Надежно сохраните резервную копию ключей, чтобы не потерять их. <a>Подробнее</a>",
"Don't ask me again": "Не спрашивай меня больше",
"Messages in this room are secured with end-to-end encryption. Only you and the recipient(s) have the keys to read these messages.": "Сообщения в этой комнате защищены сквозным шифрованием. Только у вас и получателя(ей) есть ключи для чтения этих сообщений.",
"Securely back up your keys to avoid losing them. <a>Learn more.</a>": "Надежно сохраните резервную копию ваших ключей, чтобы избежать их потери. <a>Подробнее</a>",
"Don't ask me again": "Больше не спрашивать",
"Upgrading this room will shut down the current instance of the room and create an upgraded room with the same name.": "Обновление этой комнаты отключит текущий экземпляр комнаты и создаст обновлённую комнату с тем же именем.",
"This room has already been upgraded.": "Эта комната уже была обновлена.",
"This room is running room version <roomVersion />, which this homeserver has marked as <i>unstable</i>.": "Эта комната работает под управлением версии комнаты <roomVersion />, которую этот сервер пометил как <i>unstable</i>.",
@ -1322,28 +1322,28 @@
"Rotate clockwise": "Повернуть по часовой стрелке",
"Edit message": "Редактировать сообщение",
"Power level": "Уровень прав",
"Unable to find profiles for the Matrix IDs listed below - would you like to invite them anyway?": "Не удалось найти профили для Matrix ID, перечисленных ниже. Вы всё равно хотите их пригласить?",
"Invite anyway": "Пригласить в любом случае",
"Unable to find profiles for the Matrix IDs listed below - would you like to invite them anyway?": "Не удалось найти профили для перечисленных ниже Matrix ID. Вы всё равно хотите их пригласить?",
"Invite anyway": "Всё равно пригласить",
"GitHub issue": "GitHub вопрос",
"Notes": "Заметка",
"If there is additional context that would help in analysing the issue, such as what you were doing at the time, room IDs, user IDs, etc., please include those things here.": "Если есть дополнительный контекст, который может помочь в анализе проблемы, такой как то, что вы делали в то время, ID комнат, ID пользователей и т. д., пожалуйста, включите эти данные.",
"Unable to load commit detail: %(msg)s": "Невозможно загрузить детали: %(msg)s",
"To avoid losing your chat history, you must export your room keys before logging out. You will need to go back to the newer version of Riot to do this": "Чтобы не потерять историю чата, вы должны экспортировать ключи от комнаты перед выходом из системы. Вам нужно будет вернуться к более новой версии Riot, чтобы сделать это",
"To avoid losing your chat history, you must export your room keys before logging out. You will need to go back to the newer version of Riot to do this": "Чтобы не потерять историю чата, вы должны экспортировать ключи от комнаты перед выходом из системы. Для этого вам нужно будет вернуться к более новой версии Riot",
"You've previously used a newer version of Riot on %(host)s. To use this version again with end to end encryption, you will need to sign out and back in again. ": "Ранее вы использовали более новую версию Riot на %(host)s. Чтобы снова использовать эту версию с сквозным шифрованием, вам нужно выйти и снова войти. ",
"Waiting for partner to accept...": "В ожидании партнера, чтобы принять ...",
"Nothing appearing? Not all clients support interactive verification yet. <button>Use legacy verification</button>.": "Ничего не появляется? Еще не все клиенты поддерживают интерактивную верификацию. <button> Использовать устаревшую проверку</button>.",
"Waiting for %(userId)s to confirm...": "Ожидание %(userId)s для подтверждения ...",
"Waiting for partner to accept...": "Ожидание подтверждения партнера...",
"Nothing appearing? Not all clients support interactive verification yet. <button>Use legacy verification</button>.": "Ничего не появляется? Еще не все клиенты поддерживают интерактивную проверку. <button> Использовать устаревшую проверку</button>.",
"Waiting for %(userId)s to confirm...": "Ожидание подтверждения от %(userId)s...",
"Use two-way text verification": "Использовать двустороннюю проверку текста",
"View Servers in Room": "Просмотр серверов в комнате",
"Verify this user to mark them as trusted. Trusting users gives you extra peace of mind when using end-to-end encrypted messages.": "Проверьте этого пользователя, чтобы отметить его как доверенного. Доверенные пользователи дают вам дополнительное спокойствие при использовании сквозного шифрования сообщений.",
"Waiting for partner to confirm...": "В ожидании партнера, чтобы подтвердить ...",
"Verify this user to mark them as trusted. Trusting users gives you extra peace of mind when using end-to-end encrypted messages.": "Проверьте этого пользователя, чтобы отметить его как доверенного. Доверенные пользователи дают вам больше уверенности при использовании шифрованных сообщений.",
"Waiting for partner to confirm...": "Ожидание подтверждения партнера...",
"You've previously used Riot on %(host)s with lazy loading of members enabled. In this version lazy loading is disabled. As the local cache is not compatible between these two settings, Riot needs to resync your account.": "Ранее вы использовали Riot на %(host)s с отложенной загрузкой участников. В этой версии отложенная загрузка отключена. Поскольку локальный кеш не совместим между этими двумя настройками, Riot необходимо повторно синхронизировать вашу учётную запись.",
"If the other version of Riot is still open in another tab, please close it as using Riot on the same host with both lazy loading enabled and disabled simultaneously will cause issues.": "Если другая версия Riot все еще открыта на другой вкладке, закройте ее, так как использование Riot на том же хосте с включенной и отключенной ленивой загрузкой одновременно вызовет проблемы.",
"Riot now uses 3-5x less memory, by only loading information about other users when needed. Please wait whilst we resynchronise with the server!": "Riot теперь использует в 3-5 раз меньше памяти, загружая информацию только о других пользователях, когда это необходимо. Пожалуйста, подождите, пока мы ресинхронизируемся с сервером!",
"I don't want my encrypted messages": "Продолжить выход, мне не нужны мои зашифрованные сообщения",
"Manually export keys": "Ручной экспорт ключей",
"If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.": "Если вы столкнулись с какими-либо ошибками или хотите оставить отзыв, которым хотите поделиться, сообщите нам об этом на GitHub.",
"To help avoid duplicate issues, please <existingIssuesLink>view existing issues</existingIssuesLink> first (and add a +1) or <newIssueLink>create a new issue</newIssueLink> if you can't find it.": "Чтобы избежать повторяющихся проблем, сначала <existingIssuesLink> просмотрите существующие проблемы </existingIssuesLink> (и добавьте +1), либо <newIssueLink> создайте новую проблему </newIssueLink>, если вы не можете ее найти.",
"Riot now uses 3-5x less memory, by only loading information about other users when needed. Please wait whilst we resynchronise with the server!": "Riot теперь использует в 3-5 раз меньше памяти, загружая информацию о других пользователях только когда это необходимо. Пожалуйста, подождите, пока мы ресинхронизируемся с сервером!",
"I don't want my encrypted messages": "Мне не нужны мои зашифрованные сообщения",
"Manually export keys": "Экспортировать ключи вручную",
"If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.": "Если вы заметили ошибку или хотите оставить отзыв, пожалуйста, сообщите нам на GitHub.",
"To help avoid duplicate issues, please <existingIssuesLink>view existing issues</existingIssuesLink> first (and add a +1) or <newIssueLink>create a new issue</newIssueLink> if you can't find it.": "Чтобы избежать повторяющихся проблем, сначала <existingIssuesLink>просмотрите существующие задачи</existingIssuesLink> (и добавьте +1), либо <newIssueLink>создайте новую задачу</newIssueLink>, если вы не можете ее найти.",
"Sign out and remove encryption keys?": "Выйти и удалить ключи шифрования?",
"Low bandwidth mode": "Режим низкой пропускной способности",
"To help us prevent this in future, please <a>send us logs</a>.": "Чтобы помочь нам предотвратить это в будущем, пожалуйста, <a>отправьте нам логи</a>.",
@ -1430,7 +1430,7 @@
"Sign in instead": "Войдите, вместо этого",
"Your password has been reset.": "Ваш пароль был сброшен.",
"Set a new password": "Установить новый пароль",
"Invalid homeserver discovery response": "Неверное обнаружения сервера",
"Invalid homeserver discovery response": "Неверный ответ при попытке обнаружения домашнего сервера",
"Failed to get autodiscovery configuration from server": "Не удалось получить конфигурацию автообнаружения с сервера",
"Show recently visited rooms above the room list": "Показать недавно посещённые комнаты над списком комнат",
"Invalid base_url for m.homeserver": "Неверный base_url для m.homeserver",
@ -1487,7 +1487,7 @@
"<a>Log in</a> to your new account.": "<a>Войти</a> в вашу новую учётную запись.",
"You can now close this window or <a>log in</a> to your new account.": "Вы можете закрыть это окно или <a>войти</a> в вашу новую учётную запись.",
"Registration Successful": "Регистрация успешно завершена",
"Changes your avatar in all rooms": "Изменить Ваш аватар во всех комнатах",
"Changes your avatar in all rooms": "Изменяет ваш аватар во всех комнатах",
"%(senderName)s made no change.": "%(senderName)s не внёс изменений.",
"Loading room preview": "Загрузка предпросмотра комнаты",
"Show all": "Показать все",
@ -1546,7 +1546,7 @@
"Disconnect from the identity server <idserver />?": "Отсоединиться от сервера идентификации <idserver />?",
"Disconnect": "Отключить",
"Identity Server (%(server)s)": "Сервер идентификации (%(server)s)",
"Do not use an identity server": "Не используйте сервер идентификации",
"Do not use an identity server": "Не использовать сервер идентификации",
"Enter a new identity server": "Введите новый идентификационный сервер",
"Integration Manager": "Менеджер интеграции",
"Alternatively, you can try to use the public server at <code>turn.matrix.org</code>, but this will not be as reliable, and it will share your IP address with that server. You can also manage this in Settings.": "Кроме того, вы можете попытаться использовать общедоступный сервер по адресу <code> turn.matrix.org </code>, но это не будет настолько надежным, и он предоставит ваш IP-адрес этому серверу. Вы также можете управлять этим в настройках.",
@ -1569,7 +1569,7 @@
"Create a private room": "Создать приватную комнату",
"Topic (optional)": "Тема (опционально)",
"Make this room public": "Сделать комнату публичной",
"Send read receipts for messages (requires compatible homeserver to disable)": "Отправлять подтверждения о прочтении сообщений (требуется отключение совместимого домашнего сервера)",
"Send read receipts for messages (requires compatible homeserver to disable)": "Отправлять подтверждения о прочтении сообщений (требуется совместимый домашний сервер для отключения)",
"Show previews/thumbnails for images": "Показать превью / миниатюры для изображений",
"Disconnect from the identity server <current /> and connect to <new /> instead?": "Отключиться от сервера идентификации <current /> и вместо этого подключиться к <new />?",
"Disconnect identity server": "Отключить идентификационный сервер",
@ -1578,11 +1578,11 @@
"Disconnect anyway": "Отключить в любом случае",
"You are currently using <server></server> to discover and be discoverable by existing contacts you know. You can change your identity server below.": "В настоящее время вы используете <server></server> для поиска вами ваших контактов а также вас вашими оппонентами. Вы можете изменить ваш сервер идентификации ниже.",
"If you don't want to use <server /> to discover and be discoverable by existing contacts you know, enter another identity server below.": "Если вы не хотите использовать <server /> для обнаружения вас и быть обнаруженным вашими существующими контактами, введите другой идентификационный сервер ниже.",
"You are not currently using an identity server. To discover and be discoverable by existing contacts you know, add one below.": "Вы в настоящее время не используете идентификационный сервер. Чтобы найти и быть найденным существующими контактами, которые вы знаете, добавьте один ниже.",
"You are not currently using an identity server. To discover and be discoverable by existing contacts you know, add one below.": "Вы в настоящее время не используете сервер идентификации. Чтобы найти известные вам контакты, и чтобы они могли найти вас, укажите сервер ниже.",
"Disconnecting from your identity server will mean you won't be discoverable by other users and you won't be able to invite others by email or phone.": "Отключение от сервера идентификации будет означать, что другие пользователи не смогут вас обнаружить, и вы не сможете приглашать других по электронной почте или по телефону.",
"Using an identity server is optional. If you choose not to use an identity server, you won't be discoverable by other users and you won't be able to invite others by email or phone.": "Использование сервера идентификации не обязательно. Если вы решите не использовать сервер идентификации, другие пользователи не смогут обнаружить вас, и вы не сможете пригласить других по электронной почте или телефону.",
"Agree to the identity server (%(serverName)s) Terms of Service to allow yourself to be discoverable by email address or phone number.": "Подтвердите условия предоставления услуг сервера идентификации (%(serverName)s), чтобы вас можно было обнаружить по адресу электронной почты или номеру телефона.",
"Discovery": "Поиск",
"Discovery": "Обнаружение",
"Deactivate account": "Деактивировать аккаунт",
"Clear cache and reload": "Очистить кэш и перезагрузить",
"Always show the window menu bar": "Всегда показывать строку меню",
@ -1624,7 +1624,7 @@
"Remove %(count)s messages|other": "Удалить %(count)s сообщений",
"Remove %(count)s messages|one": "Удалить 1 сообщение",
"Deactivate user?": "Деактивировать пользователя?",
"Deactivate user": "Пользователь деактивирован",
"Deactivate user": "Деактивировать пользователя",
"Remove recent messages": "Удалить последние сообщения",
"Bold": "Жирный",
"Italics": "Курсив",
@ -1648,7 +1648,7 @@
"Command Help": "Помощь команды",
"To continue you need to accept the terms of this service.": "Для продолжения Вам необходимо принять условия данного сервиса.",
"Document": "Документ",
"Report Content": "Содержание отчета",
"Report Content": "Пожаловаться на сообщение",
"Deactivating this user will log them out and prevent them from logging back in. Additionally, they will leave all the rooms they are in. This action cannot be reversed. Are you sure you want to deactivate this user?": "Деактивация этого пользователя приведет к его выходу из системы и запрету повторного входа. Кроме того, они оставит все комнаты, в которых он участник. Это действие безповоротно. Вы уверены, что хотите деактивировать этого пользователя?",
"An error (%(errcode)s) was returned while trying to validate your invite. You could try to pass this information on to a room admin.": "При попытке подтвердить приглашение была возвращена ошибка (%(errcode)s). Вы можете попробовать передать эту информацию администратору комнаты.",
"This invite to %(roomName)s was sent to %(email)s which is not associated with your account": "Это приглашение в %(roomName)s было отправлено на %(email)s, которое не связано с вашей учетной записью",
@ -1680,7 +1680,7 @@
"Command Autocomplete": "Автозаполнение команды",
"Community Autocomplete": "Автозаполнение сообщества",
"DuckDuckGo Results": "DuckDuckGo результаты",
"Emoji Autocomplete": "Emoji Автозаполнение",
"Emoji Autocomplete": "Автодополнение смайлов",
"Notification Autocomplete": "Автозаполнение уведомлений",
"Room Autocomplete": "Автозаполнение комнаты",
"User Autocomplete": "Автозаполнение пользователя",
@ -1723,7 +1723,7 @@
"Delete %(count)s sessions|other": "Удалить %(count)s сессию",
"Enable desktop notifications for this session": "Включить уведомления для рабочего стола для этой сессии",
"Enable audible notifications for this session": "Включить звуковые уведомления для этой сессии",
"Use an Integration Manager <b>(%(serverName)s)</b> to manage bots, widgets, and sticker packs.": "Используйте Менеджер интеграциями <b>%(serverName)s</b> для управления ботами, виджетами и стикерами.",
"Use an Integration Manager <b>(%(serverName)s)</b> to manage bots, widgets, and sticker packs.": "Используйте менеджер интеграций <b>%(serverName)s</b> для управления ботами, виджетами и стикерами.",
"Use an Integration Manager to manage bots, widgets, and sticker packs.": "Используйте Менеджер интеграциями для управления ботами, виджетами и стикерами.",
"Manage integrations": "Управление интеграциями",
"Integration Managers receive configuration data, and can modify widgets, send room invites, and set power levels on your behalf.": "Менеджеры интеграции получают данные конфигурации и могут изменять виджеты, отправлять приглашения в комнаты и устанавливать уровни доступа от вашего имени.",
@ -1743,9 +1743,9 @@
"Never send encrypted messages to unverified sessions from this session": "Никогда не отправляйте зашифрованные сообщения в непроверенные сессий из этой сессии",
"Never send encrypted messages to unverified sessions in this room from this session": "Никогда не отправляйте зашифрованные сообщения в непроверенные сессии в эту комнату из этой сессии",
"Your keys are <b>not being backed up from this session</b>.": "Ваши ключи <b>не резервируются с этой сессии</b>.",
"Server or user ID to ignore": "ID сервера или пользователя для игнорирования",
"Server or user ID to ignore": "Сервер или ID пользователя для игнорирования",
"Subscribed lists": "Подписанные списки",
"Subscribe": "Подписать",
"Subscribe": "Подписаться",
"A session's public name is visible to people you communicate with": "Публичное имя сессии видны людям, с которыми вы общаетесь",
"If you cancel now, you won't complete verifying the other user.": "Если вы сейчас отмените, у вас не будет завершена проверка других пользователей.",
"If you cancel now, you won't complete your secret storage operation.": "Если вы сейчас отмените, вы не завершите операцию секретного хранения.",
@ -1764,8 +1764,8 @@
"%(senderName)s placed a voice call. (not supported by this browser)": "%(senderName)s сделал голосовой вызов. (не поддерживается этим браузером)",
"%(senderName)s placed a video call.": "%(senderName)s сделал видео вызов.",
"%(senderName)s placed a video call. (not supported by this browser)": "%(senderName)s сделал видео вызов. (не поддерживается этим браузером)",
"%(senderName)s removed the rule banning users matching %(glob)s": "%(senderName)s удалил правило, запрещающее пользователям соответствовать %(glob)s",
"%(senderName)s removed the rule banning rooms matching %(glob)s": "%(senderName)s removed the rule banning rooms matching %(glob)s",
"%(senderName)s removed the rule banning users matching %(glob)s": "%(senderName)s удалил(а) правило блокировки пользователей по шаблону %(glob)s",
"%(senderName)s removed the rule banning rooms matching %(glob)s": "%(senderName)s удалил правило блокировки комнат по шаблону %(glob)s",
"a few seconds ago": "несколько секунд назад",
"about a minute ago": "около минуты назад",
"%(num)s minutes ago": "%(num)s минут назад",
@ -1789,16 +1789,16 @@
"Keep secret storage passphrase in memory for this session": "Храните в памяти секретную парольную фразу для этого сеанса",
"How fast should messages be downloaded.": "Как быстро сообщения должны быть загружены.",
"This is your list of users/servers you have blocked - don't leave the room!": "Это список пользователей/серверов, которые вы заблокировали - не покидайте комнату!",
"Verify this session by completing one of the following:": "Проверить эту сессию, выполнив одно из следующих действий:",
"Verify this session by completing one of the following:": "Проверьте эту сессию, выполнив одно из следующих действий:",
"Scan this unique code": "Отсканируйте этот уникальный код",
"or": "или",
"Compare unique emoji": "Сравнитe уникальныe эмодзи",
"Compare a unique set of emoji if you don't have a camera on either device": "Сравните уникальный набор смайликов, если у вас нет камеры ни на одном из устройств.",
"Compare unique emoji": "Сравнитe уникальныe смайлики",
"Compare a unique set of emoji if you don't have a camera on either device": "Сравните уникальный набор смайликов, если у вас нет камеры ни на одном из устройств",
"Start": "Начать",
"Confirm the emoji below are displayed on both devices, in the same order:": "Подтвердите, что смайлики, приведенные ниже, отображаются на обоих устройствах в одном и том же порядке:",
"Verify this device by confirming the following number appears on its screen.": "Проверьте это устройство, подтвердив, что на его экране появляется следующий номер.",
"Waiting for %(displayName)s to verify…": "Ждите %(displayName)s, чтобы проверить...",
"Cancelling…": "Отменяется...",
"Waiting for %(displayName)s to verify…": "Ожидание %(displayName)s для проверки…",
"Cancelling…": "Отмена…",
"They match": "Они совпадают",
"They don't match": "Они не совпадают",
"To be secure, do this in person or use a trusted way to communicate.": "Чтобы быть в безопасности, делайте это лично или используйте надежный способ связи.",
@ -1816,5 +1816,123 @@
"Channel: %(channelName)s": "Канал: %(channelName)s",
"Show less": "Показать меньше",
"Show more": "Показать больше",
"Changing password will currently reset any end-to-end encryption keys on all sessions, 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 sessions, 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 sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Если вы не экспортируете ключи для этой комнаты и не импортируете их в будущем, смена пароля приведёт к сбросу всех ключей сквозного шифрования и сделает невозможным чтение истории чата. В будущем это будет улучшено.",
"Whether you're using Riot on a device where touch is the primary input mechanism": "Используете ли вы Riot на устройстве с тач-дисплеем в качестве основного способа ввода",
"Whether you're using Riot as an installed Progressive Web App": "Используете ли вы Riot в виде установленного прогрессивного веб-приложения",
"Your user agent": "Ваш юзер-агент",
"The information being sent to us to help make Riot better includes:": "Информация, которая отправляется нам для улучшения Riot, включает в себя:",
"There are unknown sessions in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "В комнате присутствуют неизвестные сессии: если вы продолжите без подтверждения, возможно, кто-то сможет подслушать ваш звонок.",
"Review Sessions": "Просмотреть сессии",
"Unverified login. Was this you?": "Неподтверждённый вход. Это были вы?",
"Sign In or Create Account": "Войти или создать аккаунт",
"Use your account or create a new one to continue.": "Воспользуйтесь своим аккаунтом или создайте новый, чтобы продолжить.",
"Create Account": "Создать аккаунт",
"Sends a message as html, without interpreting it as markdown": "Отправить сообщение как html, не интерпретируя его как markdown",
"Displays information about a user": "Показать информацию о пользователе",
"%(senderDisplayName)s changed the room name from %(oldRoomName)s to %(newRoomName)s.": "%(senderDisplayName)s изменил(а) название комнаты с %(oldRoomName)s на %(newRoomName)s.",
"%(senderName)s added the alternative addresses %(addresses)s for this room.|other": "%(senderName)s добавил(а) альтернативные адреса %(addresses)s для этой комнаты.",
"%(senderName)s added the alternative addresses %(addresses)s for this room.|one": "%(senderName)s добавил(а) альтернативные адреса %(addresses)s для этой комнаты.",
"%(senderName)s removed the alternative addresses %(addresses)s for this room.|other": "%(senderName)s удалил(а) альтернативные адреса %(addresses)s для этой комнаты.",
"%(senderName)s removed the alternative addresses %(addresses)s for this room.|one": "%(senderName)s удалил(а) альтернативные адреса %(addresses)s для этой комнаты.",
"%(senderName)s changed the alternative addresses for this room.": "%(senderName)s изменил(а) альтернативные адреса для этой комнаты.",
"%(senderName)s changed the main and alternative addresses for this room.": "%(senderName)s изменил(а) главный и альтернативные адреса для этой комнаты.",
"%(senderName)s changed the addresses for this room.": "%(senderName)s изменил(а) адреса для этой комнаты.",
"%(senderName)s removed the rule banning servers matching %(glob)s": "%(senderName)s удалил(а) правило блокировки серверов по шаблону %(glob)s",
"%(senderName)s removed a ban rule matching %(glob)s": "%(senderName)s удалил(а) правило блокировки по шаблону %(glob)s",
"%(senderName)s updated an invalid ban rule": "%(senderName)s обновил(а) неверное правило блокировки",
"%(senderName)s updated the rule banning users matching %(glob)s for %(reason)s": "%(senderName)s обновил(а) правило блокировки пользователей по шаблону %(glob)s за %(reason)s",
"%(senderName)s updated the rule banning rooms matching %(glob)s for %(reason)s": "%(senderName)s обновил(а) правило блокировки комнат по шаблону %(glob)s за %(reason)s",
"%(senderName)s updated the rule banning servers matching %(glob)s for %(reason)s": "%(senderName)s обновил(а) правило блокировки серверов по шаблону %(glob)s за %(reason)s",
"%(senderName)s updated a ban rule matching %(glob)s for %(reason)s": "%(senderName)s обновил(а) правило блокировки по шаблону %(glob)s за %(reason)s",
"%(senderName)s created a rule banning users matching %(glob)s for %(reason)s": "%(senderName)s создал(а) правило блокировки пользователей по шаблону %(glob)s за %(reason)s",
"%(senderName)s created a rule banning rooms matching %(glob)s for %(reason)s": "%(senderName)s создал(а) правило блокировки комнат по шаблону %(glob)s за %(reason)s",
"%(senderName)s created a rule banning servers matching %(glob)s for %(reason)s": "%(senderName)s создал(а) правило блокировки серверов по шаблону %(glob)s за %(reason)s",
"%(senderName)s created a ban rule matching %(glob)s for %(reason)s": "%(senderName)s создал(а) правило блокировки по шаблону %(glob)s за %(reason)s",
"%(senderName)s changed a rule that was banning users matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s изменил(а) правило блокировки пользователей по шаблону %(oldGlob)s на шаблон %(newGlob)s за %(reason)s",
"%(senderName)s changed a rule that was banning rooms matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s изменил(а) правило блокировки комнат по шаблону %(oldGlob)s на шаблон %(newGlob)s за %(reason)s",
"%(senderName)s changed a rule that was banning servers matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s изменил(а) правило блокировки серверов по шаблону %(oldGlob)s на шаблон %(newGlob)s за %(reason)s",
"%(senderName)s updated a ban rule that was matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s обновил(а) правило блокировки по шаблону %(oldGlob)s на шаблон %(newGlob)s за %(reason)s",
"Not Trusted": "Недоверенное",
"%(name)s (%(userId)s) signed in to a new session without verifying it:": "%(name)s (%(userId)s) начал(а) новую сессию без её подтверждения:",
"Ask this user to verify their session, or manually verify it below.": "Попросите этого пользователя подтвердить сессию или подтвердите её вручную ниже.",
"Manually Verify by Text": "Ручная проверка с помощью текста",
"Interactively verify by Emoji": "Интерактивная проверка со смайликами",
"Done": "Готово",
"The message you are trying to send is too large.": "Ваше сообщение слишком большое.",
"Support adding custom themes": "Поддержка сторонних тем",
"Order rooms by name": "Сортировать комнаты по названию",
"Show rooms with unread notifications first": "Показывать в начале комнаты с непрочитанными уведомлениями",
"Show shortcuts to recently viewed rooms above the room list": "Показывать ссылки на недавние комнаты над списком комнат",
"Manually verify all remote sessions": "Подтверждать все удалённые сессии вручную",
"Update your secure storage": "Обновите ваше безопасное хранилище",
"Your homeserver does not support cross-signing.": "Ваш домашний сервер не поддерживает кросс-подпись.",
"Cross-signing and secret storage are enabled.": "Кросс-подпись и хранилище секретов разрешены.",
"Customise your experience with experimental labs features. <a>Learn more</a>.": "Попробуйте экспериментальные возможности. <a>Подробнее</a>.",
"Cross-signing and secret storage are not yet set up.": "Кросс-подпись и хранилище секретов ещё не настроены.",
"Reset cross-signing and secret storage": "Сбросить кросс-подпись и хранилище секретов",
"Cross-signing public keys:": "Публичные ключи для кросс-подписи:",
"in memory": "в памяти",
"not found": "не найдено",
"Cross-signing private keys:": "Приватные ключи для кросс-подписи:",
"in secret storage": "в хранилище секретов",
"cached locally": "сохранено локально",
"not found locally": "не найдено локально",
"User signing private key:": "Приватный ключ подписи пользователей:",
"Session backup key:": "Резервная копия сессионного ключа:",
"Secret storage public key:": "Публичный ключ хранилища секретов:",
"in account data": "в данных аккаунта",
"Homeserver feature support:": "Возможности домашнего сервера:",
"exists": "существует",
"Secret Storage key format:": "Формат ключа хранилища секретов:",
"outdated": "устарел",
"up to date": "свежий",
"Your homeserver does not support session management.": "Ваш домашний сервер не поддерживает управление сессиями.",
"Unable to load session list": "Не удалось загрузить список сессий",
"Enable": "Разрешить",
"Connecting to integration manager...": "Подключение к менеджеру интеграций...",
"Cannot connect to integration manager": "Не удалось подключиться к менеджеру интеграций",
"The integration manager is offline or it cannot reach your homeserver.": "Менеджер интеграций не работает или не может подключиться к вашему домашнему серверу.",
"This session is backing up your keys. ": "Эта сессия сохраняет ваши ключи. ",
"This session is <b>not backing up your keys</b>, but you do have an existing backup you can restore from and add to going forward.": "Эта сессия <b>не сохраняет ваши ключи</b>, но у вас есть резервная копия, из которой вы можете их восстановить.",
"Connect this session to key backup before signing out to avoid losing any keys that may only be on this session.": "Подключите эту сессию к резервированию ключей до выхода, чтобы избежать утраты ключей, которые могут быть доступны только в этой сессии.",
"Connect this session to Key Backup": "Подключить эту сессию к резервированию ключей",
"Backup is not signed by any of your sessions": "Резервная копия не подписана ни одной из ваших сессий",
"This backup is trusted because it has been restored on this session": "Эта резервная копия является доверенной, потому что она была восстановлена в этой сессии",
"Clear notifications": "Убрать уведомления",
"Invalid theme schema.": "Неверная схема темы.",
"Error downloading theme information.": "Ошибка при загрузке информации темы.",
"Theme added!": "Тема добавлена!",
"Add theme": "Добавить тему",
"Keyboard Shortcuts": "Горячие клавиши",
"Something went wrong. Please try again or view your console for hints.": "Что-то пошло не так. Попробуйте снова или поищите подсказки в консоли.",
"Error unsubscribing from list": "Не удалось отписаться от списка",
"None": "Нет",
"Server rules": "Правила сервера",
"User rules": "Правила пользователей",
"You have not ignored anyone.": "Вы никого не игнорируете.",
"You are currently ignoring:": "Вы игнорируете:",
"You are not subscribed to any lists": "Вы не подписаны ни на один список",
"Unsubscribe": "Отписаться",
"View rules": "Посмотреть правила",
"You are currently subscribed to:": "Вы подписаны на:",
"Security": "Безопасность",
"The session you are trying to verify doesn't support scanning a QR code or emoji verification, which is what Riot supports. Try with a different client.": "Сессия, которую вы подтверждаете, не поддерживает проверку с помощью сканирования QR-кодов или смайлов, как в Riot. Попробуйте другой клиент.",
"Verify by scanning": "Подтверждение сканированием",
"Ask %(displayName)s to scan your code:": "Попросите %(displayName)s отсканировать ваш код:",
"Verify by emoji": "Подтверждение с помощью смайлов",
"If you can't scan the code above, verify by comparing unique emoji.": "Если вы не можете отсканировать код выше, попробуйте сравнить уникальные смайлы.",
"Verify by comparing unique emoji.": "Подтверждение сравнением уникальных смайлов.",
"Verify all users in a room to ensure it's secure.": "Подтвердите всех пользователей в комнате, чтобы обеспечить безопасность.",
"In encrypted rooms, verify all users to ensure its secure.": "В зашифрованных комнатах проверьте всех пользователей, чтобы обеспечить безопасность.",
"Verified": "Подтверждено",
"You've successfully verified %(displayName)s!": "Вы успешно подтвердили %(displayName)s!",
"Got it": "Понятно",
"Compare emoji": "Сравните смайлы",
"Activate selected button": "Активировать выбранную кнопку",
"Toggle right panel": "Переключить правую панель",
"Toggle this dialog": "Переключить этот диалог",
"Cancel autocomplete": "Отменить автодополнение",
"Esc": "",
"Enter": "Enter",
"Delete %(count)s sessions|one": "Удалить %(count)s сессий"
}

View file

@ -2280,5 +2280,61 @@
"Toggle video on/off": "Aktivizoni/çaktivizoni videon",
"Previous/next unread room or DM": "Dhoma ose MD i palexuar i mëparshëm/pasues",
"Previous/next room or DM": "Dhoma ose MD i mëparshëm/pasues",
"Toggle right panel": "Hap/mbyll panelin djathtas"
"Toggle right panel": "Hap/mbyll panelin djathtas",
"Unverified login. Was this you?": "Hyrje e paverifikuar. A qetë ju?",
"Manually verify all remote sessions": "Verifikoni dorazi krejt sesionet e largët",
"Update your secure storage": "Përditësoni depozitën tuaj të sigurt",
"Self signing private key:": "Kyç privat vetënënshkrimi:",
"cached locally": "ruajtur në fshehtinë lokalisht",
"not found locally": "i pagjetur lokalisht",
"User signing private key:": "Kyç privat nënshkrimesh përdoruesi:",
"Individually verify each session used by a user to mark it as trusted, not trusting cross-signed devices.": "Verifikoni individualisht çdo sesion të përdorur nga një përdorues, për ti vënë shenjë si i besuar, duke mos besuar pajisje <em>cross-signed</em>.",
"In encrypted rooms, your messages are secured and only you and the recipient have the unique keys to unlock them.": "Në dhoma të fshehtëzuara, mesazhet tuaj sigurohen dhe vetëm ju dhe marrësi ka kyçet unikë për shkyçjen e tyre.",
"Verify all users in a room to ensure it's secure.": "Verifiko krejt përdoruesit në dhomë, për të garantuar se është e sigurt.",
"In encrypted rooms, verify all users to ensure its secure.": "Në dhoma të fshehtëzuara, verifikoni krejt përdoruesi për të garantuar se është e sigurt.",
"Verified": "I verifikuar",
"Verification cancelled": "Verifikimi u anulua",
"Compare emoji": "Krahasoni emoji",
"Session backup key:": "Kyç kopjeruajtjeje sesioni:",
"Use Single Sign On to continue": "Që të vazhdohet, përdorni Hyrje Njëshe",
"Confirm adding this email address by using Single Sign On to prove your identity.": "Ripohoni shtimin e kësaj adrese email duke përdorur Hyrje Njëshe për të provuar identitetin tuaj.",
"Single Sign On": "Hyrje Njëshe",
"Confirm adding email": "Ripohoni shtim email-i",
"Click the button below to confirm adding this email address.": "Klikoni butonin më poshtë që të ripohoni shtimin e kësaj adrese email.",
"Confirm adding this phone number by using Single Sign On to prove your identity.": "Ripohojeni shtimin e këtij numri telefoni duke përdorur Hyrje Njëshe që të provoni identitetin tuaj.",
"Confirm adding phone number": "Ripohoni shtim numri telefoni",
"Click the button below to confirm adding this phone number.": "Klikoni mbi butonin më poshtë që të ripohoni shtimin e këtij numri telefoni.",
"Sends a message as html, without interpreting it as markdown": "E dërgon një mesazh si html, pa e interpretuar si markdown",
"Confirm the emoji below are displayed on both sessions, in the same order:": "Ripohoni se emoxhit më poshtë shfaqen në të dy sesionet, nën të njëjtën radhë:",
"Verify this session by confirming the following number appears on its screen.": "Verifikojeni këtë sesion duke ripohuar se numri vijues shfaqet në ekranin e sesionit.",
"Waiting for your other session, %(deviceName)s (%(deviceId)s), to verify…": "Po pritet që të verifikohet sesioni juaj tjetër, %(deviceName)s (%(deviceId)s)…",
"From %(deviceName)s (%(deviceId)s)": "Nga %(deviceName)s (%(deviceId)s)",
"Confirm deleting these sessions by using Single Sign On to prove your identity.": "Ripohoni fshirjen e këtyre sesioneve duke përdorur Hyrje Njëshe për të dëshmuar identitetin tuaj.",
"Confirm deleting these sessions": "Ripohoni fshirjen e këtyre sesioneve",
"Click the button below to confirm deleting these sessions.": "Që të ripohoni fshirjen e këtyre sesioneve, klikoni mbi butonin më poshtë.",
"Delete sessions": "Fshini sesione",
"Waiting for you to accept on your other session…": "Po pritet që të pranoni në sesionin tuaj tjetër…",
"Almost there! Is your other session showing the same shield?": "Thuajse mbërritëm! A shfaq sesioni juaj tjetër të njëjtën mburojë?",
"Almost there! Is %(displayName)s showing the same shield?": "Thuaje mbërritëm! A shfaq %(displayName)s të njëjtën mburojë?",
"You've successfully verified %(deviceName)s (%(deviceId)s)!": "Keni verifikuar me sukses %(deviceName)s (%(deviceId)s)!",
"Start verification again from the notification.": "Rifillo verifikimin prej njoftimit.",
"Start verification again from their profile.": "Rifillo verifikimin prej profilit të tyre.",
"Verification timed out.": "Verifikimit i mbaroi koha.",
"You cancelled verification on your other session.": "Anuluat verifikimin në sesionin tuaj tjetër.",
"%(displayName)s cancelled verification.": "%(displayName)s anuloi verifikimin.",
"You cancelled verification.": "Anuluat verifikimin.",
"Sign in with SSO": "Hyni me HNj",
"Self-verification request": "Kërkesë vetë-verifikimi",
"Cancel replying to a message": "Anulo përgjigjen te një mesazh",
"%(name)s is requesting verification": "%(name)s po kërkon verifikim",
"unexpected type": "lloj i papritur",
"Confirm deleting these sessions by using Single Sign On to prove your identity.|other": "Ripohoni fshirjen e këtyre sesioneve duke përdorur Hyrje Njëshe për të dëshmuar identitetin tuaj.",
"Confirm deleting these sessions by using Single Sign On to prove your identity.|one": "Ripohoni fshirjen e këtij sesioni duke përdorur Hyrje Njëshe për të dëshmuar identitetin tuaj.",
"Click the button below to confirm deleting these sessions.|other": "Klikoni butonin më poshtë që të ripohoni fshirjen e këtyre sesioneve.",
"Click the button below to confirm deleting these sessions.|one": "Klikoni mbi butonin më poshtë që të ripohoni fshirjen e këtij sesioni.",
"Welcome to %(appName)s": "Mirë se vini te %(appName)s",
"Liberate your communication": "Çlironi komunikimin tuaj",
"Send a Direct Message": "Dërgoni Mesazh të Drejtpërdrejtë",
"Explore Public Rooms": "Eksploroni Dhoma Publike",
"Create a Group Chat": "Krijoni një Fjalosje Grupi"
}

View file

@ -953,7 +953,7 @@
"You are an administrator of this community. You will not be able to rejoin without an invite from another administrator.": "Du är administratör för denna community. Du kommer inte kunna gå med igen utan en inbjudan från en annan administratör.",
"The file '%(fileName)s' exceeds this homeserver's size limit for uploads": "Filen '%(fileName)s' överstiger denna hemserverns storleksgräns för uppladdningar",
"Unable to load! Check your network connectivity and try again.": "Kan inte ladda! Kolla din nätverksuppkoppling och försök igen.",
"Whether or not you're logged in (we don't record your username)": "Huruvida du är inloggad (vi sparar inte ditt användarnamn)",
"Whether or not you're logged in (we don't record your username)": "Om du är inloggad eller inte (vi sparar inte ditt användarnamn)",
"Failed to invite users to the room:": "Kunde inte bjuda in användare till rummet:",
"Upgrades a room to a new version": "Uppgraderar ett num till en ny version",
"Gets or sets the room topic": "Ger eller sätter ämnet för ett rum",
@ -1349,8 +1349,8 @@
"If you don't want to use <server /> to discover and be discoverable by existing contacts you know, enter another identity server below.": "Om du inte vill använda <server /> för att upptäcka och upptäckas av befintliga kontakter som du känner, ange en annan identitetsserver nedan.",
"Identity Server": "Identitetsserver",
"You are not currently using an identity server. To discover and be discoverable by existing contacts you know, add one below.": "Du använder för närvarande inte en identitetsserver. Lägg till en nedan om du vill upptäcka och bli upptäckbar av befintliga kontakter som du känner.",
"Disconnecting from your identity server will mean you won't be discoverable by other users and you won't be able to invite others by email or phone.": "Att koppla från din identitetsserver betyder att du inte kan upptäckas av andra användare och att du inte kommer att kunna bjuda in andra via e-post eller telefon.",
"Using an identity server is optional. If you choose not to use an identity server, you won't be discoverable by other users and you won't be able to invite others by email or phone.": "Att använda en identitetsserver är valfritt. Om du väljer att inte använda en identitetsserver kan du inte upptäckas av andra användare och inte heller bjuda in andra via e-post eller telefon.",
"Disconnecting from your identity server will mean you won't be discoverable by other users and you won't be able to invite others by email or phone.": "Att koppla från din identitetsserver betyder att du inte kan upptäckas av andra användare och att du inte kommer att kunna bjuda in andra via epost eller telefon.",
"Using an identity server is optional. If you choose not to use an identity server, you won't be discoverable by other users and you won't be able to invite others by email or phone.": "Att använda en identitetsserver är valfritt. Om du väljer att inte använda en identitetsserver kan du inte upptäckas av andra användare och inte heller bjuda in andra via epost eller telefon.",
"Do not use an identity server": "Använd inte en identitetsserver",
"Enter a new identity server": "Ange en ny identitetsserver",
"Integration Manager": "Integrationshanterare",
@ -1541,10 +1541,94 @@
"Preview": "Förhandsvisa",
"The message you are trying to send is too large.": "Meddelandet du försöker skicka är för stort.",
"Find others by phone or email": "Hitta andra via telefon eller epost",
"Be found by phone or email": "Bli hittad via telefon eller e-post",
"Be found by phone or email": "Bli hittad via telefon eller epost",
"Terms of Service": "Användarvillkor",
"To continue you need to accept the terms of this service.": "För att fortsätta måste du acceptera villkoren för denna tjänst.",
"Service": "Tjänst",
"Summary": "Sammanfattning",
"Document": "Dokument"
"Document": "Dokument",
"The version of Riot": "Version av Riot",
"Whether you're using Riot on a device where touch is the primary input mechanism": "Om du använder Riot på en enhet där pekskärm är den primära inmatningsmekanismen",
"Whether you're using Riot as an installed Progressive Web App": "Om du använder Riot som en installerad progressiv webbapp",
"Your user agent": "Din användaragent",
"The information being sent to us to help make Riot better includes:": "Informationen som skickas till oss för att förbättra Riot inkluderar:",
"There are unknown sessions in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "Det finns okända sessioner i det här rummet: om du fortsätter utan att verifiera dem kommer det att vara möjligt för någon att lyssna på ditt samtal.",
"Review Sessions": "Granska sessioner",
"If you cancel now, you won't complete verifying the other user.": "Om du avbryter nu kommer du inte att verifiera den andra användaren.",
"If you cancel now, you won't complete verifying your other session.": "Om du avbryter nu kommer du inte att verifiera din andra session.",
"If you cancel now, you won't complete your secret storage operation.": "Om du avbryter nu slutför du inte din operation för hemlig lagring.",
"Cancel entering passphrase?": "Avbryta att ange lösenfras?",
"Setting up keys": "Sätter upp nycklar",
"Verify this session": "Verifiera denna session",
"Encryption upgrade available": "Krypteringsuppgradering tillgänglig",
"Set up encryption": "Ställ in kryptering",
"Unverified session": "Overifierad session",
"Sign In or Create Account": "Logga in eller skapa konto",
"Use your account or create a new one to continue.": "Använd ditt konto eller skapa ett nytt för att fortsätta.",
"Create Account": "Skapa konto",
"Verifies a user, session, and pubkey tuple": "Verifierar en användar-, session- och pubkey-tupel",
"Unknown (user, session) pair:": "Okänt par (användare, session):",
"Session already verified!": "Sessionen är redan verifierad!",
"WARNING: Session already verified, but keys do NOT MATCH!": "VARNING: Sessionen har redan verifierats, men nycklarna MATCHAR INTE!",
"Unable to revoke sharing for email address": "Det gick inte att återkalla delning för e-postadress",
"Unable to share email address": "Det gick inte att dela e-postadress",
"Your email address hasn't been verified yet": "Din e-postadress har inte verifierats än",
"Click the link in the email you received to verify and then click continue again.": "Klicka på länken i e-postmeddelandet för att bekräfta och klicka sedan på Fortsätt igen.",
"Verify the link in your inbox": "Verifiera länken i din inkorg",
"Complete": "Färdigställ",
"Unable to revoke sharing for phone number": "Det gick inte att återkalla delning för telefonnummer",
"Unable to share phone number": "Det gick inte att dela telefonnummer",
"Please enter verification code sent via text.": "Ange verifieringskod skickad via textmeddelande.",
"Discovery options will appear once you have added a phone number above.": "Upptäcktsalternativ visas när du har lagt till ett telefonnummer ovan.",
"Verify session": "Verifiera sessionen",
"Use Legacy Verification (for older clients)": "Använd gammal verifiering (för äldre klienter)",
"Verify by comparing a short text string.": "Verifiera genom att jämföra en kort textsträng.",
"Begin Verifying": "Börja verifiera",
"Waiting for partner to accept...": "Väntar på partner att acceptera...",
"Nothing appearing? Not all clients support interactive verification yet. <button>Use legacy verification</button>.": "Dyker inget upp? Alla klienter stöder inte interaktiv verifiering ännu. <button>Använd äldre verifiering</button>.",
"Waiting for %(userId)s to confirm...": "Väntar på att %(userId)s ska bekräfta...",
"To verify that this session can be trusted, please check that the key you see in User Settings on that device matches the key below:": "För att verifiera att den här sessionen är betrodd, kontrollera att nyckeln du ser i Användarinställningar på den enheten stämmer med nyckeln nedan:",
"To verify that this session 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 session matches the key below:": "För att verifiera att den här sessionen är betrodd, vänligen kontakta dess ägare på annat sätt (t.ex. personligen eller via ett telefonsamtal) och fråga om nyckeln i deras användarinställningar för denna session stämmer med nyckeln nedan:",
"Use two-way text verification": "Använd tvåvägs textverifiering",
"Session name": "Sessionsnamn",
"Session key": "Sessionsnyckel",
"If it matches, press the verify button below. If it doesn't, then someone else is intercepting this session and you probably want to press the blacklist button instead.": "Om det matchar, tryck på verifieringsknappen nedan. Om det inte gör det, avlyssnar någon annan den här sessionen och du vill förmodligen trycka på svartlistaknappen istället.",
"Automatically invite users": "Bjud in användare automatiskt",
"Upgrade private room": "Uppgradera privat rum",
"Upgrade public room": "Uppgradera publikt rum",
"Upgrading a room is an advanced action and is usually recommended when a room is unstable due to bugs, missing features or security vulnerabilities.": "Att uppgradera ett rum är en avancerad åtgärd och rekommenderas vanligtvis när ett rum är instabilt på grund av buggar, saknade funktioner eller säkerhetsproblem.",
"This usually only affects how the room is processed on the server. If you're having problems with your Riot, please <a>report a bug</a>.": "Detta påverkar vanligtvis bara hur rummet bearbetas på servern. Om du har problem med Riot, <a>rapportera ett fel</a>.",
"You'll upgrade this room from <oldVersion /> to <newVersion />.": "Du kommer att uppgradera detta rum från <oldVersion /> till <newVersion />.",
"This will allow you to return to your account after signing out, and sign in on other sessions.": "Detta gör att du kan återgå till ditt konto efter att du har loggat ut, och logga in på andra sessioner.",
"Help": "Hjälp",
"Reload": "Ladda om",
"Take picture": "Ta bild",
"Remove for everyone": "Ta bort för alla",
"Remove for me": "Ta bort för mig",
"User Status": "Användarstatus",
"Confirm your identity by entering your account password below.": "Bekräfta din identitet genom att ange ditt kontolösenord nedan.",
"Space used:": "Använt utrymme:",
"Indexed messages:": "Indexerade meddelanden:",
"Indexed rooms:": "Indexerade rum:",
"%(doneRooms)s out of %(totalRooms)s": "%(doneRooms)s av %(totalRooms)s",
"Navigation": "Navigering",
"Calls": "Samtal",
"Room List": "Rumslista",
"Autocomplete": "Komplettera automatiskt",
"Alt": "Alt",
"Alt Gr": "Alt Gr",
"Shift": "Shift",
"Super": "Super",
"Ctrl": "Ctrl",
"Toggle Bold": "Växla fet stil",
"Toggle Italics": "Växla kursiv",
"Toggle Quote": "Växla citat",
"New line": "Ny rad",
"Jump to room search": "Hoppa till rumssökning",
"Page Up": "Page Up",
"Page Down": "Page Down",
"Esc": "Esc",
"Enter": "Enter",
"Space": "Space",
"End": "End"
}

View file

@ -2294,5 +2294,55 @@
"Self signing private key:": "自行簽章私鑰:",
"cached locally": "本機快取",
"not found locally": "在本機找不到",
"User signing private key:": "使用者簽章私鑰:"
"User signing private key:": "使用者簽章私鑰:",
"Unverified login. Was this you?": "未驗證的登入。是您嗎?",
"Manually verify all remote sessions": "手動驗證所有遠端工作階段",
"Update your secure storage": "更新您的安全儲存空間",
"Individually verify each session used by a user to mark it as trusted, not trusting cross-signed devices.": "單獨驗證使用者使用的每個工作階段以將其標記為受信任,而非信任交叉簽章的裝置。",
"In encrypted rooms, your messages are secured and only you and the recipient have the unique keys to unlock them.": "在已加密的聊天室中,您的訊息相當安全,只有您與接收者有獨一無二的金鑰可以將其解鎖。",
"Verify all users in a room to ensure it's secure.": "驗證所有在聊天室中的使用者以確保其安全。",
"In encrypted rooms, verify all users to ensure its secure.": "在已加密的聊天室中,驗證所有使用者以確保其安全。",
"Verified": "已驗證",
"Verification cancelled": "驗證已取消",
"Compare emoji": "比較顏文字",
"Session backup key:": "工作階段備份金鑰:",
"Sends a message as html, without interpreting it as markdown": "以 html 形式傳送訊息,不將其翻譯為 markdown",
"Cancel replying to a message": "取消回覆訊息",
"Sign in with SSO": "使用單一登入系統登入",
"Use Single Sign On to continue": "使用單一登入繼續",
"Confirm adding this email address by using Single Sign On to prove your identity.": "透過使用單一登入來證明您的身份以確認新增此電子郵件地址。",
"Single Sign On": "單一登入",
"Confirm adding email": "確任新增電子郵件",
"Click the button below to confirm adding this email address.": "點擊下方按鈕以確認新增此電子郵件地址。",
"Confirm adding this phone number by using Single Sign On to prove your identity.": "透過使用單一登入來證明您的身份以確認新增此電話號碼。",
"Confirm adding phone number": "確任新增電話號碼",
"Click the button below to confirm adding this phone number.": "點擊下方按鈕以確認新增此電話號碼。",
"Confirm deleting these sessions by using Single Sign On to prove your identity.": "透過使用單一登入來證明您的身份以確認刪除這些工作階段。",
"Confirm deleting these sessions": "確認刪除這些工作階段",
"Click the button below to confirm deleting these sessions.": "點擊下方按鈕以確認刪除這些工作階段。",
"Delete sessions": "刪除工作階段",
"Confirm the emoji below are displayed on both sessions, in the same order:": "確認以下的顏文字以相同的順序顯示在兩個工作階段中:",
"Verify this session by confirming the following number appears on its screen.": "透過確認螢幕上顯示以下的數字來確認此工作階段。",
"Waiting for your other session, %(deviceName)s (%(deviceId)s), to verify…": "正在等待您的其他工作階段,%(deviceName)s (%(deviceId)s),進行驗證……",
"From %(deviceName)s (%(deviceId)s)": "從 %(deviceName)s (%(deviceId)s)",
"Waiting for you to accept on your other session…": "正在等待您接受其他工作階段……",
"Almost there! Is your other session showing the same shield?": "差不多了!您的其他工作階段是否顯示相同的盾牌?",
"Almost there! Is %(displayName)s showing the same shield?": "差不多了!%(displayName)s 是否顯示相同的盾牌?",
"You've successfully verified %(deviceName)s (%(deviceId)s)!": "您已成功驗證了 %(deviceName)s (%(deviceId)s)!",
"Start verification again from the notification.": "從通知再次開始驗證。",
"Start verification again from their profile.": "從他們的個人簡介再次開始驗證。",
"Verification timed out.": "驗證逾時。",
"You cancelled verification on your other session.": "您已在其他工作階段取消驗證。",
"%(displayName)s cancelled verification.": "%(displayName)s 取消驗證。",
"You cancelled verification.": "您取消了驗證。",
"Self-verification request": "自我驗證請求",
"Confirm deleting these sessions by using Single Sign On to prove your identity.|other": "透過使用單一登入系統來證明您的身份以確認刪除這些工作階段。",
"Confirm deleting these sessions by using Single Sign On to prove your identity.|one": "透過使用單一登入系統來證明您的身份以確認刪除此工作階段。",
"Click the button below to confirm deleting these sessions.|other": "點擊下方按鈕以確認刪除這些工作階段。",
"Click the button below to confirm deleting these sessions.|one": "點擊下方按鈕以確認刪除此工作階段。",
"Welcome to %(appName)s": "歡迎使用 %(appName)s",
"Liberate your communication": "讓您的通訊自由",
"Send a Direct Message": "傳送直接訊息",
"Explore Public Rooms": "探索公開聊天室",
"Create a Group Chat": "建立群組聊天"
}

View file

@ -530,6 +530,10 @@ export default class EventIndex extends EventEmitter {
"added, stopping the crawl", checkpoint);
await indexManager.removeCrawlerCheckpoint(newCheckpoint);
} else {
if (eventsAlreadyAdded === true) {
console.log("EventIndex: Checkpoint had already all events",
"added, but continuing due to a full crawl", checkpoint);
}
this.crawlerCheckpoints.push(newCheckpoint);
}
} catch (e) {

View file

@ -140,5 +140,7 @@ export class SetupEncryptionStore extends EventEmitter {
done() {
this.phase = PHASE_FINISHED;
this.emit("update");
// async - ask other clients for keys, if necessary
MatrixClientPeg.get()._crypto.cancelAndResendAllOutgoingKeyRequests();
}
}

View file

@ -31,13 +31,13 @@ export function isContentActionable(mxEvent) {
// status is SENT before remote-echo, null after
const isSent = !eventStatus || eventStatus === EventStatus.SENT;
if (isSent && mxEvent.getType() === 'm.room.message') {
if (isSent) {
if (mxEvent.getType() === 'm.room.message') {
const content = mxEvent.getContent();
if (
content.msgtype &&
content.msgtype !== 'm.bad.encrypted' &&
content.hasOwnProperty('body')
) {
if (content.msgtype && content.msgtype !== 'm.bad.encrypted' && content.hasOwnProperty('body')) {
return true;
}
} else if (mxEvent.getType() === 'm.sticker') {
return true;
}
}

73
src/widgets/Jitsi.ts Normal file
View file

@ -0,0 +1,73 @@
/*
Copyright 2020 The Matrix.org Foundation C.I.C.
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 SdkConfig from "../SdkConfig";
import {MatrixClientPeg} from "../MatrixClientPeg";
import {AutoDiscovery} from "matrix-js-sdk/src/autodiscovery";
const JITSI_WK_PROPERTY = "im.vector.riot.jitsi";
const JITSI_WK_CHECK_INTERVAL = 2 * 60 * 60 * 1000; // 2 hours, arbitrarily selected
export class Jitsi {
private static instance: Jitsi;
private domain: string;
public get preferredDomain(): string {
return this.domain || 'jitsi.riot.im';
}
constructor() {
// We rely on the first call to be an .update() instead of doing one here. Doing one
// here could result in duplicate calls to the homeserver.
// Start a timer to update the server info regularly
setInterval(() => this.update(), JITSI_WK_CHECK_INTERVAL);
}
public async update(): Promise<any> {
// Start with a default of the config's domain
let domain = (SdkConfig.get()['jitsi'] || {})['preferredDomain'] || 'jitsi.riot.im';
// Now request the .well-known config to see if it changed
if (MatrixClientPeg.get()) {
try {
console.log("Attempting to get Jitsi conference information from homeserver");
const homeserverDomain = MatrixClientPeg.getHomeserverName();
const discoveryResponse = await AutoDiscovery.getRawClientConfig(homeserverDomain);
if (discoveryResponse && discoveryResponse[JITSI_WK_PROPERTY]) {
const wkPreferredDomain = discoveryResponse[JITSI_WK_PROPERTY]['preferredDomain'];
if (wkPreferredDomain) domain = wkPreferredDomain;
}
} catch (e) {
// These are non-fatal errors
console.error(e);
}
}
// Put the result into memory for us to use later
this.domain = domain;
console.log("Jitsi conference domain:", this.preferredDomain);
}
public static getInstance(): Jitsi {
if (!Jitsi.instance) {
Jitsi.instance = new Jitsi();
}
return Jitsi.instance;
}
}

1421
yarn.lock

File diff suppressed because it is too large Load diff