Merge branch 'develop' into travis/alone_warning

This commit is contained in:
Matthew Hodgson 2017-10-14 22:43:36 +01:00 committed by GitHub
commit 9f64261707
31 changed files with 1475 additions and 457 deletions

View file

@ -76,6 +76,13 @@ function _onGroupInviteFinished(groupId, addrs) {
title: _t("Failed to invite the following users to %(groupId)s:", {groupId: groupId}),
description: errorList.join(", "),
});
} else {
const QuestionDialog = sdk.getComponent("dialogs.QuestionDialog");
Modal.createTrackedDialog('Group invitations sent', '', QuestionDialog, {
title: _t("Invites sent"),
description: _t("Your group invitations have been sent."),
hasCancelButton: false,
});
}
}).catch((err) => {
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");

View file

@ -385,10 +385,9 @@ class TextHighlighter extends BaseHighlighter {
* highlights: optional list of words to highlight, ordered by longest word first
*
* opts.highlightLink: optional href to add to highlighted words
* opts.disableBigEmoji: optional argument to disable the big emoji class.
*/
export function bodyToHtml(content, highlights, opts) {
opts = opts || {};
export function bodyToHtml(content, highlights, opts={}) {
const isHtml = (content.format === "org.matrix.custom.html");
const body = isHtml ? content.formatted_body : escape(content.body);
@ -418,7 +417,7 @@ export function bodyToHtml(content, highlights, opts) {
}
let emojiBody = false;
if (bodyHasEmoji) {
if (!opts.disableBigEmoji && bodyHasEmoji) {
EMOJI_REGEX.lastIndex = 0;
const contentBodyTrimmed = content.body !== undefined ? content.body.trim() : '';
const match = EMOJI_REGEX.exec(contentBodyTrimmed);

View file

@ -1,5 +1,6 @@
/*
Copyright 2015, 2016 OpenMarket Ltd
Copyright 2017 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -17,33 +18,51 @@ limitations under the License.
import Promise from 'bluebird';
import MatrixClientPeg from './MatrixClientPeg';
import Notifier from './Notifier';
import { _t } from './languageHandler';
import { _t, _td } from './languageHandler';
import SdkConfig from './SdkConfig';
/*
* TODO: Make things use this. This is all WIP - see UserSettings.js for usage.
*/
const FEATURES = [
{
id: 'feature_groups',
name: _td("Groups"),
},
];
export default {
LABS_FEATURES: [
{
name: "-",
id: 'matrix_apps',
default: true,
getLabsFeatures() {
const featuresConfig = SdkConfig.get()['features'] || {};
// XXX: Always use default, ignore localStorage and remove from labs
override: true,
},
{
name: "-",
id: 'feature_groups',
default: false,
},
],
// The old flag: honourned for backwards compat
const enableLabs = SdkConfig.get()['enableLabs'];
// horrible but it works. The locality makes this somewhat more palatable.
doTranslations: function() {
this.LABS_FEATURES[0].name = _t("Matrix Apps");
this.LABS_FEATURES[1].name = _t("Groups");
let labsFeatures;
if (enableLabs) {
labsFeatures = FEATURES;
} else {
labsFeatures = FEATURES.filter((f) => {
const sdkConfigValue = featuresConfig[f.id];
if (sdkConfigValue === 'labs') {
return true;
}
});
}
return labsFeatures.map((f) => {
return f.id;
});
},
translatedNameForFeature(featureId) {
const feature = FEATURES.filter((f) => {
return f.id === featureId;
})[0];
if (feature === undefined) return null;
return _t(feature.name);
},
loadProfileInfo: function() {
@ -180,33 +199,33 @@ export default {
localStorage.setItem('mx_local_settings', JSON.stringify(settings));
},
getFeatureById(feature: string) {
for (let i = 0; i < this.LABS_FEATURES.length; i++) {
const f = this.LABS_FEATURES[i];
if (f.id === feature) {
return f;
}
}
return null;
},
isFeatureEnabled: function(featureId: string): boolean {
// Disable labs for guests.
if (MatrixClientPeg.get().isGuest()) return false;
const featuresConfig = SdkConfig.get()['features'];
const feature = this.getFeatureById(featureId);
if (!feature) {
console.warn(`Unknown feature "${featureId}"`);
// The old flag: honourned for backwards compat
const enableLabs = SdkConfig.get()['enableLabs'];
let sdkConfigValue = enableLabs ? 'labs' : 'disable';
if (featuresConfig && featuresConfig[featureId] !== undefined) {
sdkConfigValue = featuresConfig[featureId];
}
if (sdkConfigValue === 'enable') {
return true;
} else if (sdkConfigValue === 'disable') {
return false;
} else if (sdkConfigValue === 'labs') {
if (!MatrixClientPeg.get().isGuest()) {
// Make it explicit that guests get the defaults (although they shouldn't
// have been able to ever toggle the flags anyway)
const userValue = localStorage.getItem(`mx_labs_feature_${featureId}`);
return userValue === 'true';
}
return false;
} else {
console.warn(`Unknown features config for ${featureId}: ${sdkConfigValue}`);
return false;
}
// Return the default if this feature has an override to be the default value or
// if the feature has never been toggled and is therefore not in localStorage
if (Object.keys(feature).includes('override') ||
localStorage.getItem(`mx_labs_feature_${featureId}`) === null
) {
return feature.default;
}
return localStorage.getItem(`mx_labs_feature_${featureId}`) === 'true';
},
setFeatureEnabled: function(featureId: string, enabled: boolean) {

View file

@ -1,6 +1,7 @@
/*
Copyright 2015, 2016 OpenMarket Ltd
Copyright 2017 Vector Creations Ltd
Copyright 2017 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -250,7 +251,6 @@ export default React.createClass({
page_element = <UserSettings
onClose={this.props.onUserSettingsClose}
brand={this.props.config.brand}
enableLabs={this.props.config.enableLabs}
referralBaseUrl={this.props.config.referralBaseUrl}
teamToken={this.props.teamToken}
/>;

View file

@ -118,6 +118,7 @@ module.exports = React.createClass({
canPeek: false,
showApps: false,
isAlone: false,
isPeeking: false,
// error object, as from the matrix client/server API
// If we failed to load information about the room,
@ -267,6 +268,7 @@ module.exports = React.createClass({
console.log("Attempting to peek into room %s", roomId);
this.setState({
peekLoading: true,
isPeeking: true, // this will change to false if peeking fails
});
MatrixClientPeg.get().peekInRoom(roomId).then((room) => {
this.setState({
@ -275,6 +277,11 @@ module.exports = React.createClass({
});
this._onRoomLoaded(room);
}, (err) => {
// Stop peeking if anything went wrong
this.setState({
isPeeking: false,
});
// This won't necessarily be a MatrixError, but we duck-type
// here and say if it's got an 'errcode' key with the right value,
// it means we can't peek.
@ -291,6 +298,7 @@ module.exports = React.createClass({
} else if (room) {
// Stop peeking because we have joined this room previously
MatrixClientPeg.get().stopPeeking();
this.setState({isPeeking: false});
}
},
@ -1764,8 +1772,8 @@ module.exports = React.createClass({
<TimelinePanel ref={this._gatherTimelinePanelRef}
timelineSet={this.state.room.getUnfilteredTimelineSet()}
showReadReceipts={!UserSettingsStore.getSyncedSetting('hideReadReceipts', false)}
manageReadReceipts={true}
manageReadMarkers={true}
manageReadReceipts={!this.state.isPeeking}
manageReadMarkers={!this.state.isPeeking}
hidden={hideMessagePanel}
highlightedEventId={highlightedEventId}
eventId={this.state.initialEventId}

View file

@ -1,6 +1,7 @@
/*
Copyright 2015, 2016 OpenMarket Ltd
Copyright 2017 Vector Creations Ltd
Copyright 2017 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -113,6 +114,10 @@ const SETTINGS_LABELS = [
id: 'Pill.shouldHidePillAvatar',
label: _td('Hide avatars in user and room mentions'),
},
{
id: 'TextualBody.disableBigEmoji',
label: _td('Disable big emoji in chat'),
},
/*
{
id: 'useFixedWidthFont',
@ -212,9 +217,6 @@ module.exports = React.createClass({
// The brand string given when creating email pushers
brand: React.PropTypes.string,
// True to show the 'labs' section of experimental features
enableLabs: React.PropTypes.bool,
// The base URL to use in the referral link. Defaults to window.location.origin.
referralBaseUrl: React.PropTypes.string,
@ -226,7 +228,6 @@ module.exports = React.createClass({
getDefaultProps: function() {
return {
onClose: function() {},
enableLabs: true,
};
},
@ -426,6 +427,11 @@ module.exports = React.createClass({
});
},
onAvatarRemoveClick: function() {
MatrixClientPeg.get().setAvatarUrl(null);
this.setState({avatarUrl: null}); // the avatar update will complete async for us
},
onLogoutClicked: function(ev) {
const QuestionDialog = sdk.getComponent("dialogs.QuestionDialog");
Modal.createTrackedDialog('Logout E2E Export', '', QuestionDialog, {
@ -923,34 +929,25 @@ module.exports = React.createClass({
},
_renderLabs: function() {
// default to enabled if undefined
if (this.props.enableLabs === false) return null;
UserSettingsStore.doTranslations();
const features = [];
UserSettingsStore.LABS_FEATURES.forEach((feature) => {
// This feature has an override and will be set to the default, so do not
// show it here.
if (feature.override) {
return;
}
UserSettingsStore.getLabsFeatures().forEach((featureId) => {
// TODO: this ought to be a separate component so that we don't need
// to rebind the onChange each time we render
const onChange = (e) => {
UserSettingsStore.setFeatureEnabled(feature.id, e.target.checked);
UserSettingsStore.setFeatureEnabled(featureId, e.target.checked);
this.forceUpdate();
};
features.push(
<div key={feature.id} className="mx_UserSettings_toggle">
<div key={featureId} className="mx_UserSettings_toggle">
<input
type="checkbox"
id={feature.id}
name={feature.id}
defaultChecked={UserSettingsStore.isFeatureEnabled(feature.id)}
id={featureId}
name={featureId}
defaultChecked={UserSettingsStore.isFeatureEnabled(featureId)}
onChange={onChange}
/>
<label htmlFor={feature.id}>{ feature.name }</label>
<label htmlFor={featureId}>{ UserSettingsStore.translatedNameForFeature(featureId) }</label>
</div>);
});
@ -1330,7 +1327,11 @@ module.exports = React.createClass({
</div>
<div className="mx_UserSettings_avatarPicker">
<div onClick={this.onAvatarPickerClick}>
<div className="mx_UserSettings_avatarPicker_remove" onClick={this.onAvatarRemoveClick}>
<img src="img/cancel.svg" width="15" height="15"
alt={_t("Remove avatar")} title={_t("Remove avatar")} />
</div>
<div onClick={this.onAvatarPickerClick} className="mx_UserSettings_avatarPicker_imgContainer">
<ChangeAvatar ref="changeAvatar" initialAvatarUrl={avatarUrl}
showUploadSection={false} className="mx_UserSettings_avatarPicker_img" />
</div>

View file

@ -354,7 +354,9 @@ module.exports = React.createClass({
const mxEvent = this.props.mxEvent;
const content = mxEvent.getContent();
let body = HtmlUtils.bodyToHtml(content, this.props.highlights, {});
let body = HtmlUtils.bodyToHtml(content, this.props.highlights, {
disableBigEmoji: UserSettingsStore.getSyncedSetting('TextualBody.disableBigEmoji', false),
});
if (this.props.highlightLink) {
body = <a href={this.props.highlightLink}>{ body }</a>;

View file

@ -233,7 +233,7 @@ export default class Autocomplete extends React.Component {
const componentPosition = position;
position++;
const onMouseOver = () => this.setSelection(componentPosition);
const onMouseMove = () => this.setSelection(componentPosition);
const onClick = () => {
this.setSelection(componentPosition);
this.onCompletionClicked();
@ -243,7 +243,7 @@ export default class Autocomplete extends React.Component {
key: i,
ref: `completion${position - 1}`,
className,
onMouseOver,
onMouseMove,
onClick,
});
});

View file

@ -1,5 +1,6 @@
/*
Copyright 2015, 2016 OpenMarket Ltd
Copyright 2017 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -128,15 +129,12 @@ module.exports = React.createClass({
/>
);
let appsDrawer = null;
if(UserSettingsStore.isFeatureEnabled('matrix_apps')) {
appsDrawer = <AppsDrawer ref="appsDrawer"
room={this.props.room}
userId={this.props.userId}
maxHeight={this.props.maxHeight}
showApps={this.props.showApps}
/>;
}
const appsDrawer = <AppsDrawer ref="appsDrawer"
room={this.props.room}
userId={this.props.userId}
maxHeight={this.props.maxHeight}
showApps={this.props.showApps}
/>;
return (
<div className="mx_RoomView_auxPanel" style={{maxHeight: this.props.maxHeight}} >

View file

@ -146,8 +146,8 @@ module.exports = React.createClass({
const newState = {
members: this.roomMembers(),
};
newState.filteredJoinedMembers = this._filterMembers(newState.members, 'join');
newState.filteredInvitedMembers = this._filterMembers(newState.members, 'invite');
newState.filteredJoinedMembers = this._filterMembers(newState.members, 'join', this.state.searchQuery);
newState.filteredInvitedMembers = this._filterMembers(newState.members, 'invite', this.state.searchQuery);
this.setState(newState);
}, 500),
@ -187,7 +187,7 @@ module.exports = React.createClass({
const user_id = all_user_ids[i];
const m = all_members[user_id];
if (m.membership == 'join' || m.membership == 'invite') {
if (m.membership === 'join' || m.membership === 'invite') {
if ((ConferenceHandler && !ConferenceHandler.isConferenceUser(user_id)) || !ConferenceHandler) {
to_display.push(user_id);
++count;
@ -302,6 +302,7 @@ module.exports = React.createClass({
const m = this.memberDict[userId];
if (query) {
query = query.toLowerCase();
const matchesName = m.name.toLowerCase().indexOf(query) !== -1;
const matchesId = m.userId.toLowerCase().indexOf(query) !== -1;
@ -310,7 +311,7 @@ module.exports = React.createClass({
}
}
return m.membership == membership;
return m.membership === membership;
});
},

View file

@ -1,5 +1,6 @@
/*
Copyright 2015, 2016 OpenMarket Ltd
Copyright 2017 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -285,18 +286,16 @@ export default class MessageComposer extends React.Component {
}
// Apps
if (UserSettingsStore.isFeatureEnabled('matrix_apps')) {
if (this.props.showApps) {
hideAppsButton =
<div key="controls_hide_apps" className="mx_MessageComposer_apps" onClick={this.onHideAppsClick} title={_t("Hide Apps")}>
<TintableSvg src="img/icons-hide-apps.svg" width="35" height="35" />
</div>;
} else {
showAppsButton =
<div key="show_apps" className="mx_MessageComposer_apps" onClick={this.onShowAppsClick} title={_t("Show Apps")}>
<TintableSvg src="img/icons-show-apps.svg" width="35" height="35" />
</div>;
}
if (this.props.showApps) {
hideAppsButton =
<div key="controls_hide_apps" className="mx_MessageComposer_apps" onClick={this.onHideAppsClick} title={_t("Hide Apps")}>
<TintableSvg src="img/icons-hide-apps.svg" width="35" height="35" />
</div>;
} else {
showAppsButton =
<div key="show_apps" className="mx_MessageComposer_apps" onClick={this.onShowAppsClick} title={_t("Show Apps")}>
<TintableSvg src="img/icons-show-apps.svg" width="35" height="35" />
</div>;
}
const canSendMessages = this.props.room.currentState.maySendMessage(

View file

@ -129,6 +129,10 @@ module.exports = React.createClass({
}).done();
},
onAvatarRemoveClick: function() {
MatrixClientPeg.get().sendStateEvent(this.props.room.roomId, 'm.room.avatar', {url: null}, '');
},
onShowRhsClick: function(ev) {
dis.dispatch({ action: 'show_right_panel' });
},
@ -268,11 +272,15 @@ module.exports = React.createClass({
<div className="mx_RoomHeader_avatarPicker_edit">
<label htmlFor="avatarInput" ref="file_label">
<img src="img/camera.svg"
alt={_t("Upload avatar")} title={_t("Upload avatar")}
width="17" height="15" />
alt={_t("Upload avatar")} title={_t("Upload avatar")}
width="17" height="15" />
</label>
<input id="avatarInput" type="file" onChange={this.onAvatarSelected} />
</div>
<div className="mx_RoomHeader_avatarPicker_remove" onClick={this.onAvatarRemoveClick}>
<img src="img/cancel.svg" width="10"
alt={_t("Remove avatar")} title={_t("Remove avatar")} />
</div>
</div>
);
} else if (this.props.room || (this.props.oobData && this.props.oobData.name)) {

View file

@ -53,6 +53,10 @@ module.exports = React.createClass({
};
},
componentWillMount: function() {
MatrixClientPeg.get().on("RoomState.events", this.onRoomStateEvents);
},
componentWillReceiveProps: function(newProps) {
if (this.avatarSet) {
// don't clobber what the user has just set
@ -63,6 +67,28 @@ module.exports = React.createClass({
});
},
componentWillUnmount: function() {
if (MatrixClientPeg.get()) {
MatrixClientPeg.get().removeListener("RoomState.events", this.onRoomStateEvents);
}
},
onRoomStateEvents: function(ev) {
if (!this.props.room) {
return;
}
if (ev.getRoomId() !== this.props.room.roomId || ev.getType() !== 'm.room.avatar'
|| ev.getSender() !== MatrixClientPeg.get().getUserId()) {
return;
}
if (!ev.getContent().url) {
this.avatarSet = false;
this.setState({}); // force update
}
},
setAvatarFromFile: function(file) {
let newUrl = null;

View file

@ -13,7 +13,7 @@
"Rooms": "Místnosti",
"Scroll to unread messages": "Přejít k nepřečteným zprávám",
"Search": "Hledání",
"Send a message (unencrypted)": "Poslat zprávu (nezašifrovaně)",
"Send a message (unencrypted)": "Poslat zprávu (nešifrovanou)",
"Settings": "Nastavení",
"Start Chat": "Začít chat",
"This room": "Tato místnost",
@ -49,7 +49,7 @@
"Cancel": "Storno",
"Error": "Chyba",
"Favourite": "V oblíbených",
"Mute": "Ztit",
"Mute": "Ztlumit",
"Continue": "Pokračovat",
"Failed to change password. Is your password correct?": "Nepodařilo se změnit heslo. Je vaše heslo správné?",
"Operation failed": "Chyba operace",
@ -123,8 +123,8 @@
"Changes your display nickname": "Změní vaši zobrazovanou přezdívku",
"Changes colour scheme of current room": "Změní barevné schéma aktuální místnosti",
"Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "V současnosti změna hesla resetuje všechny šifrovací klíče na všech zařízeních, což vám znepřístupní historii zašifrovaných chatů, pokud si nejprve nevyexportujete klíče svých místností a pak je do nich znova nevložíte. Toto bude v budoucnu lépe ošetřeno.",
"Clear Cache and Reload": "Vymazat vyrovnávací paměť a načíst znovu",
"Clear Cache": "Vymazat vyrovnávací paměť",
"Clear Cache and Reload": "Vymazat mezipaměť a načíst znovu",
"Clear Cache": "Vymazat mezipaměť",
"<a>Click here</a> to join the discussion!": "<a>Kliknutím zde</a> se přidáte k diskuzi!",
"Command error": "Chyba příkazu",
"Commands": "Příkazy",
@ -213,6 +213,289 @@
"Failed to upload profile picture!": "Nahrání profilového obrázku se nezdařilo",
"Failure to create room": "Vytvoření místnosti se nezdařilo",
"Forget room": "Zapomenout místnost",
"Forgot your password?": "Zapomněl/a jste své heslo?",
"For security, this session has been signed out. Please sign in again.": "Z bezpečnostních důvodů bylo toto přihlášení ukončeno. Přihlašte se prosím znovu."
"Forgot your password?": "Zapomněli jste své heslo?",
"For security, this session has been signed out. Please sign in again.": "Z bezpečnostních důvodů bylo toto přihlášení ukončeno. Přihlašte se prosím znovu.",
"all room members, from the point they are invited": "všichni členové místnosti od chvíle jejich pozvání",
"all room members, from the point they joined": "všichni členové místnosti od chvíle jejich vstupu",
"%(names)s and one other are typing": "%(names)s a jeden další píší",
"%(names)s and %(lastPerson)s are typing": "%(names)s a %(lastPerson)s píší",
"and %(count)s others...|other": "a %(count)s další...",
"%(names)s and %(count)s others are typing": "%(names)s a %(count)s další píší",
"%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s widget upravil/a %(senderName)s",
"%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s widget odstranil/a %(senderName)s",
"%(widgetName)s widget added by %(senderName)s": "%(widgetName)s widget přidal/a %(senderName)s",
"Automatically replace plain text Emoji": "Automaticky nahrazovat textové emodži",
"Failed to upload image": "Obrázek se nepodařilo nahrát",
"Failed to update group": "Aktualizace skupiny se nepodařila",
"Edit Group": "Upravit skupinu",
"Join an existing group": "Přidat se do existující skupiny",
"To join an existing group you'll have to know its group identifier; this will look something like <i>+example:matrix.org</i>.": "Pro přidání se do existující skupiny je nutno znát její identifikátor. Vypadá nějak takto: <i>+skupina:matrix.org</i>.",
"You are a member of these groups:": "Jste členem těchto skupin:",
"Room creation failed": "Místnost se nepodařilo vytvořit",
"%(senderName)s answered the call.": "%(senderName)s přijal/a hovor.",
"Click to mute audio": "Kliknutím ztlumíte zvuk",
"Failed to verify email address: make sure you clicked the link in the email": "E-mailovou adresu se nepodařilo ověřit. Přesvědčte se, že jste kliknul/a na zaslaný odkaz",
"Found a bug?": "Našli jste chybu?",
"Guest access is disabled on this Home Server.": "Na tomto domovském serveru je hostům vstup odepřen.",
"Guests can't set avatars. Please register.": "Hosté si nemohou nastavovat avatar. Zaregistrujte se prosím.",
"Guest users can't create new rooms. Please register to create room and start a chat.": "Hosté nemohou vytvářet nové místnosti. Abyste mohli místnosti vytvářet a chatovat v nich, nejprve se prosím zaregistrujte.",
"Guest users can't upload files. Please register to upload.": "Hosté nemohou nahrávat soubory. Abyste je mohli nahrávat, nejprve se prosím zaregistrujte.",
"Guests cannot join this room even if explicitly invited.": "Hosté nemohou vstoupit do této místnosti, i když jsou přímo pozváni.",
"had": "měl/a",
"Hide read receipts": "Skrýt potvrzení o přečtení",
"Homeserver is": "Domovský server je",
"Identity Server is": "Server identity je",
"I have verified my email address": "Ověřil/a jsem svoji e-mailovou adresu",
"Import": "Importovat",
"Import E2E room keys": "Importovat E2E klíče místností",
"Incoming call from %(name)s": "Příchozí hovor od %(name)s",
"Incoming video call from %(name)s": "Příchozí videohovor od %(name)s",
"Incoming voice call from %(name)s": "Příchozí hlasový hovor od %(name)s",
"Incorrect username and/or password.": "Nesprávné uživatelské jméno nebo heslo.",
"Incorrect verification code": "Nesprávný ověřovací kód",
"Interface Language": "Jazyk rozhraní",
"Invalid alias format": "Neplaný formát aliasu",
"Invalid address format": "Neplatný formát adresy",
"Invalid Email Address": "Neplatná e-mailová adresa",
"%(senderName)s invited %(targetName)s.": "%(senderName)s pozval/a %(targetName)s.",
"Invite new room members": "Pozvat do místnosti nové členy",
"Invites": "Pozvánky",
"Invites user with given id to current room": "Pozve do aktuální místnosti uživatele s daným id",
"'%(alias)s' is not a valid format for an address": "'%(alias)s' není platný formát adresy",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' není platný formát aliasu",
"Join Room": "Vstoupit do místnosti",
"%(targetName)s joined the room.": "%(targetName)s vstoupil/a do místnosti.",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s vykopnul/a %(targetName)s.",
"Kick": "Vykopnout",
"Kicks user with given id": "Vykopne uživatele s daným id",
"Last seen": "Naposledy viděn/a",
"Leave room": "Odejít z místnosti",
"Level:": "Úroveň:",
"Local addresses for this room:": "Místní adresy této místnosti:",
"Logged in as:": "Přihlášen/a jako:",
"Login as guest": "Přihlášen/a jako host",
"matrix-react-sdk version:": "Verze matrix-react-sdk:",
"Members only": "Pouze pro členy",
"Mobile phone number": "Číslo mobilního telefonu",
"Mobile phone number (optional)": "Číslo mobilního telefonu (nepovinné)",
"Moderator": "Moderátor",
"my Matrix ID": "moje Matrix ID",
"Name": "Jméno",
"New address (e.g. #foo:%(localDomain)s)": "Nová adresa (např. #neco:%(localDomain)s)",
"New password": "Nové heslo",
"New passwords don't match": "Nová hesla se neshodují",
"New passwords must match each other.": "Nová hesla se musí shodovat.",
"not set": "nenastaveno",
"not specified": "neurčeno",
"(not supported by this browser)": "(nepodporováno tímto prohlížečem)",
"<not supported>": "<nepodporováno>",
"AM": "dop.",
"PM": "odp.",
"NOT verified": "Neověřeno",
"No display name": "Žádné zobrazované jméno",
"No more results": "Žádné další výsledky",
"No results": "Žádné výsledky",
"olm version:": "verze olm:",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "Jakmile je jednou šifrování v místnosti zapnuto, nelze už vypnout (prozatím)",
"Only people who have been invited": "Pouze lidé, kteří byli pozváni",
"Otherwise, <a>click here</a> to send a bug report.": "V opačném případě <a>klikněte zde</a> a pošlete hlášení o chybě.",
"Password": "Heslo",
"Password:": "Heslo:",
"Passwords can't be empty": "Hesla nemohou být prázdná",
"Permissions": "Oprávnění",
"Phone": "Telefon",
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s změnil/a úroveň moci o %(powerLevelDiffText)s.",
"Define the power level of a user": "Stanovte úroveň moci uživatele",
"Failed to change power level": "Nepodařilo se změnit úroveň moci",
"Power level must be positive integer.": "Úroveň moci musí být kladné celé číslo.",
"%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (moc %(powerLevelNumber)s)",
"You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Tuto změnu nepůjde vrátit zpět, protože tomuto uživateli nastavujete stejnou úroveň moci, jakou máte vy.",
"And %(count)s more...": "A %(count)s další...",
"Alias (optional)": "Alias (nepovinný)",
"Room name (optional)": "Název místnosti (nepovinný)",
"Report it": "Nahlásit to",
"restore": "obnovit",
"Results from DuckDuckGo": "Výsledky z DuckDuckGo",
"Return to app": "Vrátit k aplikaci",
"Return to login screen": "Vrátit k přihlašovací obrazovce",
"Riot does not have permission to send you notifications - please check your browser settings": "Riot není oprávněn posílat vám upozornění zkontrolujte prosím nastavení svého prohlížeče",
"Riot was not given permission to send notifications - please try again": "Riot nebyl oprávněn k posílání upozornění zkuste to prosím znovu",
"riot-web version:": "verze riot-web:",
"Room %(roomId)s not visible": "Místnost %(roomId)s není viditelná",
"Room Colour": "Barva místnosti",
"Room contains unknown devices": "V místnosti jsou neznámá zařízení",
"%(roomName)s does not exist.": "%(roomName)s neexistuje.",
"%(roomName)s is not accessible at this time.": "Místnost %(roomName)s není v tuto chvíli dostupná.",
"Save": "Uložit",
"Scroll to bottom of page": "Přejít na konec stránky",
"Send an encrypted message": "Poslat šifrovanou zprávu",
"Send anyway": "Přesto poslat",
"Sender device information": "Informace o odesilatelově zařízení",
"Send Reset Email": "Poslat resetovací e-mail",
"sent an image": "poslat obrázek",
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s poslal/a obrázek.",
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s poslal/a %(targetDisplayName)s pozvánku ke vstupu do místnosti.",
"sent a video": "poslat video",
"Server error": "Chyba serveru",
"Server may be unavailable or overloaded": "Server může být nedostupný nebo přetížený",
"Server may be unavailable, overloaded, or search timed out :(": "Server může být nedostupný, přetížený nebo vyhledávání vypršelo :(",
"Server may be unavailable, overloaded, or the file too big": "Server může být nedostupný, přetížený nebo soubor je příliš velký",
"Server may be unavailable, overloaded, or you hit a bug.": "Server může být nedostupný, přetížený nebo jste narazili na chybu.",
"Server unavailable, overloaded, or something else went wrong.": "Server je nedostupný, přetížený nebo se pokazilo něco jiného.",
"Session ID": "ID sezení",
"%(senderName)s set a profile picture.": "%(senderName)s si nastavil/a profilový obrázek.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s si změnil/a zobrazované jméno na %(displayName)s.",
"Set": "Nastavit",
"Sets the room topic": "Nastavuje téma místnosti",
"Show Apps": "Zobrazit aplikace",
"Show panel": "Zobrazit panel",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Zobrazovat časové značky v 12hodinovém formátu (např. 2:30 odp.)",
"Sign in": "Přihlásit",
"Sign out": "Odhlásit",
"Some of your messages have not been sent.": "Některé z vašich zpráv nebyly odeslány.",
"Someone": "Někdo",
"Start a chat": "Začít chat",
"Start authentication": "Začít ověření",
"Submit": "Odeslat",
"Success": "Úspěch",
"tag as %(tagName)s": "oštítkovat jako %(tagName)s",
"The main address for this room is": "Hlavní adresa této místnosti je",
"The phone number entered looks invalid": "Zadané telefonní číslo se zdá být neplatné",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Zadaný podepisovací klíč se shoduje s klíčem obdrženým od uživatele %(userId)s ze zařízení %(deviceId)s. Zařízení je označeno jako ověřené.",
"This email address is already in use": "Tato e-mailová adresa je již používaná",
"This email address was not found": "Tato e-mailová adresa nebyla nalezena",
"%(actionVerb)s this person?": "%(actionVerb)s tuto osobu?",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "Soubor '%(fileName)s' překračuje maximální velikost povolenou na tomto domovském serveru",
"The file '%(fileName)s' failed to upload": "Soubor '%(fileName)s' se nepodařilo nahrát",
"This Home Server does not support login using email address.": "Tento domovský server nepodporuje přihlašování e-mailovou adresou.",
"There was a problem logging in.": "Při přihlašování se vyskytl problém.",
"This room has no local addresses": "Tato místnost nemá žádné místní adresy",
"This room is not recognised.": "Tato místnost nebyla rozpoznána.",
"These are experimental features that may break in unexpected ways": "Tyto funkce jsou experimentální a mohou se pokazit nečekanými způsoby",
"The visibility of existing history will be unchanged": "Viditelnost existující historie nebude změněna",
"VoIP is unsupported": "VoIP není podporován",
"Warning!": "Pozor!",
"Who can access this room?": "Kdo má přístup k této místnosti?",
"Who can read history?": "Kdo může číst historii?",
"Who would you like to add to this room?": "Koho byste chtěli přidat do této místnosti?",
"Who would you like to communicate with?": "S kým byste chtěli komunikovat?",
"Would you like to <acceptText>accept</acceptText> or <declineText>decline</declineText> this invitation?": "Chtěli byste tuto pozvánku <acceptText>přijmout</acceptText> nebo <declineText>odmítnout</declineText>?",
"You are not in this room.": "Nejste v této místnosti.",
"You do not have permission to do that in this room.": "V této místnosti nemáte na toto právo.",
"You're not in any rooms yet! Press <CreateRoomButton> to make a room or <RoomDirectoryButton> to browse the directory": "Ještě nejste v žádné místnosti! Zmáčkněte <CreateRoomButton> pro vytvoření místnosti nebo <RoomDirectoryButton> pro prohlížení adresáře",
"You are trying to access %(roomName)s.": "Snažíte se přistoupit k %(roomName)s.",
"You cannot place a call with yourself.": "Nemůžete volat sami sobě.",
"You cannot place VoIP calls in this browser.": "V tomto prohlížeči nelze vytáčet VoIP hovory.",
"You do not have permission to post to this room": "Na přispívání do této místnosti nemáte právo",
"You have been banned from %(roomName)s by %(userName)s.": "%(userName)s vás vykázal/a z místnosti %(roomName)s.",
"You have been kicked from %(roomName)s by %(userName)s.": "%(userName)s vás vykopnul/a z místnosti %(roomName)s.",
"You have entered an invalid contact. Try using their Matrix ID or email address.": "Zadali jste neplatný kontakt. Zkuste jejich Matrix ID nebo e-mailovou adresu.",
"you must be a": "musíte být",
"You need to enter a user name.": "Musíte zadat uživatelské jméno.",
"Your password has been reset": "Vaše heslo bylo resetováno",
"Your home server does not support device management.": "Váš domovský server nepodporuje správu zařízení.",
"Online": "Online",
"Offline": "Offline",
"Updates": "Aktualizace",
"Check for update": "Zkontrolovat aktualizace",
"Start chatting": "Začít chatovat",
"Start Chatting": "Začít chatovat",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Textová zpráva byla odeslána na +%(msisdn)s. Prosím vložte ověřovací kód z dané zprávy",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s přijmul/a pozvánku pro %(displayName)s.",
"Active call (%(roomName)s)": "Probíhající hovor (%(roomName)s)",
"An email has been sent to": "Email byl odeslán odeslán na",
"%(senderName)s banned %(targetName)s.": "%(senderName)s zablokoval/a %(targetName)s.",
"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>.": "Nelze se připojit k homeserveru přes HTTP pokud je v adresním řádku HTTPS. Buď použijte HTTPS nebo <a>povolte nebezpečné scripty</a>.",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s změnil/a zobrazované jméno z %(oldDisplayName)s na %(displayName)s.",
"Click here to fix": "Klikněte zde pro opravu",
"Click to mute video": "Klikněte pro zakázání videa",
"click to reveal": "klikněte pro odhalení",
"Click to unmute video": "Klikněte pro povolení videa",
"Click to unmute audio": "Klikněte pro povolení zvuku",
"demote": "degradovat",
"Devices will not yet be able to decrypt history from before they joined the room": "Zařízení nebudou schopna dešifrovat historii před tím než se připojila k místnosti",
"Disable markdown formatting": "Zakázat formátování v markdownu",
"Displays action": "Zobrazí akci",
"Do you want to load widget from URL:": "Chcete načíst widget z URL:",
"Ed25519 fingerprint": "Ed25519 otisk",
"favourite": "oblíbené",
"Fill screen": "Vyplnit obrazovku",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s z %(fromPowerLevel)s na %(toPowerLevel)s",
"This doesn't appear to be a valid email address": "Emailová adresa se zdá být nevalidní",
"This is a preview of this room. Room interactions have been disabled": "Toto je náhled místnosti. Interakce byly zakázány",
"This phone number is already in use": "Tohle číslo už se používá",
"This room is not accessible by remote Matrix servers": "Tahle místnost není přístupná vzdálenými Matrix servery",
"This room's internal ID is": "Vnitřní ID místnosti je",
"times": "krát",
"To ban users": "Zablokovat uživatele",
"to browse the directory": "prohlížet adresář",
"To configure the room": "Nastavit místnost",
"To invite users into the room": "Pozvat uživatele do místnosti",
"To kick users": "Vyhodit uživatele",
"to make a room or": "vytvořit místnost nebo",
"To remove other users' messages": "Smazat zprávy ostatních uživatelů",
"To reset your password, enter the email address linked to your account": "K resetování hesla, vložte emailovou adresu spojenou s vaším účtem",
"to restore": "obnovit",
"To send events of type": "Odeslat události typu",
"To send messages": "Odeslat zprávy",
"to start a chat with someone": "začít chat s někým",
"to tag as %(tagName)s": "oštítkovat jako %(tagName)s",
"to tag direct chat": "oštítkovat přímý chat",
"To use it, just wait for autocomplete results to load and tab through them.": "Pro použití vyčkejte k načtení automatického doplňování a tabem přeskakujte mezi výsledky.",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Nemáte práva k zobrazení zprávy v daném časovém úseku.",
"Tried to load a specific point in this room's timeline, but was unable to find it.": "Zpráva v daném časovém úsaku nenalezena.",
"Turn Markdown off": "Vypnout Markdown",
"Turn Markdown on": "Zapnout Markdown",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s zapnul end-to-end šifrování (algoritmus %(algorithm)s).",
"Unable to add email address": "Nepodařilo se přidat emailovou adresu",
"Unable to create widget.": "Nepodařilo se vytvořit widget.",
"Unable to remove contact information": "Nepodařilo se smazat kontaktní údaje",
"Unable to restore previous session": "Nepodařilo se obnovit předchozí sezení",
"Unable to verify email address.": "Nepodařilo se ověřit emailovou adresu.",
"Unban": "Odblokovat",
"Unbans user with given id": "Odblokuje uživatele s daným id",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s odblokoval/a %(targetName)s.",
"Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Nepodařilo se prokázat že adresa na kterou byla tato pozvánka odeslána se shoduje s adresou přiřazenou Vašemu účtu.",
"Unable to capture screen": "Nepodařilo se zachytit obrazovku",
"Unable to enable Notifications": "Nepodařilo se povolit Notifikace",
"Unable to load device list": "Nepodařilo se načíst list zařízení",
"Undecryptable": "Nerozšifrovatelné",
"unencrypted": "nešifrované",
"Unencrypted message": "Nešifrovaná zpráva",
"unknown caller": "neznámý volající",
"unknown device": "neznámé zařízení",
"Unknown room %(roomId)s": "Neznámá místnost %(roomId)s",
"Unknown (user, device) pair:": "Neznámý pár (uživatel, zařízení):",
"unknown": "neznámý",
"Unmute": "Povolit",
"Unnamed Room": "Nepojmenovaná Místnost",
"Unrecognised command:": "Nerozpoznaný příkaz:",
"Unrecognised room alias:": "Nerozpoznaný alias místnosti:",
"Unverified": "Neověřený",
"Uploading %(filename)s and %(count)s others|zero": "Nahrávám %(filename)s",
"Uploading %(filename)s and %(count)s others|one": "Nahrávám %(filename)s a %(count)s další",
"Uploading %(filename)s and %(count)s others|other": "Nahrávám %(filename)s a %(count)s další",
"Upload Failed": "Nahrávání Selhalo",
"Upload Files": "Nahrát Soubory",
"Upload file": "Nahrát soubor",
"Upload new:": "Nahrát nový:",
"Usage": "Použití",
"Use compact timeline layout": "Použít kompaktní rozvržení timeline",
"Use with caution": "Používejte s opatrností",
"User ID": "Uživatelské ID",
"User Interface": "Uživatelské rozhraní",
"%(user)s is a": "%(user)s je",
"User name": "Uživatelské jméno",
"Username invalid: %(errMessage)s": "Nevalidní uživatelské jméno: %(errMessage)s",
"Users": "Uživatelé",
"User": "Uživatel",
"Verification Pending": "Čeká na ověření",
"Verification": "Ověření",
"verified": "ověreno",
"Verified": "Ověřeno",
"Verified key": "Ověřen klíč",
"(no answer)": "(žádná odpověď)",
"(unknown failure: %(reason)s)": "(neznámá chyba: %(reason)s)",
"(warning: cannot be disabled again!)": "(varování: nemůže být opět zakázáno!)",
"WARNING: Device already verified, but keys do NOT MATCH!": "VAROVÁNÍ: Zařízení ověřeno, ale klíče se NESHODUJÍ!"
}

View file

@ -847,8 +847,8 @@
"Edit": "Bearbeiten",
"Enable automatic language detection for syntax highlighting": "Automatische Spracherkennung für die Syntax-Hervorhebung aktivieren",
"Hide Apps": "Apps verbergen",
"Hide join/leave messages (invites/kicks/bans unaffected)": "Verberge Beitritt-/Verlassen-Meldungen (außer Einladungen/Kicks/Bans)",
"Hide avatar and display name changes": "Verberge Avatar- und Anzeigenamen-Änderungen",
"Hide join/leave messages (invites/kicks/bans unaffected)": "Betreten-/Verlassen-Benachrichtigungen verbergen (gilt nicht für Einladungen/Kicks/Bans)",
"Hide avatar and display name changes": "Profilbild- und Anzeigenamen-Änderungen verbergen",
"Matrix Apps": "Matrix-Apps",
"Revoke widget access": "Ziehe Widget-Zugriff zurück",
"Sets the room topic": "Setzt das Raum-Thema",
@ -859,7 +859,7 @@
"You are not in this room.": "Du bist nicht in diesem Raum.",
"You do not have permission to do that in this room.": "Du hast keine Berechtigung, dies in diesem Raum zu tun.",
"Verifies a user, device, and pubkey tuple": "Verifiziert ein Tupel aus Nutzer, Gerät und öffentlichem Schlüssel",
"Autocomplete Delay (ms):": "Verzögerung zur Autovervollständigung (ms):",
"Autocomplete Delay (ms):": "Verzögerung bei Autovervollständigung (ms):",
"This Home server does not support groups": "Dieser Heimserver unterstützt keine Gruppen",
"Loading device info...": "Lädt Geräte-Info...",
"Groups": "Gruppen",
@ -884,7 +884,7 @@
"Automatically replace plain text Emoji": "Klartext-Emoji automatisch ersetzen",
"Failed to upload image": "Bild-Hochladen fehlgeschlagen",
"Failed to update group": "Aktualisieren der Gruppe fehlgeschlagen",
"Hide avatars in user and room mentions": "Verberge Profilbilder in Benutzer- und Raum-Erwähnungen",
"Hide avatars in user and room mentions": "Profilbilder in Benutzer- und Raum-Erwähnungen verbergen",
"AM": "a. m.",
"PM": "p. m.",
"The maximum permitted number of widgets have already been added to this room.": "Die maximal erlaubte Anzahl an hinzufügbaren Widgets für diesen Raum wurde erreicht.",

View file

@ -289,6 +289,7 @@
"matrix-react-sdk version:": "matrix-react-sdk version:",
"Matrix Apps": "Matrix Apps",
"Members only": "Members only",
"Disable big emoji in chat": "Disable big emoji in chat",
"Disable Emoji suggestions while typing": "Disable Emoji suggestions while typing",
"Message not sent due to unknown devices being present": "Message not sent due to unknown devices being present",
"Missing room_id in request": "Missing room_id in request",
@ -633,6 +634,7 @@
"quote": "quote",
"bullet": "bullet",
"numbullet": "numbullet",
"Remove avatar": "Remove avatar",
"%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)sjoined %(repeats)s times",
"%(oneUser)sjoined %(repeats)s times": "%(oneUser)sjoined %(repeats)s times",
"%(severalUsers)sjoined": "%(severalUsers)sjoined",
@ -918,5 +920,7 @@
"Related groups for this room:": "Related groups for this room:",
"This room has no related groups": "This room has no related groups",
"New group ID (e.g. +foo:%(localDomain)s)": "New group ID (e.g. +foo:%(localDomain)s)",
"Invites sent": "Invites sent",
"Your group invitations have been sent.": "Your group invitations have been sent.",
"%(serverName)s Matrix ID": "%(serverName)s Matrix ID"
}

View file

@ -860,5 +860,7 @@
"Robot check is currently unavailable on desktop - please use a <a>web browser</a>": "Robot check is currently unavailable on desktop - please use a <a>web browser</a>",
"Verifies a user, device, and pubkey tuple": "Verifies a user, device, and pubkey tuple",
"It is currently only possible to create groups on your own home server: use a group ID ending with %(domain)s": "It is currently only possible to create groups on your own home server: use a group ID ending with %(domain)s",
"To join an existing group you'll have to know its group identifier; this will look something like <i>+example:matrix.org</i>.": "To join an existing group you'll have to know its group identifier; this will look something like <i>+example:matrix.org</i>."
"To join an existing group you'll have to know its group identifier; this will look something like <i>+example:matrix.org</i>.": "To join an existing group you'll have to know its group identifier; this will look something like <i>+example:matrix.org</i>.",
"%(weekDayName)s, %(monthName)s %(day)s": "%(weekDayName)s, %(monthName)s %(day)s",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s": "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s"
}

View file

@ -105,8 +105,8 @@
"Click to unmute audio": "Paina poistaaksesi äänimykistyksen",
"Command error": "Komentovirhe",
"Commands": "Komennot",
"Conference call failed.": "Konferenssipuhelu epäonnistui",
"Conference calling is in development and may not be reliable.": "Konferenssipuhelut ovat vielä kehityksen alla ja saattavat toimia epäluotettavasti",
"Conference call failed.": "Konferenssipuhelu epäonnistui.",
"Conference calling is in development and may not be reliable.": "Konferenssipuhelut ovat vielä kehityksen alla ja saattavat toimia epäluotettavasti.",
"Conference calls are not supported in encrypted rooms": "Konferenssipuhelut eivät ole mahdollisia salatuissa huoneissa",
"Conference calls are not supported in this client": "Tämä asiakasohjelma ei tue konferenssipuheluja",
"Confirm password": "Varmista salasana",
@ -130,7 +130,7 @@
"Device already verified!": "Laite on jo varmennettu!",
"Device ID": "Laitetunniste",
"Device ID:": "Laitetunniste:",
"device id: ": "laitetunniste:",
"device id: ": "laitetunniste: ",
"Device key:": "Laiteavain:",
"Devices": "Laitteet",
"Direct chats": "Suorat viestittelyt",
@ -161,7 +161,7 @@
"Error decrypting attachment": "Liitteen salauksen purku epäonnistui",
"Event information": "Tapahtumatiedot",
"Export": "Vie",
"Export E2E room keys": "Vie huoneen päästä päähän-salauksen (E2E) avaimet ",
"Export E2E room keys": "Vie huoneen päästä päähän-salauksen (E2E) avaimet",
"Failed to ban user": "Porttikiellon antaminen epäonnistui",
"Failed to delete device": "Laitten poistamine epäonnistui",
"Failed to fetch avatar URL": "Avatar URL:n haku epäonnistui",
@ -170,12 +170,12 @@
"Failed to leave room": "Huoneesta poistuminen epäonnistui",
"Failed to load timeline position": "Aikajanapaikan lataaminen epäonnistui",
"Failed to mute user": "Käyttäjän mykistäminen epäonnistui",
"Failed to register as guest:": "Vieraana rekisteröityminen epäonnistui",
"Failed to register as guest:": "Vieraana rekisteröityminen epäonnistui:",
"Failed to reject invite": "Kutsun hylkääminen epäonnistui",
"Failed to reject invitation": "Kutsun hylkääminen epäonnistui",
"Failed to save settings": "Asetusten tallentaminen epäonnistui",
"Failed to send email": "Sähköpostin lähettäminen epäonnistui",
"Failed to send request.": "Pyynnön lähettäminen epäonnistui",
"Failed to send request.": "Pyynnön lähettäminen epäonnistui.",
"Failed to set display name": "Näyttönimen asettaminen epäonnistui",
"Failed to set up conference call": "Konferenssipuhelun alustus epäonnistui",
"Failed to toggle moderator status": "Moderaattoriasetuksen muuttaminen epäonnistui",
@ -205,7 +205,7 @@
"Incoming call from %(name)s": "Saapuva puhelu käyttäjältä %(name)s",
"Incoming video call from %(name)s": "Saapuva videopuhelu käyttäjältä %(name)s",
"Incoming voice call from %(name)s": "Saapuva äänipuhelu käyttäjältä %(name)s",
"Incorrect username and/or password.": "Virheellinen käyttäjänimi ja/tai salasana",
"Incorrect username and/or password.": "Virheellinen käyttäjänimi ja/tai salasana.",
"Incorrect verification code": "Virheellinen varmennuskoodi",
"Integrations Error": "Integraatiovirhe",
"Interface Language": "Käyttöliittymän kieli",
@ -221,7 +221,7 @@
"joined and left": "liittyi ja poistui",
"joined": "liittyi",
"Joins room with given alias": "Liittyy huoneeseen jolla on annettu alias",
"Jump to first unread message.": "Hyppää ensimmäiseen lukemattomaan viestiin",
"Jump to first unread message.": "Hyppää ensimmäiseen lukemattomaan viestiin.",
"Kick": "Poista huoneesta",
"Kicks user with given id": "Poistaa käyttäjätunnisteen mukaisen käyttäjän huoneesta",
"Labs": "Laboratorio",
@ -249,7 +249,7 @@
"Name": "Nimi",
"New password": "Uusi salasana",
"New passwords don't match": "Uudet salasanat eivät täsmää",
"New passwords must match each other.": "Uusien salasanojen on vastattava toisiaan",
"New passwords must match each other.": "Uusien salasanojen on vastattava toisiaan.",
"not set": "ei asetettu",
"not specified": "ei määritetty",
"(not supported by this browser)": "(ei tuettu tässä selaimessa)",
@ -310,7 +310,7 @@
"Sign out": "Kirjaudu ulos",
"since they joined": "liittymisestä lähtien",
"since they were invited": "kutsusta lähtien",
"Some of your messages have not been sent.": "Jotkut viesteistäsi ei ole lähetetty",
"Some of your messages have not been sent.": "Jotkut viesteistäsi ei ole lähetetty.",
"Someone": "Joku",
"Start a chat": "Aloita keskustelu",
"Start Chat": "Aloita keskustelu",
@ -337,5 +337,410 @@
"Unrecognised room alias:": "Tuntematon huonealias:",
"Unverified": "Varmentamaton",
"Uploading %(filename)s and %(count)s others|zero": "Ladataan %(filename)s",
"Uploading %(filename)s and %(count)s others|one": "Ladataan %(filename)s ja %(count)s muuta"
"Uploading %(filename)s and %(count)s others|one": "Ladataan %(filename)s ja %(count)s muuta",
"Blacklisted": "Estetyt",
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s muuti huoneen nimeksi %(roomName)s.",
"Drop here to tag %(section)s": "Pudota tähän tägätäksesi %(section)s",
"Enable automatic language detection for syntax highlighting": "Ota automaattinen kielentunnistus käyttöön koodin väritystä varten",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "Salatut viestit eivät näy ohjelmissa joissa salaus ei ole vielä implementoitu",
"%(senderName)s ended the call.": "%(senderName)s lopetti puhelun.",
"Guest access is disabled on this Home Server.": "Vierailijat on estetty tällä kotipalvelimella.",
"Guest users can't create new rooms. Please register to create room and start a chat.": "Vierailijat eivät voi luoda huoneita. Ole hyvä ja rekisteröidy luodaksesi huoneen ja aloittaaksesi keskustelun.",
"Guest users can't upload files. Please register to upload.": "Vierailijat eivät voi ladata tiedostoja. Ole hyvä ja rekisteröidy voidaksesi ladata tiedostoja.",
"Guests can't use labs features. Please register.": "Vierailijat eivät voi käyttää kokeellisia toimintoja. Ole hyvä ja rekisteröidy.",
"Guests cannot join this room even if explicitly invited.": "Vierailijat eivät voi liittyä tähän huoneeseen vaikka heidät on eksplisiittisesti kutsuttu.",
"Hangup": "Lopeta",
"Hide join/leave messages (invites/kicks/bans unaffected)": "Piilota liittymis-/poistumisviestit (ei koske kutsuja/poistamisia/porttikieltoja)",
"Historical": "Vanhat",
"Home": "Etusivu",
"Invalid file%(extra)s": "Virheellinen tiedosto%(extra)s",
"%(senderName)s invited %(targetName)s.": "%(senderName)s kutsui käyttäjän %(targetName)s.",
"%(displayName)s is typing": "%(displayName)s kirjoittaa",
"%(senderName)s made future room history visible to": "%(senderName)s teki tulevista viesteistä näkyviä",
"none": "Ei mikään",
"No devices with registered encryption keys": "Ei laitteita joilla rekisteröityjä salausavaimia",
"No users have specific privileges in this room": "Kellään käyttäjällä ei ole erityisiä oikeuksia",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s soitti %(callType)spuhelun.",
"Remove %(threePid)s?": "Poista %(threePid)s?",
"%(senderName)s requested a VoIP conference.": "%(senderName)s pyysi VoIP konferenssia.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s asetti näyttönimekseen %(displayName)s.",
"This action cannot be performed by a guest user. Please register to be able to do this.": "Vierailija ei voi suorittaa tätä toimintoa. Ole hyvä ja rekisteröidy suorittaaksesi toiminnon.",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "Tiedosto %(fileName)s ylittää tämän kotipalvelimen maksimitiedostokoon",
"The file '%(fileName)s' failed to upload": "Tiedoston %(fileName)s lataaminen epäonnistui",
"This Home Server does not support login using email address.": "Kotipalvelin ei tue kirjatumista sähköpostiosoitteen avulla.",
"This invitation was sent to an email address which is not associated with this account:": "Kutsu lähetettiin sähköpostiosoitteeseen jota ei ole liitetty tähän tiliin:",
"This room is not recognised.": "Huonetta ei tunnistettu.",
"These are experimental features that may break in unexpected ways": "Nämä ovat kokeellisia ominaisuuksia jotka saattavat toimia ennakoimattomilla tavoilla",
"This doesn't appear to be a valid email address": "Olemassa olevan historian näkyvyys ei muutu",
"This is a preview of this room. Room interactions have been disabled": "Tämä on huoneen ennakokatselu. Vuorovaikutus ei ole mahdollista",
"This phone number is already in use": "Puhelinnumero on jo käytössä",
"times": "kertaa",
"To link to a room it must have <a>an address</a>.": "Linkittääksesi tähän huoneseen sillä on oltava <a>osoite</a>.",
"Turn Markdown off": "Ota Markdown pois käytöstä",
"Turn Markdown on": "Ota Markdown käyttöön",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s otti päästä päähän-salauksen käyttöön (algoritmi %(algorithm)s).",
"Username invalid: %(errMessage)s": "Virheellinen käyttäjänimi: %(errMessage)s",
"Users": "Käyttäjät",
"User": "Käyttäjä",
"Verification": "Varmennus",
"verified": "varmennettu",
"Verified": "Varmennettu",
"Verified key": "Varmennusavain",
"Video call": "Videopuhelu",
"Voice call": "Äänipuhelu",
"VoIP conference finished.": "VoIP konferenssi loppui.",
"VoIP conference started.": "VoIP konferenssi alkoi.",
"VoIP is unsupported": "VoIP ei ole tuettu",
"(no answer)": "(ei vastausta)",
"(unknown failure: %(reason)s)": "(tuntematon virhe: %(reason)s)",
"(warning: cannot be disabled again!)": "(varoitus: ei voida ottaa pois käytöstä enää!)",
"Warning!": "Varoitus!",
"Who can access this room?": "Keillä on pääsy tähän huoneeseen?",
"Who can read history?": "Kuka pystyy lukemaan historian?",
"Who would you like to add to this room?": "Kenet sinä haluaisit lisätä tähän huoneeseen?",
"Who would you like to communicate with?": "Kenen kanssa haluaisit kommunikoida?",
"Would you like to <acceptText>accept</acceptText> or <declineText>decline</declineText> this invitation?": "Haluatko <acceptText>hyväksyä</acceptText> vai <declineText>hylätä</declineText> kutsun?",
"You already have existing direct chats with this user:": "Sinulla on jo keskusteluja käynnissä tämän käyttäjän kanssa:",
"You are already in a call.": "Sinulla on jo puhelu käynnissä.",
"You are not in this room.": "Sinä et ole tässä huoneessa.",
"You do not have permission to do that in this room.": "Sinulla ei ole oikeutta tehdä tuota tässä huoneessa.",
"You are trying to access %(roomName)s.": "Yrität liittyä huoneeseen %(roomName)s.",
"You cannot place a call with yourself.": "Et voi soittaa itsellesi.",
"You cannot place VoIP calls in this browser.": "Et voi soittaa VoIP puheluita tällä selaimella.",
"You do not have permission to post to this room": "Sinulla ei ole oikeutta kirjoittaa tässä huoneessa",
"You have been banned from %(roomName)s by %(userName)s.": "Käyttäjä %(userName)s on antanut sinulle porttikiellon huoneeseen %(roomName)s.",
"You have been invited to join this room by %(inviterName)s": "Käyttäjä %(inviterName)s on kutsunut sinut tähän huoneeseen",
"You have been kicked from %(roomName)s by %(userName)s.": "Käyttäjä %(userName)s on poistanut sinut huoneesta %(roomName)s.",
"You have <a>disabled</a> URL previews by default.": "Olet oletusarvoisesti ottanut URL esikatselut <a>pois käytöstä</a>.",
"You have <a>enabled</a> URL previews by default.": "Olet oletusarvoisesti ottanut URL esikatselut <a>käyttöön</a>.",
"You have entered an invalid contact. Try using their Matrix ID or email address.": "Olet syöttänyt virheellisen kontaktin. Yritä käyttää heidän Matrixtunnistetta tai sähköpostiosoitetta.",
"You have no visible notifications": "Sinulla ei ole näkyviä ilmoituksia",
"You must <a>register</a> to use this functionality": "Sinun pitää <a>rekisteröityä</a> käyttääksesi tätä toiminnallisuutta",
"You need to be able to invite users to do that.": "Sinun pitää pystyä kutsua käyttäjiä voidaksesi tehdä tuon.",
"You need to be logged in.": "Sinun pitää olla kirjautunut.",
"You need to enter a user name.": "Sinun pitää syöttää käyttäjänimi.",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Sinun sähköpostiosoitteesi ei vaikuta olevan liitetty mihinkään Matrixtunnisteeseen tällä kotipalvelimella.",
"Your password has been reset": "Salasanasi on palautettu",
"You should not yet trust it to secure data": "Sinun ei vielä kannata luottaa siihen turvataksesi dataa",
"Your home server does not support device management.": "Kotipalvelimesi ei tue laitteiden hallintaa.",
"Sun": "Su",
"Mon": "Ma",
"Tue": "Ti",
"Wed": "Ke",
"Thu": "To",
"Fri": "Pe",
"Sat": "La",
"Set a display name:": "Aseta näyttönimi:",
"Set a Display Name": "Aseta näyttönimi",
"This server does not support authentication with a phone number.": "Tämä palvelin ei tue autentikointia puhelinnumeron avulla.",
"Missing password.": "Salasana puuttuu.",
"Passwords don't match.": "Salasanat eivät täsmää.",
"Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Salasana on liian lyhyt (minimi %(MIN_PASSWORD_LENGTH)s).",
"This doesn't look like a valid email address.": "Tämä ei näytä oikealta sähköpostiosoitteelta.",
"This doesn't look like a valid phone number.": "Tämä ei näytä oikealta puhelinnumerolta.",
"An unknown error occurred.": "Tuntematon virhe.",
"I already have an account": "Minulla on jo tili",
"An error occurred: %(error_string)s": "Virhe: %(error_string)s",
"Topic": "Aihe",
"Make this room private": "Tee tästä huoneesta yksityinen",
"Share message history with new users": "Jaa viestihistoria uusille käyttäjille",
"Encrypt room": "Salaa huone",
"There are no visible files in this room": "Tässä huoneessa ei tiedostoja näkyvissä",
"Room": "Huone",
"Copied!": "Kopioitu!",
"Failed to copy": "Kopiointi epäonnistui",
"Connectivity to the server has been lost.": "Yhteys palvelimeen menetettiin.",
"Sent messages will be stored until your connection has returned.": "Lähetetyt viestit tallennetaan kunnes yhteys on taas muodostettu.",
"Auto-complete": "Automaattitäydennys",
"<a>Resend all</a> or <a>cancel all</a> now. You can also select individual messages to resend or cancel.": "<a>Uudelleenlähetä kaikki</a> tai <a>hylkää kaikki</a> nyt. Voit myös valita yksittäisiä viestejä uudelleenlähetettäväksi tai hylättäväksi.",
"(~%(count)s results)|one": "(~%(count)s tulos)",
"(~%(count)s results)|other": "(~%(count)s tulosta)",
"or": "tai",
"Active call": "Aktiivinen puhelu",
"bold": "lihavoitu",
"italic": "kursiivi",
"strike": "ylivedetty",
"underline": "alleviivattu",
"code": "koodi",
"quote": "sitaatti",
"bullet": "lista",
"numbullet": "numeroitu lista",
"%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)sliittyivät %(repeats)s kertaa",
"%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)shylkäsi kutsunsa %(repeats)s kertaa",
"Please select the destination room for this message": "Ole hyvä ja valitse vastaanottava huone tälle viestille",
"New Password": "Uusi salasana",
"Start automatically after system login": "Käynnistä automaattisesti käyttöjärjestelmään kirjautumisen jälkeen",
"Desktop specific": "Työpöytäkäytön asetukset",
"Analytics": "Analytiikka",
"Opt out of analytics": "Ota analytiikka pois käytöstä",
"Options": "Valinnat",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot kerää anonyymisti tilastoja jotta voimme parantaa ohjelmistoa.",
"Passphrases must match": "Salasanojen on täsmättävä",
"Passphrase must not be empty": "Salasana ei saa olla tyhjä",
"Export room keys": "Vie huoneen avaimet",
"Confirm passphrase": "Varmista salasana",
"Import room keys": "Tuo huoneen avaimet",
"File to import": "Tiedosto",
"You must join the room to see its files": "Sinun pitää liittyä huoneeseen voidaksesi nähdä sen sisältämät tiedostot",
"Reject all %(invitedRooms)s invites": "Hylkää kaikki %(invitedRooms)s kutsut",
"Start new chat": "Aloita uusi keskustelu",
"Guest users can't invite users. Please register.": "Vierailijat eivät voi lähettää kutsuja. Ole hyvä ja rekisteröidy.",
"Failed to invite": "Kutsu epäonnistui",
"Failed to invite user": "Käyttäjän kutsuminen epäonnistui",
"Failed to invite the following users to the %(roomName)s room:": "Seuraavian käyttäjien kutsuminen huoneeseen %(roomName)s epäonnistui:",
"Confirm Removal": "Varmista poistaminen",
"Unknown error": "Tuntematon virhe",
"Incorrect password": "Virheellinen salasana",
"This action is irreversible.": "Tätä toimintoa ei voi perua.",
"Device name": "Laitenimi",
"Device Name": "Laitenimi",
"Device key": "Laiteavain",
"In future this verification process will be more sophisticated.": "Tulevaisuudessa tämä varmennusprosessi tulee olemaan hienostuneempi.",
"Verify device": "Varmenna laite",
"I verify that the keys match": "Totean että avaimet vastaavat toisiaan",
"Unable to restore session": "Istunnon palautus epäonnistui",
"Continue anyway": "Jatka kuitenkin",
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s poisti huoneen nimen.",
"Changes to who can read history will only apply to future messages in this room": "Muutokset koskien ketkä voivat lukea historian koskevat vain uusia viestejä",
"<a>Click here</a> to join the discussion!": "<a>Paina tästä</a> liittyäksesi keskusteluun",
"%(count)s new messages|one": "%(count)s uusi viesti",
"%(count)s new messages|other": "%(count)s uutta viestiä",
"Curve25519 identity key": "Curve25519 tunnistusavain",
"Decrypt %(text)s": "Pura %(text)s",
"Devices will not yet be able to decrypt history from before they joined the room": "Laitteet eivät vielä pysty purkamaan viestejä ajalta ennen kun ne liittyivät huoneseen",
"Disable inline URL previews by default": "Ota oletusarvoisesti pois käytöstä URL esikatselut",
"Displays action": "Näyttää toiminnan",
"Don't send typing notifications": "Älä lähetä kirjoitusilmoituksia",
"End-to-end encryption is in beta and may not be reliable": "Päästä päähän salaus on vielä testausvaiheessa ja saattaa toimia epävarmasti",
"Error: Problem communicating with the given homeserver.": "Virhe: Ongelma yhteydenpidossa kotipalvelimeen.",
"Existing Call": "Käynnissä oleva puhelu",
"Failed to lookup current room": "Nykyisen huoneen löytäminen epäonnistui",
"Join as <voiceText>voice</voiceText> or <videoText>video</videoText>.": "Liity käyttäen <voiceText>ääntä</voiceText> tai <videoText>videota</videoText>.",
"%(targetName)s joined the room.": "%(targetName)s liittyi huoneeseen.",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s poisti käyttäjän %(targetName)s huoneesta.",
"%(targetName)s left the room.": "%(targetName)s poistui huoneesta.",
"Publish this room to the public in %(domain)s's room directory?": "Julkaise tämä huone domainin %(domain)s huoneluettelossa?",
"Missing room_id in request": "room_id puuttuu kyselystä",
"Missing user_id in request": "user_id puuttuu kyselystä",
"Must be viewing a room": "Pakko olla huoneessa",
"Never send encrypted messages to unverified devices from this device": "Älä koskaa lähetä salattuja viestejä varmentamattomiin laitteisiin tältä laitteelta",
"Never send encrypted messages to unverified devices in this room": "Älä koskaa lähetä salattuja viestejä varmentamattomiin laitteisiin tässä huoneessa",
"Never send encrypted messages to unverified devices in this room from this device": "Älä koskaa lähetä salattuja viestejä varmentamattomiin laitteisiin tässä huoneessa tältä laitteelta",
"New address (e.g. #foo:%(localDomain)s)": "Uusi osoite (esim. #foo:%(localDomain)s)",
"Press <StartChatButton> to start a chat with someone": "Paina <StartChatButton>",
"Revoke Moderator": "Poista moderaattorioikeudet",
"Refer a friend to Riot:": "Suosittele Riot ystävälle:",
"%(targetName)s rejected the invitation.": "%(targetName)s hylkäsi kutsun.",
"Remote addresses for this room:": "Tämän huoneen etäosoitteet:",
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s poisti näyttönimensä (%(oldDisplayName)s).",
"Report it": "Ilmoita siitä",
"restore": "palauta",
"Return to app": "Palaa ohjelmaan",
"Riot does not have permission to send you notifications - please check your browser settings": "Riotilla ei ole oikeuksia lähettää sinulle ilmoituksia. Ole hyvä ja tarkista selaimen asetukset",
"Riot was not given permission to send notifications - please try again": "Riotilla ei saannut oikeuksia lähettää ilmoituksia. Ole hyvä ja yritä uudelleen",
"Room %(roomId)s not visible": "Huone %(roomId)s ei ole näkyvissä",
"%(roomName)s does not exist.": "%(roomName)s ei ole olemassa.",
"%(roomName)s is not accessible at this time.": "%(roomName)s ei ole saatavilla tällä hetkellä.",
"Seen by %(userName)s at %(dateTime)s": "Käyttäjän %(userName)s näkemä %(dateTime)s",
"Send Reset Email": "Lähetä salasanan palautusviesti",
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s lähetti kuvan.",
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s lähetti kutsun käyttäjälle %(targetDisplayName)s liittyäkseen huoneeseen.",
"Server may be unavailable or overloaded": "Palvelin saattaa olla saavuttamattomissa tai ylikuormitettu",
"Show Text Formatting Toolbar": "Näytä tekstinmuotoilupalkki",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Näytä aikaleimat 12h muodossa (esim. 2:30pm)",
"Signed Out": "Uloskirjautunut",
"since the point in time of selecting this option": "tämän asetuksen valitsemisesta",
"Start authentication": "Aloita tunnistus",
"Success": "Onnistuminen",
"tag as %(tagName)s": "lisää tägi %(tagName)s",
"tag direct chat": "tägää suora viestittely",
"Tagged as: ": "Tägit: ",
"The default role for new room members is": "Huoneen uusien jäsenten oletusrooli on",
"The main address for this room is": "Tämän huoneen pääosoite on",
"The phone number entered looks invalid": "Syötetty puhelinnumero näyttää virheelliseltä",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Syöttämäsi allekirjoitusavain vastaa käyttäjän %(userId)s laitteelta %(deviceId)s saamaasi allekirjoitusavainta. Laite on merkitty varmennetuksi.",
"Unable to add email address": "Sähköpostiosoitteen lisääminen epäonnistui",
"Unable to remove contact information": "Yhteystietojen poistaminen epäonnistui",
"Unable to restore previous session": "Edellisen istunnon palauttaminen epäonnistui",
"Unable to verify email address.": "Sähköpostin varmentaminen epäonnistui.",
"Unbans user with given id": "Poistaa porttikiellon annetun ID:n omaavalta käyttäjältä",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s poisti porttikiellon käyttäjältä %(targetName)s.",
"Unable to capture screen": "Ruudun kaappaus epäonnistui",
"Unable to enable Notifications": "Ilmoitusten käyttöönotto epäonnistui",
"Unable to load device list": "Laitelistan lataaminen epäonnistui",
"Uploading %(filename)s and %(count)s others|other": "Ladataan %(filename)s ja %(count)s muuta",
"uploaded a file": "lattaa tiedosto",
"Upload Failed": "Lataus epäonnistui",
"Upload Files": "Lataa tiedostoja",
"Upload file": "Lataa tiedosto",
"Upload new:": "Lataa uusi:",
"Usage": "Käyttö",
"Use compact timeline layout": "Käytä kompaktia aikajanaa",
"Use with caution": "Käytä varoen",
"User ID": "Käyttäjätunniste",
"User Interface": "Käyttöliittymä",
"%(user)s is a": "%(user)s on",
"User name": "Käyttäjänimi",
"%(oneUser)sjoined %(repeats)s times": "%(oneUser)sliittyi %(repeats)s kertaa",
"%(severalUsers)sjoined": "%(severalUsers)sliittyivät",
"%(oneUser)sjoined": "%(oneUser)sliittyi",
"%(severalUsers)sleft %(repeats)s times": "%(severalUsers)spoistuivat %(repeats)s kertaa",
"%(oneUser)sleft %(repeats)s times": "%(oneUser)spoistui %(repeats)s kertaa",
"%(severalUsers)sleft": "%(severalUsers)sspoistuivat",
"%(oneUser)sleft": "%(oneUser)spoistui",
"%(severalUsers)sjoined and left %(repeats)s times": "%(severalUsers)sliittyivät ja poistuivat %(repeats)s kertaa",
"%(oneUser)sjoined and left %(repeats)s times": "%(oneUser)sliittyi ja poistui %(repeats)s kertaa",
"%(severalUsers)sjoined and left": "%(severalUsers)sliittyivät ja poistuivat",
"%(oneUser)sjoined and left": "%(oneUser)sliittyi ja poistui",
"%(severalUsers)sleft and rejoined %(repeats)s times": "%(severalUsers)spoistuivat ja liittyivät uudelleen %(repeats)s kertaa",
"%(oneUser)sleft and rejoined %(repeats)s times": "%(oneUser)spoistui ja liittyi uudelleen %(repeats)s kertaa",
"%(severalUsers)sleft and rejoined": "%(severalUsers)spoistuivat ja liittyivät uudelleen",
"%(oneUser)sleft and rejoined": "%(oneUser)spoistui ja liittyi uudelleen",
"%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)shylkäsivät kutsunsa %(repeats)s kertaa'",
"%(severalUsers)srejected their invitations": "%(severalUsers)shylkäsivät kutsunsa",
"%(oneUser)srejected their invitation": "%(oneUser)shylkäsi kutsunsa",
"%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)skutsut vedettiin takaisin %(repeats)s kertaa",
"%(oneUser)shad their invitation withdrawn %(repeats)s times": "%(oneUser)skutsu vedettiin takaisin %(repeats)s kertaa",
"%(severalUsers)shad their invitations withdrawn": "%(severalUsers)skutsut vedettiin takaisin",
"%(oneUser)shad their invitation withdrawn": "%(oneUser)skutsu vedettiin takaisin",
"were invited %(repeats)s times": "kutsuttiin %(repeats)s kertaa",
"was invited %(repeats)s times": "kutsuttiin %(repeats)s kertaa",
"were invited": "kutsuttiin",
"was invited": "kutsuttiin",
"were kicked %(repeats)s times": "poistettiin huoneesta %(repeats)s kertaa",
"was kicked %(repeats)s times": "poistettiin huoneesta %(repeats)s kertaa",
"were kicked": "poistettiin huoneesta",
"was kicked": "poistettiin huoneesta",
"%(severalUsers)schanged their name %(repeats)s times": "%(severalUsers)smuuttivat nimensä %(repeats)s kertaa",
"%(oneUser)schanged their name %(repeats)s times": "%(oneUser)smuutti nimensä %(repeats)s kertaa",
"%(severalUsers)schanged their name": "%(severalUsers)smuuttivat nimensä",
"%(oneUser)schanged their name": "%(oneUser)smuutti nimensä",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s asetti aiheeksi \"%(topic)s\".",
"Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Salasanan muuttaminen uudelleenalustaa myös päästä päähän-salausavaimet kaikilla laitteilla, jolloin vanhojen viestien lukeminen ei ole enään mahdollista, ellet ensin vie huoneavaimet ja tuo ne takaisin jälkeenpäin. Tämä tulee muuttumaan tulevaisuudessa.",
"Define the power level of a user": "Määritä käyttäjän oikeustaso",
"Failed to change power level": "Oikeustason muuttaminen epäonnistui",
"'%(alias)s' is not a valid format for an address": "'%(alias)s' ei ole oikean muotoinen osoitteelle",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' ei ole oikean muotoinen aliakselle",
"Once you've followed the link it contains, click below": "Klikkaa alla kun olet seuruannut sen sisältämää linkkiä",
"Otherwise, <a>click here</a> to send a bug report.": "Paina muutoin <a>tästä</a> lähettääksesi virheraportin.",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Ole hyvä ja tarkista sähköpostisi ja seuraa sen sisältämää linkkiä. Kun olet valmis, paina jatka.",
"Power level must be positive integer.": "Oikeustason pitää olla positiivinen kokonaisluku.",
"Press": "Paina",
"Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Salasanan uudelleenalustus uudelleenalustaa myös päästä päähän-salausavaimet kaikilla laitteilla, jolloin vanhojen viestien lukeminen ei ole enään mahdollista, ellet ensin vie huoneavaimet ja tuo ne takaisin jälkeenpäin. Tämä tulee muuttumaan tulevaisuudessa.",
"Server may be unavailable, overloaded, or search timed out :(": "Palvelin saattaa olla saavuttamattomissa, ylikuormitettu tai haku kesti liian kauan :(",
"Server may be unavailable, overloaded, or the file too big": "Palvelin saattaa olla saavuttamattomissa, ylikuormitettu, tai tiedosto on liian suuri",
"Server may be unavailable, overloaded, or you hit a bug.": "Palvelin saattaa olla saavuttamattomissa, ylikuormitettu tai olet törmännyt virheeseen.",
"Server unavailable, overloaded, or something else went wrong.": "Palvelin on saavuttamattomissa, ylikuormitettu tai jokin muu meni vikaan.",
"Sorry, this homeserver is using a login which is not recognised ": "Valitettavasti tämä palvelin käyttää kirjautumista joka ei ole tuettu ",
"The email address linked to your account must be entered.": "Sinun pitää syöttää tiliisi liitetty sähköpostiosoite.",
"The visibility of existing history will be unchanged": "Olemassaolevan viestihistorian näkyvyys ei muutu",
"To get started, please pick a username!": "Valitse käyttäjänimi aloittaaksesi!",
"To use it, just wait for autocomplete results to load and tab through them.": "Käyttääksesi sitä odota vain automaattitäydennyksiä ja selaa niiden läpi.",
"To reset your password, enter the email address linked to your account": "Syötä tiliisi liitetty sähköpostiosoite uudelleenalustaaksesi salasanasi",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Aikajanan tietty hetki yritettiin ladata, mutta sinulla ei ole oikeutta nähdä kyseistä viestiä.",
"Tried to load a specific point in this room's timeline, but was unable to find it.": "Aikajanan tietty hetki yritettiin ladata, mutta se ei löytynyt.",
"Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Ei ole mahdollista varmistaa että sähköposti johon tämä kutsu lähetettiin vastaa sinun tiliisi liittettyä osoitetta.",
"%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (oikeustaso %(powerLevelNumber)s)",
"Verification Pending": "Varmennus on vireillä",
"(could not connect media)": "(mediaa ei voitu yhdistää)",
"WARNING: Device already verified, but keys do NOT MATCH!": "VAROITUS: Laite on jo varmennettu mutta avaimet eivät vastaa toisiaan!",
"WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "VAROITUS: AVAIMEN VARMENNUS EPÄONNISTUI! Käyttäjän %(userId)s ja laitteen %(deviceId)s allekirjoitusavain on \"%(fprint)s\" joka ei vastaa annettua avainta \"%(fingerprint)s\". Tämä saattaa tarkoittaa että viestintäsi siepataan!",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s veti takaisin käyttäjän %(targetName)s kutsun.",
"You're not in any rooms yet! Press <CreateRoomButton> to make a room or <RoomDirectoryButton> to browse the directory": "Et ole vielä missään huoneessa! Paina <CreateRoomButton> luodaksesi huoneen tai <RoomDirectoryButton> selatakseski hakemistoa",
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Sinut on kirjattu ulos kaikista laitteista etkä enää saa Push-ilmoituksia. Jotta saisit jälleen ilmoituksia pitää sinun jälleen kirjautua sisään jokaisella laitteella",
"You may wish to login with a different account, or add this email to this account.": "Haluat ehkä kirjautua toiseen tiliin tai lisätä tämä sähköpostiosoite tähän tiliin.",
"Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Salasanan muuttaminen onnistui. Et saa enää push-ilmoituksia muilla laitteilla kunnes olet uudelleen kirjautunut sisään niillä",
"You seem to be in a call, are you sure you want to quit?": "Sinulla näyttää olevan puhelu kesken. Haluatko varmasti lopettaa?",
"You seem to be uploading files, are you sure you want to quit?": "Näytät lataavan tiedostoja. Oletko varma että haluat lopettaa?",
"Jan": "tammikuu",
"Feb": "helmikuu",
"Mar": "maaliskuu",
"Apr": "huhtikuu",
"May": "toukokuu",
"Jun": "kesäkuu",
"Jul": "heinäkuu",
"Aug": "elokuu",
"Sep": "syyskuu",
"Oct": "lokakuu",
"Nov": "marraskuu",
"Dec": "jolukuu",
"User names may only contain letters, numbers, dots, hyphens and underscores.": "Käyttäjänimet voivat sisältää vain kirjaimia, numeroita, pisteitä, viivoja ja alaviivoja.",
"To continue, please enter your password.": "Ole hyvä ja syötä salasanasi jatkaaksesi.",
"Verifies a user, device, and pubkey tuple": "Varmentaa käyttäjän, laitteen ja julkisen avaimen kolmikon",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" sisältä laitteita joita et ole nähnyt aikaisemmin.",
"Unknown devices": "Tuntemattomia laitteita",
"Unknown Address": "Tuntematon osoite",
"Unverify": "Kumoa varmennus",
"Verify...": "Varmenna...",
"ex. @bob:example.com": "esim. @bob:example.com",
"Add User": "Lisää käyttäjä",
"This Home Server would like to make sure you are not a robot": "Tämä kotipalvelin haluaa varmistaa että et ole robotti",
"A text message has been sent to": "Tekstiviesti on lähetetty numeroon",
"Please enter the code it contains:": "Ole hyvä ja syötä sen sisältämä koodi:",
"If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Jos et syötä sähköpostiosoitetta et voi uudelleenalustaa salasanasi myöhemmin. Oletko varma?",
"Default server": "Oletuspalvelin",
"Home server URL": "Kotipalvelimen URL",
"Identity server URL": "Identiteettipalvelimen URL",
"What does this mean?": "Mitä tämä tarkoittaa?",
"Error decrypting audio": "Äänen salauksen purku epäonnistui",
"Error decrypting image": "Kuvan salauksen purku epäonnistui",
"Image '%(Body)s' cannot be displayed.": "Kuva '%(Body)s' ei voida näyttää.",
"This image cannot be displayed.": "Tätä kuvaa ei voida näyttää.",
"Error decrypting video": "Videon salauksen purku epäonnistui",
"Add an Integration": "Lisää integraatio",
"Removed or unknown message type": "Poistettu tai tuntematon viestityyppi",
"URL Previews": "URL esikatselut",
"Drop file here to upload": "Pudota tiedosto tähän ladataksesi sen palvelimelle",
" (unsupported)": " (ei tuettu)",
"Updates": "Päivitykset",
"Check for update": "Tarkista päivitykset",
"Start chatting": "Aloita keskustelu",
"Start Chatting": "Aloita keskustelu",
"Click on the button below to start chatting!": "Paina nappia alla aloittaaksesi keskustelu!",
"Username available": "Käyttäjänimi saatavissa",
"Username not available": "Käyttäjänimi ei ole saatavissa",
"Something went wrong!": "Jokin meni vikaan!",
"This will be your account name on the <span></span> homeserver, or you can pick a <a>different server</a>.": "Tämä on tilisi <span></span> -kotipalvelimella, tai voit valita <a>toisen palvelimen</a>.",
"If you already have a Matrix account you can <a>log in</a> instead.": "Jos sinulla on jo Matrix-tili voit <a>kirjautua</a>.",
"Your browser does not support the required cryptography extensions": "Selaimesi ei tue vaadittuja kryptografisia laajennuksia",
"Not a valid Riot keyfile": "Virheellinen Riot avaintiedosto",
"Authentication check failed: incorrect password?": "Autentikointi epäonnistui: virheellinen salasana?",
"Do you want to set an email address?": "Haluatko asettaa sähköpostiosoitteen?",
"This will allow you to reset your password and receive notifications.": "Tämä sallii sinun uudelleenalustaa salasanasi ja vastaanottaa ilmoituksia.",
"To return to your account in future you need to set a password": "Päästäksesi uudestaan tiliisi myöhemmin sinun täytyy asettaa salasana",
"Skip": "Hyppää yli",
"Start verification": "Aloita varmennus",
"Share without verifying": "Jaa ilman varmennusta",
"Ignore request": "Jätä pyyntö huomioimatta",
"You added a new device '%(displayName)s', which is requesting encryption keys.": "Lisäsit laitteen '%(displayName)s' joka pyytää salausavaimia.",
"Your unverified device '%(displayName)s' is requesting encryption keys.": "Sinun varmentamaton laitteesi '%(displayName)s' pyytää salausavaimia.",
"Encryption key request": "Salausavainpyyntö",
"This Home server does not support groups": "Kotipalvelin ei tue ryhmiä",
"Loading device info...": "Ladataan laitetiedot...",
"Groups": "Ryhmät",
"Create a new group": "Luo uusi ryhmä",
"Create Group": "Luo ryhmä",
"Group Name": "Ryhmän nimi",
"Example": "Esimerkki",
"Create": "Luo",
"Group ID": "Ryhmän tunniste",
"+example:%(domain)s": "+esimerkki:%(domain)s",
"Group IDs must be of the form +localpart:%(domain)s": "Ryhmätunnisteiden pitää olla muotoa +paikallinen:%(domain)s",
"Room creation failed": "Huoneen luonti epäonnistui",
"You are a member of these groups:": "Olet seuraavien ryhmien jäsen:",
"Join an existing group": "Liity olemassaolevaan ryhmään",
"Edit Group": "Muokkaa ryhmää",
"Failed to upload image": "Kuvan lataaminen epäonnistui",
"Failed to update group": "Ryhmän päivitys epäonnistui",
"Robot check is currently unavailable on desktop - please use a <a>web browser</a>": "Robottitarkistus ei tällä hetkellä toimi työpöytäversiossa. Ole hyvä ja käytä <a>nettiselainta</a>",
"Add a widget": "Lisää sovelma",
"Cannot add any more widgets": "Lisää sovelmia ei voida enää lisätä",
"Delete widget": "Poista sovelma",
"Do you want to load widget from URL:": "Haluatko ladata sovelman URL-osoitteesta:",
"The maximum permitted number of widgets have already been added to this room.": "Maksimimäärä sovelmia on jo lisätty tähän huoneeseen.",
"Unable to create widget.": "Sovelman luominen epäonnistui.",
"You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Et voi kumota tätä toimintoa koska olet antamassa käyttäjälle saman oikeustason kuin sinullakin on.",
"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.": "Tämä prosessi mahdollistaa salatuissa huoneissa vastaanottamasi viestien salausavainten vieminen tiedostoon. Voit sitten myöhemmin tuoda ne toiseen Matrix-asiakasohjelmaan niin että myös se ohjema voi purkaa viestit.",
"The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "Tämän tiedoston avulla kuka tahansa pystyy purkamaan kaikki salatut viestit jotka sinä voit nähdä, joten sinun täytyy säilyttää se turvallisesti. Helpottaaksesi tätä sinun pitäisi syötää salasana alla jonka avulla tiedosto salataan. Käyttäen samaa salasanaa voit myöhemmin tuoda tiedot ohjelmaan.",
"This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Tämä prosessi mahdollistaa aiemmin tallennettujen salausavainten tuominen toiseen Matrix-asiakasohjelmaan. Tämän jälkeen voit purkaa kaikki salatut viestit jotka toinen asiakasohjelma pystyisi purkamaan."
}

File diff suppressed because it is too large Load diff

View file

@ -823,5 +823,9 @@
"%(widgetName)s widget added by %(senderName)s": "%(widgetName)s kisalkalmazást %(senderName)s hozzáadta",
"%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s kisalkalmazást %(senderName)s eltávolította",
"Robot check is currently unavailable on desktop - please use a <a>web browser</a>": "Robot ellenőrzés az asztali verzióban nem érhető el - használd a <a>web böngészőt</a>",
"%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s kisalkalmazást %(senderName)s módosította"
"%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s kisalkalmazást %(senderName)s módosította",
"%(weekDayName)s, %(monthName)s %(day)s": "%(weekDayName)s, %(monthName)s %(day)s",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s": "%(weekDayName)s, %(fullYear)s %(monthName)s %(day)s",
"Copied!": "Lemásolva!",
"Failed to copy": "Sikertelen másolás"
}

View file

@ -52,5 +52,11 @@
"Always show message timestamps": "Mostra sempre il timestamps dei messaggi",
"Authentication": "Autenticazione",
"Alias (optional)": "Alias (opzionale)",
"all room members": "Tutti i membri della stanza",
"all room members, from the point they are invited": "Tutti i membri della stanza, dal punto in cui sono stati/e invitati/e",
"all room members, from the point they joined": "tutti i membri della stanza, dal punto in cui si sono uniti",
"and": "e",
"Add a widget": "Aggiungi un widget",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Un messaggio di testo è stato inviato a +%(msisdn)s. Inserisci il codice di verifica che contiene",
"and": "e"
}

View file

@ -1 +1,3 @@
{}
{
"Room directory": "Romkatalog"
}

View file

@ -825,5 +825,9 @@
"%(widgetName)s widget added by %(senderName)s": "%(widgetName)s-widget toegevoegd door %(senderName)s",
"%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s-widget verwijderd door %(senderName)s",
"Robot check is currently unavailable on desktop - please use a <a>web browser</a>": "Robot-check is momenteel niet beschikbaar op de desktop - gebruik in plaats daarvan een <a>webbrowser</a>",
"%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s-widget aangepast door %(senderName)s"
"%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s-widget aangepast door %(senderName)s",
"%(weekDayName)s, %(monthName)s %(day)s": "%(weekDayName)s %(day)s %(monthName)s",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s": "%(weekDayName)s %(day)s %(monthName)s %(fullYear)s",
"Copied!": "Gekopieerd!",
"Failed to copy": "Kopiëren mislukt"
}

View file

@ -5,7 +5,7 @@
"Account": "Conta",
"Add email address": "Adicionar endereço de email",
"Add phone number": "Adicionar número de telefone",
"Admin": "Administrador/a",
"Admin": "Administrador",
"Advanced": "Avançado",
"Algorithm": "Algoritmo",
"an address": "um endereço",
@ -18,7 +18,7 @@
"Anyone who knows the room's link, including guests": "Qualquer pessoa que tenha o link da sala, incluindo visitantes",
"Are you sure you want to leave the room?": "Você tem certeza que deseja sair da sala?",
"Are you sure you want to reject the invitation?": "Você tem certeza que deseja rejeitar este convite?",
"Are you sure you want to upload the following files?": "Você tem certeza que deseja enviar os seguintes arquivos?",
"Are you sure you want to upload the following files?": "Tem a certeza que quer enviar os seguintes ficheiros?",
"banned": "baniu",
"Banned users": "Usuárias/os banidas/os",
"Bans user with given id": "Banir usuários com o identificador informado",
@ -77,14 +77,14 @@
"Error": "Erro",
"Event information": "Informação do evento",
"Export E2E room keys": "Exportar chaves ponta-a-ponta da sala",
"Failed to change password. Is your password correct?": "Não foi possível modificar a senha. A senha informada está correta?",
"Failed to change password. Is your password correct?": "Falha ao alterar a palavra-passe. A sua palavra-passe está correta?",
"Failed to forget room": "Não foi possível esquecer a sala",
"Failed to leave room": "Falha ao tentar deixar a sala",
"Failed to reject invitation": "Falha ao tentar rejeitar convite",
"Failed to send email: ": "Falha ao tentar enviar email",
"Failed to set avatar.": "Falha ao tentar definir foto do perfil.",
"Failed to unban": "Não foi possível desfazer o banimento",
"Failed to upload file": "Falha ao enviar o arquivo",
"Failed to upload file": "Falha ao enviar o ficheiro",
"favourite": "favoritar",
"Favourite": "Favorito",
"Favourites": "Favoritos",
@ -155,7 +155,7 @@
"Privacy warning": "Alerta sobre privacidade",
"Privileged Users": "Usuárias/os privilegiadas/os",
"Profile": "Perfil",
"Refer a friend to Riot:": "Indicar um amigo para participar",
"Refer a friend to Riot:": "Recomendar Riot a um amigo:",
"rejected": "recusou",
"rejected the invitation.": "rejeitou o convite.",
"Reject invitation": "Rejeitar convite",
@ -311,7 +311,7 @@
"%(senderName)s ended the call.": "%(senderName)s finalizou a chamada.",
"Existing Call": "Chamada em andamento",
"Failed to lookup current room": "Não foi possível buscar na sala atual",
"Failed to send email": "Não foi possível enviar email",
"Failed to send email": "Falha ao enviar email",
"Failed to send request.": "Não foi possível mandar requisição.",
"Failed to set up conference call": "Não foi possível montar a chamada de conferência",
"Failed to verify email address: make sure you clicked the link in the email": "Não foi possível verificar o endereço de email: verifique se você realmente clicou no link que está no seu email",
@ -415,7 +415,7 @@
"Friday": "Sexta-feira",
"Saturday": "Sábado",
"%(oneUser)schanged their avatar": "%(oneUser)salterou sua imagem pública",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Uma mensagem de texto foi enviada para +%(msisdn)s. Gentileza entrar com o código de verificação que contém",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Uma mensagem de texto foi enviada para +%(msisdn)s. Introduza o código de verificação nela contido",
"%(items)s and %(remaining)s others": "%(items)s e %(remaining)s outros",
"%(items)s and one other": "%(items)s e um outro",
"%(items)s and %(lastItem)s": "%(items)s e %(lastItem)s",
@ -442,7 +442,7 @@
"Devices": "Dispositivos",
"Direct chats": "Conversas pessoais",
"Disinvite": "Desconvidar",
"Don't send typing notifications": "Não enviar notificação de estar digitando",
"Don't send typing notifications": "Não enviar notificação de escrita",
"Download %(text)s": "Baixar %(text)s",
"Enable encryption": "Habilitar criptografia",
"Enter Code": "Entre com o código",
@ -515,7 +515,7 @@
"quote": "citação",
"bullet": "marcador de lista",
"numbullet": "marcador de numeração",
"%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)singressaram %(repeats)s vezes",
"%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)s entraram %(repeats)s vezes",
"%(oneUser)sjoined %(repeats)s times": "%(oneUser)singressou %(repeats)s vezes",
"%(severalUsers)sjoined": "%(severalUsers)singressaram",
"%(oneUser)sjoined": "%(oneUser)singressou",
@ -701,9 +701,9 @@
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s alterou a imagem da sala %(roomName)s",
"$senderDisplayName changed the room avatar to <img/>": "$senderDisplayName alterou a imagem da sala para <img/>",
"Missing Media Permissions, click here to request.": "Faltam permissões para uso de mídia no seu computador. Clique aqui para solicitá-las.",
"No Microphones detected": "Não foi detectado nenhum microfone",
"No Webcams detected": "Não foi detectada nenhuma Webcam",
"No media permissions": "Não há permissões de uso de vídeo/áudio no seu navegador",
"No Microphones detected": "Não foi detetado nenhum microfone",
"No Webcams detected": "Não foi detetada nenhuma Webcam",
"No media permissions": "Não há permissões para o uso de vídeo/áudio no seu navegador",
"You may need to manually permit Riot to access your microphone/webcam": "Você talvez precise autorizar manualmente que o Riot acesse seu microfone e webcam",
"Default Device": "Dispositivo padrão",
"Microphone": "Microfone",
@ -810,5 +810,88 @@
"Start chat": "Iniciar conversa",
"You already have existing direct chats with this user:": "Você já tem conversas pessoais com esta pessoa:",
"Accept": "Aceitar",
"%(roomName)s is not accessible at this time.": "%(roomName)s não está acessível neste momento."
"%(roomName)s is not accessible at this time.": "%(roomName)s não está acessível neste momento.",
"Add a widget": "Adicionar widget",
"Allow": "Permitir",
"Cannot add any more widgets": "Não é possível adicionar mais widgets",
"Changes colour scheme of current room": "Altera o esquema de cores da sala atual",
"Delete widget": "Apagar widget",
"Define the power level of a user": "Definir o nível de privilégios de um utilizador",
"Do you want to load widget from URL:": "Deseja carregar o widget a partir do URL:",
"Edit": "Editar",
"Enable automatic language detection for syntax highlighting": "Ativar deteção automática da linguagem para o destaque da sintaxe",
"Hide Apps": "Ocultar apps",
"Hide join/leave messages (invites/kicks/bans unaffected)": "Ocultar mensagens de entrada/saída (não afeta convites/expulsões/proibições)",
"Hide avatar and display name changes": "Ocultar mudanças de avatar e de nome público",
"Integrations Error": "Erro de integrações",
"Publish this room to the public in %(domain)s's room directory?": "Publicar esta sala ao público no diretório de salas de %(domain)s's?",
"Matrix Apps": "Apps Matrix",
"AM": "AM",
"PM": "PM",
"NOTE: Apps are not end-to-end encrypted": "NOTA: As apps não são cifradas ponta-a-ponta",
"Press <StartChatButton> to start a chat with someone": "Clique <StartChatButton> para iniciar uma conversa com alguém",
"Revoke widget access": "Revogar o acesso do wiget",
"Sets the room topic": "Define o assunto da sala",
"Show Apps": "Mostrar apps",
"The maximum permitted number of widgets have already been added to this room.": "O número máximo de widgets permitido já foi adicionado a esta sala.",
"To get started, please pick a username!": "Para começar, escolha um nome de utilizador!",
"Unable to create widget.": "Não foi possível criar o widget.",
"Unbans user with given id": "Retira ban ao utilizador através do seu id",
"(could not connect media)": "(não foi possível conectar-se ao media)",
"(no answer)": "(sem resposta)",
"(unknown failure: %(reason)s)": "(falha desconhecida: %(reason)s)",
"You are not in this room.": "Não se encontra nesta sala.",
"You do not have permission to do that in this room.": "Não tem permissão para fazer isso nesta sala.",
"You're not in any rooms yet! Press <CreateRoomButton> to make a room or <RoomDirectoryButton> to browse the directory": "Ainda não se encontra em nenhuma sala! Clique em <CreateRoomButton> para criar uma sala ou em <RoomDirectoryButton> para navegar o diretório de salas",
"%(weekDayName)s, %(monthName)s %(day)s": "%(weekDayName)s, %(day)s de %(monthName)s",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s": "%(weekDayName)s, %(day)s de %(monthName)s de %(fullYear)s",
"Copied!": "Copiado!",
"Failed to copy": "Falha ao copiar",
"Verifies a user, device, and pubkey tuple": "Verifica um utilizador, o dispositivo e o tuplo da chave pública",
"Updates": "Atualizações",
"Check for update": "Procurar atualizações",
"Your browser does not support the required cryptography extensions": "O seu browser não suporta as extensões de criptografia necessárias",
"Not a valid Riot keyfile": "Não é um ficheiro de chaves Riot válido",
"Authentication check failed: incorrect password?": "Erro de autenticação: palavra-passe incorreta?",
"Disable Peer-to-Peer for 1:1 calls": "Desativar ponto-a-ponto para chamadas 1:1",
"Do you want to set an email address?": "Deseja definir um endereço de e-mail?",
"This will allow you to reset your password and receive notifications.": "Isto irá permitir-lhe redefinir a sua palavra-passe e receber notificações.",
"To return to your account in future you need to set a password": "Para voltar à sua conta no futuro necessita de definir uma palavra-passe",
"Skip": "Saltar",
"Start verification": "Iniciar verificação",
"Share without verifying": "Partilhar sem verificar",
"Ignore request": "Ignorar pedido",
"You added a new device '%(displayName)s', which is requesting encryption keys.": "Adicionou um novo dispositivo '%(displayName)s', que está a pedir chaves de encriptação.",
"Your unverified device '%(displayName)s' is requesting encryption keys.": "O seu dispositivo não verificado '%(displayName)s' está a pedir chaves de encriptação.",
"Encryption key request": "Pedido de chave de encriptação",
"Autocomplete Delay (ms):": "Atraso de preenchimento automático (ms):",
"This Home server does not support groups": "Este servidor (home server) não suporta grupos",
"Loading device info...": "A carregar as informações do dispositivo...",
"Groups": "Grupos",
"Create a new group": "Criar um novo grupo",
"Create Group": "Criar grupo",
"Group Name": "Nome do grupo",
"Example": "Exemplo",
"Create": "Criar",
"Group ID": "ID do grupo",
"+example:%(domain)s": "+exemplo:%(domain)s",
"Group IDs must be of the form +localpart:%(domain)s": "IDs de grupo têm que ser no formato +localpart:%(domain)s",
"It is currently only possible to create groups on your own home server: use a group ID ending with %(domain)s": "Atualmente apenas é possível criar grupos no seu próprio servidor (home server): utilize um ID de grupo que termine com %(domain)s",
"Room creation failed": "Criação de sala falhou",
"You are a member of these groups:": "É um membro destes grupos:",
"Create a group to represent your community! Define a set of rooms and your own custom homepage to mark out your space in the Matrix universe.": "Crie um grupo para representar a sua comunidade! Defina um conjunto de salas e a sua própria página inicial personalizada para marcar o seu espaço no universo Matrix.",
"Join an existing group": "Juntar-se a um grupo existente",
"To join an existing group you'll have to know its group identifier; this will look something like <i>+example:matrix.org</i>.": "Para juntar-se a um grupo existente necessita de saber a identificação do grupo; isto será algo como <i>+exemplo:matrix.org</i>.",
"Featured Rooms:": "Salas em destaque:",
"Error whilst fetching joined groups": "Erro ao obter os seus grupos",
"Featured Users:": "Utilizadores em destaque:",
"Edit Group": "Editar grupo",
"Automatically replace plain text Emoji": "Substituir Emoji em texto automaticamente",
"Failed to upload image": "Falha ao carregar imagem",
"Failed to update group": "Falha ao atualizar grupo",
"Hide avatars in user and room mentions": "Ocultar avatares nas menções de utilizadores e salas",
"%(widgetName)s widget added by %(senderName)s": "Widget %(widgetName)s adicionado por %(senderName)s",
"%(widgetName)s widget removed by %(senderName)s": "Widget %(widgetName)s removido por %(senderName)s",
"%(widgetName)s widget modified by %(senderName)s": "Widget %(widgetName)s modificado por %(senderName)s",
"Robot check is currently unavailable on desktop - please use a <a>web browser</a>": "A verificação através de robot está atualmente indisponível na versão desktop - utilize um <a>navegador web</a>"
}

View file

@ -738,7 +738,7 @@
"<a>Resend all</a> or <a>cancel all</a> now. You can also select individual messages to resend or cancel.": "<a>Reenviar todas</a> ou <a>cancelar todas</a> agora. Você também pode selecionar mensagens individuais que queira reenviar ou cancelar.",
"Create new room": "Criar nova sala",
"Room directory": "Lista pública de salas",
"Start chat": "Iniciar conversa pessoal",
"Start chat": "Iniciar conversa",
"New Password": "Nova senha",
"Start chatting": "Iniciar a conversa",
"Start Chatting": "Iniciar a conversa",

View file

@ -3,7 +3,7 @@
"accepted an invitation": "принял приглашение",
"accepted the invitation for": "принял приглашение на",
"Account": "Аккаунт",
"Add email address": "Добавить адрес электронной почты",
"Add email address": "Добавить адрес email",
"Add phone number": "Добавить номер телефона",
"Admin": "Администратор",
"Advanced": "Дополнительно",
@ -74,7 +74,7 @@
"Failed to forget room": "Не удалось забыть комнату",
"Failed to leave room": "Не удалось выйти из комнаты",
"Failed to reject invitation": "Не удалось отклонить приглашение",
"Failed to send email": "Ошибка отправки электронной почты",
"Failed to send email": "Ошибка отправки email",
"Failed to unban": "Не удалось разблокировать",
"Failed to upload file": "Не удалось отправить файл",
"Favourite": "Избранное",
@ -90,9 +90,9 @@
"Historical": "Архив",
"Homeserver is": "Домашний сервер это",
"Identity Server is": "Сервер идентификации это",
"I have verified my email address": "Я подтвердил свой адрес электронной почты",
"Import E2E room keys": "Импортировать ключи сквозного шифрования комнаты",
"Invalid Email Address": "Недопустимый адрес электронной почты",
"I have verified my email address": "Я подтвердил свой адрес email",
"Import E2E room keys": "Импорт ключей сквозного шифрования",
"Invalid Email Address": "Недопустимый адрес email",
"invited": "invited",
"Invite new room members": "Пригласить новых участников в комнату",
"Invites": "Приглашает",
@ -156,9 +156,9 @@
"tag as": "tag as",
"These are experimental features that may break in unexpected ways. Use with caution": "These are experimental features that may break in unexpected ways. Use with caution",
"turned on end-to-end encryption (algorithm": "turned on end-to-end encryption (algorithm",
"Unable to add email address": "Не удается добавить адрес электронной почты",
"Unable to add email address": "Не удается добавить адрес email",
"Unable to remove contact information": "Не удалось удалить контактную информацию",
"Unable to verify email address.": "Не удалось проверить адрес электронной почты.",
"Unable to verify email address.": "Не удалось проверить адрес email.",
"Unban": "Разблокировать",
"Unencrypted room": "Незашифрованная комната",
"unencrypted": "без шифрования",
@ -229,7 +229,7 @@
"Failed to lookup current room": "Не удалось выполнить поиск текущий комнаты",
"Failed to send request.": "Не удалось отправить запрос.",
"Failed to set up conference call": "Не удалось настроить групповой вызов",
"Failed to verify email address: make sure you clicked the link in the email": "Не удалось проверить адрес электронной почты: убедитесь, что вы перешли по ссылке в письме",
"Failed to verify email address: make sure you clicked the link in the email": "Не удалось проверить адрес email: убедитесь, что вы перешли по ссылке в письме",
"Failure to create room": "Не удалось создать комнату",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s с %(fromPowerLevel)s на %(toPowerLevel)s",
"click to reveal": "нажмите для открытия",
@ -253,12 +253,12 @@
"Connectivity to the server has been lost.": "Связь с сервером потеряна.",
"Sent messages will be stored until your connection has returned.": "Отправленные сообщения будут сохранены, пока соединение не восстановится.",
"There are no visible files in this room": "В этой комнате нет видимых файлов",
"This doesn't look like a valid phone number.": "Это не похоже на допустимый телефонный номер.",
"This doesn't look like a valid phone number.": "Недопустимый номер телефона.",
"Missing password.": "Отсутствует пароль.",
"Set a display name:": "Введите отображаемое имя:",
"Passwords don't match.": "Пароли не совпадают.",
"Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Пароль слишком короткий (мин. %(MIN_PASSWORD_LENGTH)s).",
"This doesn't look like a valid email address.": "Это не похоже на допустимый адрес электронной почты.",
"This doesn't look like a valid email address.": "Это не похоже на допустимый адрес email.",
"This server does not support authentication with a phone number.": "Этот сервер не поддерживает аутентификацию с помощью номера телефона.",
"User names may only contain letters, numbers, dots, hyphens and underscores.": "Имена пользователей могут содержать только буквы, цифры, точки, дефисы и символы подчеркивания.",
"An unknown error occurred.": "Произошла неизвестная ошибка.",
@ -305,7 +305,7 @@
"Thu": "Чт",
"Fri": "Пт",
"Sat": "Сб",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Ваш адрес электронной почты, кажется, не связан с Matrix ID на этом домашнем сервере.",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Ваш адрес email, кажется, не связан с Matrix ID на этом домашнем сервере.",
"to start a chat with someone": "чтобы начать чат с кем-то",
"to tag direct chat": "отметить прямой чат",
"To use it, just wait for autocomplete results to load and tab through them.": "Для того, чтобы использовать эту функцию, просто подождите автозаполнения результатов, а затем используйте клавишу TAB для прокрутки.",
@ -445,7 +445,7 @@
"This room has no local addresses": "В этой комнате нет локальных адресов",
"This room is not recognised.": "Эта комната не опознана.",
"These are experimental features that may break in unexpected ways": "Это экспериментальные функции, которые могут себя вести неожиданным образом",
"This doesn't appear to be a valid email address": "Похоже, это недействительный адрес электронной почты",
"This doesn't appear to be a valid email address": "Похоже, это недействительный адрес email",
"This is a preview of this room. Room interactions have been disabled": "Это предпросмотр комнаты. Взаимодействие с комнатой отключено",
"This phone number is already in use": "Этот номер телефона уже используется",
"This room's internal ID is": "Внутренний ID этой комнаты",
@ -670,12 +670,12 @@
"Sign in with CAS": "Войти с помощью CAS",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Вы можете использовать настраиваемые параметры сервера для входа на другие серверы Matrix, указав другой URL-адрес домашнего сервера.",
"This allows you to use this app with an existing Matrix account on a different home server.": "Это позволяет использовать это приложение с существующей учетной записью Matrix на другом домашнем сервере.",
"You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Вы также можете установить другой сервер идентификации, но это, как правило, будет препятствовать взаимодействию с пользователями на основе адреса электронной почты.",
"You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Вы также можете установить другой сервер идентификации, но это, как правило, будет препятствовать взаимодействию с пользователями на основе адреса email.",
"Please check your email to continue registration.": "Проверьте электронную почту, чтобы продолжить регистрацию.",
"Token incorrect": "Неверный токен",
"A text message has been sent to": "Текстовое сообщение отправлено",
"Please enter the code it contains:": "Введите полученный код:",
"If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Если адрес электронной почты не указан, сброс пароля будет невозможным. Уверены?",
"If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Если адрес email не указан, сброс пароля будет невозможным. Уверены?",
"You are registering with %(SelectedTeamName)s": "Вы регистрируетесь на %(SelectedTeamName)s",
"Default server": "Сервер по умолчанию",
"Custom server": "Пользовательский сервер",
@ -776,7 +776,7 @@
"Seen by %(userName)s at %(dateTime)s": "Просмотрено %(userName)s в %(dateTime)s",
"Send anyway": "Отправить в любом случае",
"Show Text Formatting Toolbar": "Показать панель инструментов форматирования текста",
"This invitation was sent to an email address which is not associated with this account:": "Это приглашение было отправлено на адрес электронной почты, не связанный с этой учетной записью:",
"This invitation was sent to an email address which is not associated with this account:": "Это приглашение было отправлено на адрес email, не связанный с этой учетной записью:",
"To link to a room it must have <a>an address</a>.": "Чтобы связаться с комнатой, она должна иметь <a> адрес</a>.",
"Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Не удалось установить соответствует ли адрес, по которому этому приглашение было послано, вашей учетной записи.",
"Undecryptable": "Невозможно расшифровать",
@ -793,7 +793,7 @@
"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.": "Не удается подключиться к домашнему серверу - проверьте подключение, убедитесь, что ваш <a>SSL-сертификат домашнего сервера</a> является доверенным и что расширение браузера не блокирует запросы.",
"You have been banned from %(roomName)s by %(userName)s.": "%(userName)s заблокировал вас в %(roomName)s.",
"You have been kicked from %(roomName)s by %(userName)s.": "%(userName)s выгнал вас из %(roomName)s.",
"You may wish to login with a different account, or add this email to this account.": "При желании вы можете войти в систему с другой учетной записью или добавить этот адрес электронной почты в эту учетную запись.",
"You may wish to login with a different account, or add this email to this account.": "При желании вы можете войти в систему с другой учетной записью или добавить этот адрес email в эту учетную запись.",
"Your home server does not support device management.": "Ваш домашний сервер не поддерживает управление устройствами.",
"(could not connect media)": "(подключение к СМИ не может быть установлено)",
"(no answer)": "(нет ответа)",
@ -802,7 +802,7 @@
"Not a valid Riot keyfile": "Недействительный файл ключа Riot",
"Your browser does not support the required cryptography extensions": "Ваш браузер не поддерживает требуемые криптографические расширения",
"Authentication check failed: incorrect password?": "Ошибка аутентификации: неправильный пароль?",
"Do you want to set an email address?": "Хотите указать адрес электронной почты?",
"Do you want to set an email address?": "Хотите указать адрес email?",
"This will allow you to reset your password and receive notifications.": "Это позволит при необходимости сбросить пароль и получать уведомления.",
"Press <StartChatButton> to start a chat with someone": "Нажмите <StartChatButton> для начала чата с кем-либо",
"You're not in any rooms yet! Press <CreateRoomButton> to make a room or <RoomDirectoryButton> to browse the directory": "Вы еще не вошли ни в одну из комнат! Нажмите <CreateRoomButton>, чтобы создать комнату или <RoomDirectoryButton> для просмотра каталога",

View file

@ -417,5 +417,28 @@
"Enable automatic language detection for syntax highlighting": "Aktivera automatisk språkdetektering för syntaxmarkering",
"Hide Apps": "Dölj Appar",
"Hide avatar and display name changes": "Dölj avatar och visningsnamns ändringar",
"Integrations Error": "Integrationsfel"
"Integrations Error": "Integrationsfel",
"Publish this room to the public in %(domain)s's room directory?": "Publicera rummet i den offentliga rumskatalogen på %(domain)s?",
"Matrix Apps": "Matrix-appar",
"AM": "a.m.",
"PM": "p.m.",
"NOTE: Apps are not end-to-end encrypted": "OBS: Apparna är inte end-to-end-krypterade",
"Revoke widget access": "Upphäv widget-åtkomst",
"Show Apps": "Visa appar",
"Submit": "Lämna",
"tag as %(tagName)s": "tagga som %(tagName)s",
"tag direct chat": "tagga som direkt-chatt",
"Tagged as: ": "Taggad som: ",
"The default role for new room members is": "Standardrollen för nya medlemmar är",
"The main address for this room is": "Huvudadressen för det här rummet är",
"The maximum permitted number of widgets have already been added to this room.": "Den största tillåtna mängden widgetar har redan tillsats till rummet.",
"The phone number entered looks invalid": "Telefonnumret ser felaktigt ut",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Signeringsnyckeln du angav matchar signeringsnyckeln som mottogs från enheten %(deviceId)s som tillhör %(userId)s. Enheten är markerad som verifierad.",
"This action cannot be performed by a guest user. Please register to be able to do this.": "Den här handlingen kan inte utföras av en gästanvändare. Registrera dig för att kunna göra det här.",
"This email address is already in use": "Den här epostadressen är redan i bruk",
"This email address was not found": "Den här epostadressen fanns inte",
"%(actionVerb)s this person?": "%(actionVerb)s den här personen?",
"The email address linked to your account must be entered.": "Epostadressen som är kopplad till ditt konto måste anges.",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "Filen '%(fileName)s' överskrider serverns största tillåtna filstorlek",
"The file '%(fileName)s' failed to upload": "Filen '%(fileName)s' kunde inte laddas upp"
}

View file

@ -441,7 +441,7 @@
"This allows you to use this app with an existing Matrix account on a different home server.": "ทั้งนี่เพื่อให้คุณสามารถใช้ Riot กับบัญชี Matrix ที่มีอยู่แล้วบนเซิร์ฟเวอร์บ้านอื่น ๆ ได้",
"You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "คุณอาจเลือกเซิร์ฟเวอร์ระบุตัวตนเองด้วยก็ได้ แต่คุณจะไม่สามารถเชิญผู้ใช้อื่นด้วยที่อยู่อีเมล หรือรับคำเชิญจากผู้ใช้อื่นทางที่อยู่อีเมลได้",
"Default server": "เซิร์ฟเวอร์เริ่มต้น",
"Custom server": "เซิร์ฟเวอร์ที่กำหนดเอง",
"Custom server": "กำหนดเซิร์ฟเวอร์เอง",
"Home server URL": "URL เซิร์ฟเวอร์บ้าน",
"Identity server URL": "URL เซิร์ฟเวอร์ระบุตัวตน",
"%(severalUsers)sleft %(repeats)s times": "%(severalUsers)sออกจากห้อง %(repeats)s ครั้ง",
@ -503,7 +503,7 @@
"Verified": "ตรวจสอบแล้ว",
"You are already in a call.": "คุณอยู่ในสายแล้ว",
"You cannot place a call with yourself.": "คุณไม่สามารถโทรหาตัวเองได้",
"Unverify": "ถอนการตรวสอบ",
"Unverify": "ถอนการตรวสอบ",
"Verify...": "ตรวจสอบ...",
"What does this mean?": "นี่แปลว่าอะไร?",
"Error decrypting audio": "เกิดข้อผิดพลาดในการถอดรหัสเสียง",

View file

@ -71,5 +71,42 @@
"%(names)s and one other are typing": "%(names)s та інші пишуть",
"%(names)s and %(count)s others are typing": "%(names)s та %(count)s інших пишуть",
"An email has been sent to": "Лист було надіслано",
"A new password must be entered.": "Має бути введений новий пароль."
"A new password must be entered.": "Має бути введений новий пароль.",
"Add a widget": "Добавити віджет",
"Allow": "Принюти",
"%(senderName)s answered the call.": "%(senderName)s відповіла на дзвінок.",
"anyone": "Будь-який",
"An error has occurred.": "Трапилась помилка.",
"Anyone": "Кожний",
"Anyone who knows the room's link, apart from guests": "Кожний, хто знає посилання на кімнату, окрім гостей",
"Anyone who knows the room's link, including guests": "Кожний, хто знає посилання на кімнату, включно гостей",
"Are you sure?": "Ви впевнені?",
"Are you sure you want to leave the room '%(roomName)s'?": "Ви впевнені, що хочете покинути '%(roomName)s'?",
"Are you sure you want to reject the invitation?": "Ви впевнені, що ви хочете відхилити запрошення?",
"Are you sure you want to upload the following files?": "Ви впевнені, що ви хочете відправити наступний файл?",
"Attachment": "Прикріплення",
"Autoplay GIFs and videos": "Автовідтворення GIF і відео",
"%(senderName)s banned %(targetName)s.": "%(senderName)s заблокував(ла) %(targetName)s.",
"Ban": "Заблокувати",
"Banned users": "Заблоковані користувачі",
"Bans user with given id": "Блокує користувача з заданим ID",
"Blacklisted": "В чорному списку",
"Bug Report": "Звіт про помилку",
"Bulk Options": "Групові параметри",
"Call Timeout": "Час очікування виклика",
"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.": "Не вдається підключитись до домашнього серверу - перевірте підключення, переконайтесь, що ваш <a>SSL-сертифікат домашнього сервера</a> є довіреним і що розширення браузера не блокує запити.",
"Can't load user settings": "Неможливо завантажити настройки користувача",
"Cannot add any more widgets": "Неможливо додати більше віджетів",
"Change Password": "Поміняти пароль",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s змінено з %(oldDisplayName)s на %(displayName)s.",
"%(senderName)s changed their profile picture.": "%(senderName)s змінив зображення профіля.",
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s змінив(ла) рівень доступу для %(powerLevelDiffText)s.",
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s змінив(ла) назву кімнати на %(roomName)s.",
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s видалив ім'я кімнати.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s змінив тему на %(topic)s.",
"Email": "е-почта",
"Email address": "Адреса е-почти",
"Email address (optional)": "Адреса е-почти (не обов'язково)",
"Email, name or matrix ID": "Е-почта, ім'я або matrix ID",
"Failed to send email": "Помилка відправки е-почти"
}

View file

@ -31,7 +31,7 @@
"Encrypted room": "加密聊天室",
"%(senderName)s ended the call.": "%(senderName)s 结束了通话。.",
"End-to-end encryption information": "端到端加密信息",
"End-to-end encryption is in beta and may not be reliable": "端到端加密现为测试版,不一定可靠",
"End-to-end encryption is in beta and may not be reliable": "端到端加密现为 beta 版,不一定可靠",
"Enter Code": "输入代码",
"Error": "错误",
"Error decrypting attachment": "解密附件时出错",
@ -81,7 +81,7 @@
"Homeserver is": "主服务器是",
"Identity Server is": "身份认证服务器是",
"I have verified my email address": "我已经验证了我的邮箱地址",
"Import E2E room keys": "导入聊天室端端加密密钥",
"Import E2E room keys": "导入聊天室端端加密密钥",
"Incorrect verification code": "验证码错误",
"Interface Language": "界面语言",
"Invalid alias format": "别名格式错误",
@ -225,7 +225,7 @@
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s 把话题修改为 “%(topic)s”。",
"Changes to who can read history will only apply to future messages in this room": "修改阅读历史的权限仅对此聊天室以后的消息有效",
"Changes your display nickname": "修改昵称",
"Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "目前,修改密码会导致所有设备上的端端密钥被重置,使得加密的聊天记录不再可读。除非你事先导出聊天室密钥,修改密码后再导入。这个问题未来会改善。",
"Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "目前,修改密码会导致所有设备上的端端密钥被重置,使得加密的聊天记录不再可读。除非你事先导出聊天室密钥,修改密码后再导入。这个问题未来会改善。",
"Clear Cache and Reload": "清除缓存并刷新",
"Clear Cache": "清除缓存",
"<a>Click here</a> to join the discussion!": "<a>点此</a> 加入讨论!",
@ -280,7 +280,7 @@
"Invites user with given id to current room": "邀请指定 ID 的用户加入当前聊天室",
"'%(alias)s' is not a valid format for an address": "'%(alias)s' 不是一个合法的电子邮件地址格式",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' 不是一个合法的昵称格式",
"%(displayName)s is typing": "%(displayName)s 正在输入",
"%(displayName)s is typing": "%(displayName)s 正在打字",
"Sign in with": "第三方登录",
"Message not sent due to unknown devices being present": "消息未发送,因为有未知的设备存在",
"Missing room_id in request": "请求中没有 room_id",
@ -546,7 +546,7 @@
"%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s 设定历史浏览功能为 未知的 (%(visibility)s).",
"AM": "上午",
"PM": "下午",
"NOTE: Apps are not end-to-end encrypted": "提示APP不支持端端加密",
"NOTE: Apps are not end-to-end encrypted": "提示APP不支持端端加密",
"People": "联系人",
"Profile": "个人配置",
"Public Chat": "公开的",
@ -671,5 +671,82 @@
"Please select the destination room for this message": "请选择这条消息的目标聊天室",
"Start automatically after system login": "在系统登录后自动启动",
"Analytics": "分析",
"Reject all %(invitedRooms)s invites": "拒绝所有 %(invitedRooms)s 邀请"
"Reject all %(invitedRooms)s invites": "拒绝所有 %(invitedRooms)s 邀请",
"You may wish to login with a different account, or add this email to this account.": "你可能希望用另外一个账户登录,或者添加这个电子邮件到这个账户上。",
"Sun": "星期日",
"Mon": "星期一",
"Tue": "星期二",
"Wed": "星期三",
"Thu": "星期四",
"Fri": "星期五",
"Sat": "星期六",
"Jan": "一月",
"Feb": "二月",
"Mar": "三月",
"Apr": "四月",
"May": "五月",
"Jun": "六月",
"Jul": "七月",
"Aug": "八月",
"Sep": "九月",
"Oct": "十月",
"Nov": "十一月",
"Dec": "十二月",
"%(severalUsers)sjoined and left %(repeats)s times": "%(severalUsers)s 加入并离开了 %(repeats)s 次",
"were unbanned %(repeats)s times": "被解封 %(repeats)s 次",
"was unbanned %(repeats)s times": "被解封 %(repeats)s 次",
"were unbanned": "被解封",
"was unbanned": "被解封",
"were kicked %(repeats)s times": "被踢出 %(repeats)s 次",
"was kicked %(repeats)s times": "被踢出 %(repeats)s 次",
"were kicked": "被踢出",
"was kicked": "被踢出",
"Desktop specific": "桌面特有的",
"You must join the room to see its files": "你必须加入聊天室以看到它的文件",
"Failed to invite the following users to the %(roomName)s room:": "邀请以下用户到 %(roomName)s 聊天室失败:",
"Confirm Removal": "确认移除",
"This will make your account permanently unusable. You will not be able to re-register the same user ID.": "这会让你的账户永远不可用。你无法重新注册同一个用户 ID.",
"Verifies a user, device, and pubkey tuple": "验证一个用户、设备和密钥元组",
"We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "我们在尝试恢复你之前的会话时遇到了一个错误。如果你继续,你将需要重新登录,加密的聊天历史将会不可读。",
"Unknown devices": "未知设备",
"Unknown Address": "未知地址",
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s 删除了他们的昵称 (%(oldDisplayName)s).",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "你提供的签名密钥和你从 %(userId)s 的设备 (deviceId)s 收到的签名密钥匹配。设备被标记为已验证。",
"These are experimental features that may break in unexpected ways": "这些是可能以意外的方式坏掉的实验性的特性",
"The visibility of existing history will be unchanged": "现有历史记录的可见性不会被改变",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s 打开了端到端加密 (算法 %(algorithm)s).",
"Unable to remove contact information": "无法移除联系人信息",
"<a>Resend all</a> or <a>cancel all</a> now. You can also select individual messages to resend or cancel.": "现在 <a>重发全部</a> 或者 <a>取消全部</a>。你也可以选择重发或取消单独的消息。",
"were invited %(repeats)s times": "被邀请 %(repeats)s 次",
"was invited %(repeats)s times": "被邀请 %(repeats)s 次",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot 收集匿名的分析数据来允许我们改善这个应用。",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" 包含你以前没见过的设备。",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "你可以使用自定义的服务器选项来通过指定一个不同的主服务器 URL 来登录其他 Matrix 服务器。",
"This allows you to use this app with an existing Matrix account on a different home server.": "这允许你用一个已有在不同主服务器的 Matrix 账户使用这个应用。",
"Please check your email to continue registration.": "请查看你的电子邮件以继续注册。",
"If you don't specify an email address, you won't be able to reset your password. Are you sure?": "如果你不指定一个电子邮箱地址,你将不能重置你的密码。你确定吗?",
"Home server URL": "主服务器 URL",
"Identity server URL": "身份服务器 URL",
"What does this mean?": "这是什么意思?",
"Image '%(Body)s' cannot be displayed.": "图像 '%(Body)s' 无法显示。",
"This image cannot be displayed.": "图像无法显示。",
"Add an Integration": "添加一个集成",
"Removed or unknown message type": "被移除或未知的消息类型",
"Disable URL previews by default for participants in this room": "对这个聊天室的参与者默认禁用 URL 预览",
"Enable URL previews for this room (affects only you)": "在这个聊天室启用 URL 预览(只影响你)",
"Ongoing conference call%(supportedText)s.": "正在进行的会议通话 %(supportedText)s.",
"$senderDisplayName changed the room avatar to <img/>": "$senderDisplayName 把聊天室的头像改为了 <img/>",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s 修改了 %(roomName)s 的头像",
"This will be your account name on the <span></span> homeserver, or you can pick a <a>different server</a>.": "这将会成为你在 <span></span> 主服务器上的账户名,或者你可以选择一个 <a>不同的服务器</a>。",
"Your browser does not support the required cryptography extensions": "你的浏览器不支持所需的密码学扩展",
"Authentication check failed: incorrect password?": "身份验证失败:密码错误?",
"This will allow you to reset your password and receive notifications.": "这将允许你重置你的密码和接收通知。",
"Share without verifying": "不验证就分享",
"You added a new device '%(displayName)s', which is requesting encryption keys.": "你添加了一个新的设备 '%(displayName)s',它正在请求加密密钥。",
"Your unverified device '%(displayName)s' is requesting encryption keys.": "你的未验证的设备 '%(displayName)s' 正在请求加密密钥。",
"Encryption key request": "加密密钥请求",
"Autocomplete Delay (ms):": "自动完成延迟(毫秒):",
"%(widgetName)s widget added by %(senderName)s": "%(widgetName)s 小组建被 %(senderName)s 添加",
"%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s 小组建被 %(senderName)s 移除",
"%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s 小组建被 %(senderName)s 修改"
}

View file

@ -830,5 +830,7 @@
"Robot check is currently unavailable on desktop - please use a <a>web browser</a>": "機器人檢查目前在桌面端不可用 ── 請使用<a>網路瀏覽器</a>",
"%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s 小工具已被 %(senderName)s 修改",
"%(weekDayName)s, %(monthName)s %(day)s": "%(monthName)s%(day)s %(weekDayName)s",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s": "%(fullYear)s %(monthName)s %(day)s %(weekDayName)s"
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s": "%(fullYear)s %(monthName)s %(day)s %(weekDayName)s",
"Copied!": "已複製!",
"Failed to copy": "複製失敗"
}