Merge remote-tracking branch 'origin/develop' into dbkr/group_userlist

This commit is contained in:
David Baker 2017-08-29 13:29:55 +01:00
commit d86fe0df6e
21 changed files with 585 additions and 143 deletions

View File

@ -1,3 +1,76 @@
Changes in [0.10.2](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.10.2) (2017-08-24)
=====================================================================================================
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.10.1...v0.10.2)
* Force update on timelinepanel when event decrypted
[\#1334](https://github.com/matrix-org/matrix-react-sdk/pull/1334)
* Dispatch incoming_call synchronously
[\#1337](https://github.com/matrix-org/matrix-react-sdk/pull/1337)
* Fix React crying on machines without internet due to return undefined
[\#1335](https://github.com/matrix-org/matrix-react-sdk/pull/1335)
* Catch the promise rejection if scalar fails
[\#1333](https://github.com/matrix-org/matrix-react-sdk/pull/1333)
* Update from Weblate.
[\#1329](https://github.com/matrix-org/matrix-react-sdk/pull/1329)
Changes in [0.10.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.10.1) (2017-08-23)
=====================================================================================================
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.10.1-rc.1...v0.10.1)
* [No changes]
Changes in [0.10.1-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.10.1-rc.1) (2017-08-22)
===============================================================================================================
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.10.0-rc.2...v0.10.1-rc.1)
* Matthew/multiple widgets
[\#1327](https://github.com/matrix-org/matrix-react-sdk/pull/1327)
* Fix proptypes on UserPickerDialog
[\#1326](https://github.com/matrix-org/matrix-react-sdk/pull/1326)
* AppsDrawer: Remove unnecessary bind
[\#1325](https://github.com/matrix-org/matrix-react-sdk/pull/1325)
* Position add app widget link
[\#1322](https://github.com/matrix-org/matrix-react-sdk/pull/1322)
* Remove app tile beta tag.
[\#1323](https://github.com/matrix-org/matrix-react-sdk/pull/1323)
* Add missing translation.
[\#1324](https://github.com/matrix-org/matrix-react-sdk/pull/1324)
* Note that apps are not E2EE
[\#1319](https://github.com/matrix-org/matrix-react-sdk/pull/1319)
* Only render appTile body (including warnings) if drawer shown.
[\#1321](https://github.com/matrix-org/matrix-react-sdk/pull/1321)
* Timeline improvements
[\#1320](https://github.com/matrix-org/matrix-react-sdk/pull/1320)
* Add a space between widget name and "widget" in widget event tiles
[\#1318](https://github.com/matrix-org/matrix-react-sdk/pull/1318)
* Move manage integrations button from settings page to room header as a
stand-alone component
[\#1286](https://github.com/matrix-org/matrix-react-sdk/pull/1286)
* Don't apply case logic to app names
[\#1316](https://github.com/matrix-org/matrix-react-sdk/pull/1316)
* Stop integ manager opening on every room switch
[\#1315](https://github.com/matrix-org/matrix-react-sdk/pull/1315)
* Add behaviour to toggle app draw on app tile header click
[\#1313](https://github.com/matrix-org/matrix-react-sdk/pull/1313)
* Change OOO so that MELS generation will continue over hidden events
[\#1308](https://github.com/matrix-org/matrix-react-sdk/pull/1308)
* Implement TextualEvent tiles for im.vector.modular.widgets
[\#1312](https://github.com/matrix-org/matrix-react-sdk/pull/1312)
* Don't show widget security warning to the person that added it to the room
[\#1314](https://github.com/matrix-org/matrix-react-sdk/pull/1314)
* remove unused strings introduced by string change
[\#1311](https://github.com/matrix-org/matrix-react-sdk/pull/1311)
* hotfix bad fn signature regression
[\#1310](https://github.com/matrix-org/matrix-react-sdk/pull/1310)
* Show a dialog if the maximum number of widgets allowed has been reached.
[\#1291](https://github.com/matrix-org/matrix-react-sdk/pull/1291)
* Fix Robot translation
[\#1309](https://github.com/matrix-org/matrix-react-sdk/pull/1309)
* Refactor ChatInviteDialog to be UserPickerDialog
[\#1300](https://github.com/matrix-org/matrix-react-sdk/pull/1300)
* Update Link to Translation status
[\#1302](https://github.com/matrix-org/matrix-react-sdk/pull/1302)
Changes in [0.9.7](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.9.7) (2017-06-22) Changes in [0.9.7](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.9.7) (2017-06-22)
=================================================================================================== ===================================================================================================
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.9.6...v0.9.7) [Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.9.6...v0.9.7)

View File

@ -1,6 +1,6 @@
{ {
"name": "matrix-react-sdk", "name": "matrix-react-sdk",
"version": "0.9.7", "version": "0.10.2",
"description": "SDK for matrix.org using React", "description": "SDK for matrix.org using React",
"author": "matrix.org", "author": "matrix.org",
"repository": { "repository": {
@ -66,7 +66,7 @@
"isomorphic-fetch": "^2.2.1", "isomorphic-fetch": "^2.2.1",
"linkifyjs": "^2.1.3", "linkifyjs": "^2.1.3",
"lodash": "^4.13.1", "lodash": "^4.13.1",
"matrix-js-sdk": "matrix-org/matrix-js-sdk#develop", "matrix-js-sdk": "0.8.2",
"optimist": "^0.6.1", "optimist": "^0.6.1",
"prop-types": "^15.5.8", "prop-types": "^15.5.8",
"react": "^15.4.0", "react": "^15.4.0",

View File

@ -33,9 +33,16 @@ import Modal from './Modal';
* } * }
*/ */
const MAX_PENDING_ENCRYPTED = 20;
const Notifier = { const Notifier = {
notifsByRoom: {}, notifsByRoom: {},
// A list of event IDs that we've received but need to wait until
// they're decrypted until we decide whether to notify for them
// or not
pendingEncryptedEventIds: [],
notificationMessageForEvent: function(ev) { notificationMessageForEvent: function(ev) {
return TextForEvent.textForEvent(ev); return TextForEvent.textForEvent(ev);
}, },
@ -89,7 +96,6 @@ const Notifier = {
_playAudioNotification: function(ev, room) { _playAudioNotification: function(ev, room) {
const e = document.getElementById("messageAudio"); const e = document.getElementById("messageAudio");
if (e) { if (e) {
e.load();
e.play(); e.play();
} }
}, },
@ -98,8 +104,10 @@ const Notifier = {
this.boundOnRoomTimeline = this.onRoomTimeline.bind(this); this.boundOnRoomTimeline = this.onRoomTimeline.bind(this);
this.boundOnSyncStateChange = this.onSyncStateChange.bind(this); this.boundOnSyncStateChange = this.onSyncStateChange.bind(this);
this.boundOnRoomReceipt = this.onRoomReceipt.bind(this); this.boundOnRoomReceipt = this.onRoomReceipt.bind(this);
this.boundOnEventDecrypted = this.onEventDecrypted.bind(this);
MatrixClientPeg.get().on('Room.timeline', this.boundOnRoomTimeline); MatrixClientPeg.get().on('Room.timeline', this.boundOnRoomTimeline);
MatrixClientPeg.get().on('Room.receipt', this.boundOnRoomReceipt); MatrixClientPeg.get().on('Room.receipt', this.boundOnRoomReceipt);
MatrixClientPeg.get().on('Event.decrypted', this.boundOnEventDecrypted);
MatrixClientPeg.get().on("sync", this.boundOnSyncStateChange); MatrixClientPeg.get().on("sync", this.boundOnSyncStateChange);
this.toolbarHidden = false; this.toolbarHidden = false;
this.isSyncing = false; this.isSyncing = false;
@ -109,6 +117,7 @@ const Notifier = {
if (MatrixClientPeg.get() && this.boundOnRoomTimeline) { if (MatrixClientPeg.get() && this.boundOnRoomTimeline) {
MatrixClientPeg.get().removeListener('Room.timeline', this.boundOnRoomTimeline); MatrixClientPeg.get().removeListener('Room.timeline', this.boundOnRoomTimeline);
MatrixClientPeg.get().removeListener('Room.receipt', this.boundOnRoomReceipt); MatrixClientPeg.get().removeListener('Room.receipt', this.boundOnRoomReceipt);
MatrixClientPeg.get().removeListener('Event.decrypted', this.boundOnEventDecrypted);
MatrixClientPeg.get().removeListener('sync', this.boundOnSyncStateChange); MatrixClientPeg.get().removeListener('sync', this.boundOnSyncStateChange);
} }
this.isSyncing = false; this.isSyncing = false;
@ -244,16 +253,26 @@ const Notifier = {
if (ev.sender && ev.sender.userId === MatrixClientPeg.get().credentials.userId) return; if (ev.sender && ev.sender.userId === MatrixClientPeg.get().credentials.userId) return;
if (data.timeline.getTimelineSet() !== room.getUnfilteredTimelineSet()) return; if (data.timeline.getTimelineSet() !== room.getUnfilteredTimelineSet()) return;
const actions = MatrixClientPeg.get().getPushActionsForEvent(ev); // If it's an encrypted event and the type is still 'm.room.encrypted',
if (actions && actions.notify) { // it hasn't yet been decrypted, so wait until it is.
if (this.isEnabled()) { if (ev.isBeingDecrypted() || ev.isDecryptionFailure()) {
this._displayPopupNotification(ev, room); this.pendingEncryptedEventIds.push(ev.getId());
} // don't let the list fill up indefinitely
if (actions.tweaks.sound && this.isAudioEnabled()) { while (this.pendingEncryptedEventIds.length > MAX_PENDING_ENCRYPTED) {
PlatformPeg.get().loudNotification(ev, room); this.pendingEncryptedEventIds.shift();
this._playAudioNotification(ev, room);
} }
return;
} }
this._evaluateEvent(ev);
},
onEventDecrypted: function(ev) {
const idx = this.pendingEncryptedEventIds.indexOf(ev.getId());
if (idx === -1) return;
this.pendingEncryptedEventIds.splice(idx, 1);
this._evaluateEvent(ev);
}, },
onRoomReceipt: function(ev, room) { onRoomReceipt: function(ev, room) {
@ -273,6 +292,20 @@ const Notifier = {
delete this.notifsByRoom[room.roomId]; delete this.notifsByRoom[room.roomId];
} }
}, },
_evaluateEvent: function(ev) {
const room = MatrixClientPeg.get().getRoom(ev.getRoomId());
const actions = MatrixClientPeg.get().getPushActionsForEvent(ev);
if (actions && actions.notify) {
if (this.isEnabled()) {
this._displayPopupNotification(ev, room);
}
if (actions.tweaks.sound && this.isAudioEnabled()) {
PlatformPeg.get().loudNotification(ev, room);
this._playAudioNotification(ev, room);
}
}
}
}; };
if (!global.mxNotifier) { if (!global.mxNotifier) {

View File

@ -76,10 +76,13 @@ class ScalarAuthClient {
return defer.promise; return defer.promise;
} }
getScalarInterfaceUrlForRoom(roomId, screen) { getScalarInterfaceUrlForRoom(roomId, screen, id) {
var url = SdkConfig.get().integrations_ui_url; var url = SdkConfig.get().integrations_ui_url;
url += "?scalar_token=" + encodeURIComponent(this.scalarToken); url += "?scalar_token=" + encodeURIComponent(this.scalarToken);
url += "&room_id=" + encodeURIComponent(roomId); url += "&room_id=" + encodeURIComponent(roomId);
if (id) {
url += '&integ_id=' + encodeURIComponent(id);
}
if (screen) { if (screen) {
url += '&screen=' + encodeURIComponent(screen); url += '&screen=' + encodeURIComponent(screen);
} }

View File

@ -1068,10 +1068,13 @@ module.exports = React.createClass({
self.setState({ready: true}); self.setState({ready: true});
}); });
cli.on('Call.incoming', function(call) { cli.on('Call.incoming', function(call) {
// we dispatch this synchronously to make sure that the event
// handlers on the call are set up immediately (so that if
// we get an immediate hangup, we don't get a stuck call)
dis.dispatch({ dis.dispatch({
action: 'incoming_call', action: 'incoming_call',
call: call, call: call,
}); }, true);
}); });
cli.on('Session.logged_out', function(call) { cli.on('Session.logged_out', function(call) {
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");

View File

@ -197,6 +197,7 @@ var TimelinePanel = React.createClass({
MatrixClientPeg.get().on("Room.receipt", this.onRoomReceipt); MatrixClientPeg.get().on("Room.receipt", this.onRoomReceipt);
MatrixClientPeg.get().on("Room.localEchoUpdated", this.onLocalEchoUpdated); MatrixClientPeg.get().on("Room.localEchoUpdated", this.onLocalEchoUpdated);
MatrixClientPeg.get().on("Room.accountData", this.onAccountData); MatrixClientPeg.get().on("Room.accountData", this.onAccountData);
MatrixClientPeg.get().on("Event.decrypted", this.onEventDecrypted);
MatrixClientPeg.get().on("sync", this.onSync); MatrixClientPeg.get().on("sync", this.onSync);
this._initTimeline(this.props); this._initTimeline(this.props);
@ -266,6 +267,7 @@ var TimelinePanel = React.createClass({
client.removeListener("Room.receipt", this.onRoomReceipt); client.removeListener("Room.receipt", this.onRoomReceipt);
client.removeListener("Room.localEchoUpdated", this.onLocalEchoUpdated); client.removeListener("Room.localEchoUpdated", this.onLocalEchoUpdated);
client.removeListener("Room.accountData", this.onAccountData); client.removeListener("Room.accountData", this.onAccountData);
client.removeListener("Event.decrypted", this.onEventDecrypted);
client.removeListener("sync", this.onSync); client.removeListener("sync", this.onSync);
} }
}, },
@ -503,6 +505,18 @@ var TimelinePanel = React.createClass({
}, this.props.onReadMarkerUpdated); }, this.props.onReadMarkerUpdated);
}, },
onEventDecrypted: function(ev) {
// Need to update as we don't display event tiles for events that
// haven't yet been decrypted. The event will have just been updated
// in place so we just need to re-render.
// TODO: We should restrict this to only events in our timeline,
// but possibly the event tile itself should just update when this
// happens to save us re-rendering the whole timeline.
if (ev.getRoomId() === this.props.timelineSet.room.roomId) {
this.forceUpdate();
}
},
onSync: function(state, prevState, data) { onSync: function(state, prevState, data) {
this.setState({clientSyncState: state}); this.setState({clientSyncState: state});
}, },

View File

@ -127,7 +127,8 @@ export default React.createClass({
_onEditClick: function(e) { _onEditClick: function(e) {
console.log("Edit widget ID ", this.props.id); console.log("Edit widget ID ", this.props.id);
const IntegrationsManager = sdk.getComponent("views.settings.IntegrationsManager"); const IntegrationsManager = sdk.getComponent("views.settings.IntegrationsManager");
const src = this._scalarClient.getScalarInterfaceUrlForRoom(this.props.room.roomId, 'type_' + this.props.type); const src = this._scalarClient.getScalarInterfaceUrlForRoom(
this.props.room.roomId, 'type_' + this.props.type, this.props.id);
Modal.createTrackedDialog('Integrations Manager', '', IntegrationsManager, { Modal.createTrackedDialog('Integrations Manager', '', IntegrationsManager, {
src: src, src: src,
}, "mx_IntegrationsManager"); }, "mx_IntegrationsManager");

View File

@ -75,7 +75,7 @@ export default class ManageIntegsButton extends React.Component {
} }
render() { render() {
let integrationsButton; let integrationsButton = <div />;
let integrationsError; let integrationsError;
if (this.scalarClient !== null) { if (this.scalarClient !== null) {
if (this.state.showIntegrationsError && this.state.scalarError) { if (this.state.showIntegrationsError && this.state.scalarError) {

View File

@ -17,6 +17,7 @@ limitations under the License.
'use strict'; 'use strict';
import React from 'react'; import React from 'react';
import ReactDOM from 'react-dom';
import { _t, _tJsx } from '../../../languageHandler'; import { _t, _tJsx } from '../../../languageHandler';
var DIV_ID = 'mx_recaptcha'; var DIV_ID = 'mx_recaptcha';
@ -66,11 +67,10 @@ module.exports = React.createClass({
// * jumping straight to a hosted captcha page (but we don't support that yet) // * jumping straight to a hosted captcha page (but we don't support that yet)
// * embedding the captcha in an iframe (if that works) // * embedding the captcha in an iframe (if that works)
// * using a better captcha lib // * using a better captcha lib
warning.innerHTML = _tJsx( ReactDOM.render(_tJsx(
"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>",
/<a>(.*?)<\/a>/, /<a>(.*?)<\/a>/,
(sub) => { return "<a href='https://riot.im/app'>{ sub }</a>"; } (sub) => { return <a href='https://riot.im/app'>{ sub }</a>; }), warning);
);
this.refs.recaptchaContainer.appendChild(warning); this.refs.recaptchaContainer.appendChild(warning);
} }
else { else {

View File

@ -53,11 +53,11 @@ module.exports = React.createClass({
this.scalarClient = null; this.scalarClient = null;
if (SdkConfig.get().integrations_ui_url && SdkConfig.get().integrations_rest_url) { if (SdkConfig.get().integrations_ui_url && SdkConfig.get().integrations_rest_url) {
this.scalarClient = new ScalarAuthClient(); this.scalarClient = new ScalarAuthClient();
this.scalarClient.connect().done(() => { this.scalarClient.connect().then(() => {
this.forceUpdate(); this.forceUpdate();
}).catch((e) => {
console.log("Failed to connect to integrations server");
// TODO -- Handle Scalar errors // TODO -- Handle Scalar errors
// },
// (err) => {
// this.setState({ // this.setState({
// scalar_error: err, // scalar_error: err,
// }); // });

View File

@ -143,7 +143,6 @@ export default class Autocomplete extends React.Component {
return null; return null;
} }
this.setSelection(selectionOffset); this.setSelection(selectionOffset);
return selectionOffset === COMPOSER_SELECTED ? null : this.state.completionList[selectionOffset - 1];
} }
// called from MessageComposerInput // called from MessageComposerInput
@ -155,7 +154,6 @@ export default class Autocomplete extends React.Component {
return null; return null;
} }
this.setSelection(selectionOffset); this.setSelection(selectionOffset);
return selectionOffset === COMPOSER_SELECTED ? null : this.state.completionList[selectionOffset - 1];
} }
onEscape(e): boolean { onEscape(e): boolean {
@ -201,6 +199,9 @@ export default class Autocomplete extends React.Component {
setSelection(selectionOffset: number) { setSelection(selectionOffset: number) {
this.setState({selectionOffset, hide: false}); this.setState({selectionOffset, hide: false});
if (this.props.onSelectionChange) {
this.props.onSelectionChange(this.state.completionList[selectionOffset - 1]);
}
} }
componentDidUpdate() { componentDidUpdate() {

View File

@ -139,7 +139,7 @@ module.exports = React.createClass({
} }
return ( return (
<div className={ appsDrawer ? "mx_RoomView_auxPanel mx_RoomView_auxPanel_apps" : "mx_RoomView_auxPanel" } style={{maxHeight: this.props.maxHeight}} > <div className="mx_RoomView_auxPanel" style={{maxHeight: this.props.maxHeight}} >
{ appsDrawer } { appsDrawer }
{ fileDropTarget } { fileDropTarget }
{ callView } { callView }

View File

@ -949,8 +949,7 @@ export default class MessageComposerInput extends React.Component {
}; };
moveAutocompleteSelection = (up) => { moveAutocompleteSelection = (up) => {
const completion = up ? this.autocomplete.onUpArrow() : this.autocomplete.onDownArrow(); up ? this.autocomplete.onUpArrow() : this.autocomplete.onDownArrow();
return this.setDisplayedCompletion(completion);
}; };
onEscape = async (e) => { onEscape = async (e) => {
@ -1133,6 +1132,7 @@ export default class MessageComposerInput extends React.Component {
<Autocomplete <Autocomplete
ref={(e) => this.autocomplete = e} ref={(e) => this.autocomplete = e}
onConfirm={this.setDisplayedCompletion} onConfirm={this.setDisplayedCompletion}
onSelectionChange={this.setDisplayedCompletion}
query={this.getAutocompleteQuery(content)} query={this.getAutocompleteQuery(content)}
selection={selection}/> selection={selection}/>
</div> </div>

55
src/i18n/strings/cs.json Normal file
View File

@ -0,0 +1,55 @@
{
"Close": "Zavřít",
"Favourites": "Oblíbené",
"Filter room members": "Filtrovat členy místnosti",
"Historical": "Historické",
"Home": "Úvod",
"%(displayName)s is typing": "%(displayName)s právě píše",
"Jump to first unread message.": "Přeskočit na první nepřečtenou zprávu.",
"Logout": "Odhlásit se",
"Low priority": "Nízká priorita",
"Notifications": "Upozornění",
"People": "Lidé",
"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ě)",
"Settings": "Nastavení",
"Start Chat": "Začít chat",
"This room": "Tato místnost",
"Unencrypted room": "Nezašifrovaná místnost",
"Failed to upload file": "Nahrát soubor",
"Video call": "Videohovor",
"Voice call": "Telefonát",
"Sun": "Ne",
"Mon": "Po",
"Tue": "Út",
"Wed": "St",
"Thu": "Čt",
"Fri": "Pá",
"Sat": "So",
"Jan": "Led",
"Feb": "Úno",
"Mar": "Bře",
"Apr": "Dub",
"May": "Kvě",
"Jun": "Čvn",
"Jul": "Čvc",
"Aug": "Srp",
"Sep": "Zář",
"Oct": "Říj",
"Nov": "Lis",
"Dec": "Pro",
"There are no visible files in this room": "V této místnosti nejsou žádné viditelné soubory",
"Create new room": "Založit novou místnost",
"Room directory": "Adresář místností",
"Start chat": "Začít chat",
"Options": "Možnosti",
"Register": "Zaregistrovat",
"Cancel": "Storno",
"Direct Chat": "Přímý chat",
"Error": "Chyba",
"Failed to join the room": "Nepodařilo se vstoupit do místnosti",
"Favourite": "V oblíbených",
"Mute": "Ztišit"
}

View File

@ -651,7 +651,7 @@
"%(items)s and %(remaining)s others": "%(items)s und %(remaining)s weitere", "%(items)s and %(remaining)s others": "%(items)s und %(remaining)s weitere",
"%(items)s and one other": "%(items)s und ein(e) weitere(r)", "%(items)s and one other": "%(items)s und ein(e) weitere(r)",
"%(items)s and %(lastItem)s": "%(items)s und %(lastItem)s", "%(items)s and %(lastItem)s": "%(items)s und %(lastItem)s",
"%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)s sind dem Raum %(repeats)s mal beigetreten", "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)ssind dem Raum %(repeats)s mal beigetreten",
"%(oneUser)sjoined %(repeats)s times": "%(oneUser)shat den Raum %(repeats)s mal betreten", "%(oneUser)sjoined %(repeats)s times": "%(oneUser)shat den Raum %(repeats)s mal betreten",
"%(severalUsers)sjoined": "%(severalUsers)shaben den Raum betreten", "%(severalUsers)sjoined": "%(severalUsers)shaben den Raum betreten",
"%(oneUser)sjoined": "%(oneUser)shat den Raum betreten", "%(oneUser)sjoined": "%(oneUser)shat den Raum betreten",
@ -905,7 +905,7 @@
"Something went wrong!": "Etwas ging schief!", "Something went wrong!": "Etwas ging schief!",
"This will be your account name on the <span></span> homeserver, or you can pick a <a>different server</a>.": "Dies wird dein zukünftiger Benutzername auf dem <span></span> Heimserver. Alternativ kannst du auch einen <a>anderen Server</a> auswählen.", "This will be your account name on the <span></span> homeserver, or you can pick a <a>different server</a>.": "Dies wird dein zukünftiger Benutzername auf dem <span></span> Heimserver. Alternativ kannst du auch einen <a>anderen Server</a> auswählen.",
"If you already have a Matrix account you can <a>log in</a> instead.": "Wenn du bereits ein Matrix-Benutzerkonto hast, kannst du dich stattdessen auch direkt <a>anmelden</a>.", "If you already have a Matrix account you can <a>log in</a> instead.": "Wenn du bereits ein Matrix-Benutzerkonto hast, kannst du dich stattdessen auch direkt <a>anmelden</a>.",
"Home": "Start", "Home": "Startseite",
"Username invalid: %(errMessage)s": "Ungültiger Benutzername: %(errMessage)s", "Username invalid: %(errMessage)s": "Ungültiger Benutzername: %(errMessage)s",
"a room": "einen Raum", "a room": "einen Raum",
"Accept": "Akzeptieren", "Accept": "Akzeptieren",
@ -986,5 +986,53 @@
"Encryption key request": "Verschlüsselungs-Schlüssel-Anfrage", "Encryption key request": "Verschlüsselungs-Schlüssel-Anfrage",
"Your unverified device '%(displayName)s' is requesting encryption keys.": "Dein nicht verifiziertes Gerät '%(displayName)s' fordert Verschlüsselungs-Schlüssel an.", "Your unverified device '%(displayName)s' is requesting encryption keys.": "Dein nicht verifiziertes Gerät '%(displayName)s' fordert Verschlüsselungs-Schlüssel an.",
"Updates": "Updates", "Updates": "Updates",
"Check for update": "Suche nach Updates" "Check for update": "Suche nach Updates",
"Add a widget": "Widget hinzufügen",
"Allow": "Erlauben",
"Changes colour scheme of current room": "Ändere Farbschema des aktuellen Raumes",
"Delete widget": "Widget entfernen",
"Define the power level of a user": "Setze das Berechtigungslevel eines Benutzers",
"Edit": "Bearbeiten",
"Enable automatic language detection for syntax highlighting": "Aktiviere automatische Spracherkennung zum Syntax-Hervorheben",
"Hide Apps": "Apps verbergen",
"Hide join/leave messages (invites/kicks/bans unaffected)": "Verberge Beitritt-/Verlassen-Meldungen (nicht Einladungen/Kicks/Bannungen)",
"Hide avatar and display name changes": "Verberge Avatar- und Anzeigenamen-Änderungen",
"Matrix Apps": "Matrix Apps",
"Revoke widget access": "Ziehe Widget-Zugriff zurück",
"Sets the room topic": "Setzt das Raum-Thema",
"Show Apps": "Zeige Apps",
"To get started, please pick a username!": "Um zu starten, wähle bitte einen Nutzernamen!",
"Unable to create widget.": "Widget kann nicht erstellt werden.",
"Unbans user with given id": "Entbanne Nutzer mit angegebener ID",
"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):",
"This Home server does not support groups": "Dieser Heimserver unterstützt keine Gruppen",
"Loading device info...": "Lädt Geräte-Info...",
"Groups": "Gruppen",
"Create a new group": "Erstelle eine neue Gruppe",
"Create Group": "Erstelle Gruppe",
"Group Name": "Gruppenname",
"Example": "Beispiel",
"Create": "Erstelle",
"Group ID": "Gruppen-ID",
"+example:%(domain)s": "+beispiel:%(domain)s",
"Group IDs must be of the form +localpart:%(domain)s": "Gruppen-IDs müssen von der Form '+lokalteil:%(domain)s' sein",
"It is currently only possible to create groups on your own home server: use a group ID ending with %(domain)s": "Es ist aktuell nur möglich, Gruppen auf deinem eigenen Heimserver zu erstellen. Nutze eine Gruppen-ID, die mit %(domain)s endet",
"Room creation failed": "Raum-Erstellung fehlgeschlagen",
"You are a member of these groups:": "Du bist Mitglied in folgenden Gruppen:",
"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.": "Erstelle eine Gruppe um deine Community darzustellen! Definiere eine Menge von Räumen und deine eigene angepasste Startseite um deinen Bereich im Matrix-Universum zu markieren.",
"Join an existing group": "Trete eine existierenden Gruppe bei",
"To join an exisitng group you'll have to know its group identifier; this will look something like <i>+example:matrix.org</i>.": "Um einer existierenden Gruppe beizutreten, musst du ihre Gruppen-Kennung wissen. Diese sieht z.B. aus wie '<i>+example:matrix.org</i>'.",
"Featured Rooms:": "Hervorgehobene Räume:",
"Error whilst fetching joined groups": "Fehler beim Laden beigetretener Gruppen",
"Featured Users:": "Hervorgehobene Nutzer:",
"Edit Group": "Gruppe bearbeiten",
"Automatically replace plain text Emoji": "Automatisch Klarzeichen-Emoji 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",
"AM": "am",
"PM": "pm"
} }

View File

@ -308,7 +308,7 @@
"is a": "es un", "is a": "es un",
"'%(alias)s' is not a valid format for an address": "'%(alias)s' no es un formato válido para una dirección", "'%(alias)s' is not a valid format for an address": "'%(alias)s' no es un formato válido para una dirección",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' no es un formato válido para un alias", "'%(alias)s' is not a valid format for an alias": "'%(alias)s' no es un formato válido para un alias",
"%(displayName)s is typing": "%(displayName)s esta escribiendo", "%(displayName)s is typing": "%(displayName)s está escribiendo",
"Sign in with": "Quiero iniciar sesión con", "Sign in with": "Quiero iniciar sesión con",
"Join Room": "Unirte a la sala", "Join Room": "Unirte a la sala",
"joined and left": "unido y dejado", "joined and left": "unido y dejado",
@ -648,5 +648,93 @@
"To send messages": "Para enviar mensajes", "To send messages": "Para enviar mensajes",
"to start a chat with someone": "para empezar a charlar con alguien", "to start a chat with someone": "para empezar a charlar con alguien",
"to tag as %(tagName)s": "para etiquetar como %(tagName)s", "to tag as %(tagName)s": "para etiquetar como %(tagName)s",
"to tag direct chat": "para etiquetar como charla directa" "to tag direct chat": "para etiquetar como charla directa",
"Add a widget": "Añadir widget",
"Allow": "Permitir",
"Changes colour scheme of current room": "Cambia el esquema de colores de esta sala",
"Delete widget": "Eliminar widget",
"Define the power level of a user": "Definir el nivel de poder de los usuarios",
"Edit": "Editar",
"Enable automatic language detection for syntax highlighting": "Activar la detección automática del lenguaje para resaltar la sintaxis",
"Hide Apps": "Ocultar aplicaciones",
"Hide join/leave messages (invites/kicks/bans unaffected)": "Ocultar mensajes de entrada/salida (no afecta invitaciones/kicks/bans)",
"Hide avatar and display name changes": "Ocultar cambios de avatar y nombre visible",
"Matrix Apps": "Aplicaciones Matrix",
"Once you&#39;ve followed the link it contains, click below": "Cuando haya seguido el enlace que contiene, haga click debajo",
"Sets the room topic": "Configura el tema de la sala",
"Show Apps": "Mostrar aplicaciones",
"To get started, please pick a username!": "Para empezar, ¡por favor elija un nombre de usuario!",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Se ha intentado cargar cierto punto en la cronología de esta sala, pero no tiene permiso para ver el mensaje solicitado.",
"Tried to load a specific point in this room's timeline, but was unable to find it.": "Se ha intentado cargar cierto punto en la cronología de esta sala, pero no se ha podido encontrarlo.",
"Turn Markdown off": "Desactivar markdown",
"Turn Markdown on": "Activar markdown",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s ha activado el cifrado de extremo-a-extremo (algorithm %(algorithm)s).",
"Unable to add email address": "No se ha podido añadir la dirección de correo electrónico",
"Unable to create widget.": "No se ha podido crear el widget.",
"Unable to remove contact information": "No se ha podido eliminar la información de contacto",
"Unable to restore previous session": "No se ha podido restablecer la sesión anterior",
"Unable to verify email address.": "No se ha podido verificar la dirección de correo electrónico.",
"Unban": "Revocar bloqueo",
"Unbans user with given id": "Revoca el bloqueo del usuario con la identificación dada",
"Unable to ascertain that the address this invite was sent to matches one associated with your account.": "No se ha podido asegurar que la dirección a la que se envió esta invitación, coincide con una asociada a su cuenta.",
"Unable to capture screen": "No se ha podido capturar la pantalla",
"Unable to enable Notifications": "No se ha podido activar las notificaciones",
"Unable to load device list": "No se ha podido cargar la lista de dispositivos",
"Undecryptable": "No se puede descifrar",
"Unencrypted room": "Sala sin cifrado",
"Unencrypted message": "Mensaje no cifrado",
"unknown caller": "Persona que llama desconocida",
"unknown device": "dispositivo desconocido",
"Unknown room %(roomId)s": "Sala desconocida %(roomId)s",
"Unknown (user, device) pair:": "Pareja desconocida (usuario, dispositivo):",
"unknown": "desconocido",
"Unnamed Room": "Sala sin nombre",
"Unverified": "Sin verificar",
"Uploading %(filename)s and %(count)s others.zero": "Subiendo %(filename)s",
"Uploading %(filename)s and %(count)s others.one": "Subiendo %(filename)s y %(count)s otros",
"Uploading %(filename)s and %(count)s others.other": "Subiendo %(filename)s y %(count)s otros",
"Upload avatar": "Subir avatar",
"Upload Failed": "Error al subir",
"Upload Files": "Subir archivos",
"Upload file": "Subir archivo",
"Upload new:": "Subir nuevo:",
"Usage": "Uso",
"Use compact timeline layout": "Usar diseño de cronología compacto",
"Use with caution": "Usar con precaución",
"User ID": "Identificación de usuario",
"User Interface": "Interfaz de usuario",
"%(user)s is a": "%(user)s es un",
"User name": "Nombre de usuario",
"Username invalid: %(errMessage)s": "Nombre de usuario no válido: %(errMessage)s",
"Users": "Usuarios",
"User": "Usuario",
"Verification Pending": "Verificación pendiente",
"Verification": "Verificación",
"verified": "verificado",
"Verified": "Verificado",
"Verified key": "Clave verificada",
"Video call": "Llamada de vídeo",
"Voice call": "Llamada de voz",
"VoIP conference finished.": "Conferencia VoIP terminada.",
"VoIP conference started.": "Conferencia de VoIP iniciada.",
"VoIP is unsupported": "No hay soporte para VoIP",
"(could not connect media)": "(no se ha podido conectar medio)",
"(no answer)": "(sin respuesta)",
"(unknown failure: %(reason)s)": "(error desconocido: %(reason)s)",
"(warning: cannot be disabled again!)": "(aviso: ¡no se puede volver a desactivar!)",
"Warning!": "¡Advertencia!",
"WARNING: Device already verified, but keys do NOT MATCH!": "AVISO: Dispositivo ya verificado, ¡pero las claves NO COINCIDEN!",
"Who can access this room?": "¿Quién puede acceder a esta sala?",
"Who can read history?": "¿Quién puede leer el historial?",
"Who would you like to add to this room?": "¿A quién quiere añadir a esta sala?",
"Who would you like to communicate with?": "¿Con quién quiere comunicar?",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s ha retirado la invitación de %(targetName)s.",
"Would you like to <acceptText>accept</acceptText> or <declineText>decline</declineText> this invitation?": "¿Quiere <acceptText>aceptar</acceptText> o <declineText>rechazar</declineText> esta invitación?",
"You already have existing direct chats with this user:": "Ya tiene chats directos con este usuario:",
"You are already in a call.": "Ya está participando en una llamada.",
"You are not in this room.": "Usted no está en esta sala.",
"You do not have permission to do that in this room.": "No tiene permiso para hacer esto en esta sala.",
"You're not in any rooms yet! Press <CreateRoomButton> to make a room or <RoomDirectoryButton> to browse the directory": "¡Todavía no participa en ninguna sala! Pulsa <CreateRoomButton> para crear una sala o <RoomDirectoryButton> para explorar el directorio",
"You are trying to access %(roomName)s.": "Está tratando de acceder a %(roomName)s.",
"You cannot place a call with yourself.": "No puede iniciar una llamada con usted mismo."
} }

View File

@ -120,7 +120,7 @@
"zh-tw": "Chinese (Taiwan)", "zh-tw": "Chinese (Taiwan)",
"zu": "Zulu", "zu": "Zulu",
"anyone": "n'importe qui", "anyone": "n'importe qui",
"Direct Chat": "Discussion Directe", "Direct Chat": "Discussion directe",
"Direct chats": "Conversations directes", "Direct chats": "Conversations directes",
"Disable inline URL previews by default": "Désactiver laperçu des URLs", "Disable inline URL previews by default": "Désactiver laperçu des URLs",
"Disinvite": "Désinviter", "Disinvite": "Désinviter",
@ -150,7 +150,7 @@
"Failed to change power level": "Échec du changement de niveau d'autorité", "Failed to change power level": "Échec du changement de niveau d'autorité",
"Failed to delete device": "Échec de la suppression de l'appareil", "Failed to delete device": "Échec de la suppression de l'appareil",
"Failed to forget room %(errCode)s": "Échec lors de l'oubli du salon %(errCode)s", "Failed to forget room %(errCode)s": "Échec lors de l'oubli du salon %(errCode)s",
"Please Register": "Veuillez vous enregistrer", "Please Register": "Veuillez vous inscrire",
"Remove": "Supprimer", "Remove": "Supprimer",
"was banned": "a été banni(e)", "was banned": "a été banni(e)",
"was invited": "a été invité(e)", "was invited": "a été invité(e)",
@ -182,7 +182,7 @@
"Algorithm": "Algorithme", "Algorithm": "Algorithme",
"all room members": "tous les membres du salon", "all room members": "tous les membres du salon",
"all room members, from the point they are invited": "tous les membres du salon, depuis le moment où ils ont été invités", "all room members, from the point they are invited": "tous les membres du salon, depuis le moment où ils ont été invités",
"all room members, from the point they joined": "tous les membres du salon, depuis le moment où ils ont joint", "all room members, from the point they joined": "tous les membres du salon, depuis le moment où ils ont rejoint",
"an address": "une adresse", "an address": "une adresse",
"and": "et", "and": "et",
"%(items)s and %(remaining)s others": "%(items)s et %(remaining)s autres", "%(items)s and %(remaining)s others": "%(items)s et %(remaining)s autres",
@ -273,7 +273,7 @@
"Failed to send request.": "Erreur lors de l'envoi de la requête.", "Failed to send request.": "Erreur lors de l'envoi de la requête.",
"Failed to set display name": "Échec lors de l'enregistrement du nom d'affichage", "Failed to set display name": "Échec lors de l'enregistrement du nom d'affichage",
"Failed to set up conference call": "Échec lors de létablissement de lappel", "Failed to set up conference call": "Échec lors de létablissement de lappel",
"Failed to toggle moderator status": "Échec lors de létablissement du statut de modérateur", "Failed to toggle moderator status": "Échec lors de lactivation du statut de modérateur",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s a accepté linvitation de %(displayName)s.", "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s a accepté linvitation de %(displayName)s.",
"Access Token:": "Jeton daccès :", "Access Token:": "Jeton daccès :",
"Always show message timestamps": "Toujours afficher l'heure des messages", "Always show message timestamps": "Toujours afficher l'heure des messages",
@ -288,17 +288,17 @@
"favourite": "favoris", "favourite": "favoris",
"Favourites": "Favoris", "Favourites": "Favoris",
"Fill screen": "Plein écran", "Fill screen": "Plein écran",
"Filter room members": "Filtrer les membres par nom", "Filter room members": "Filtrer les membres du salon",
"Forget room": "Oublier le salon", "Forget room": "Oublier le salon",
"Forgot your password?": "Mot de passe perdu ?", "Forgot your password?": "Mot de passe perdu ?",
"For security, this session has been signed out. Please sign in again.": "Par sécurité, la session a expiré. Merci de vous authentifier à nouveau.", "For security, this session has been signed out. Please sign in again.": "Par sécurité, la session a expiré. Merci de vous authentifier à nouveau.",
"Found a bug?": "Trouvé un problème ?", "Found a bug?": "Trouvé un problème ?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s à %(toPowerLevel)s", "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s à %(toPowerLevel)s",
"Guest users can't create new rooms. Please register to create room and start a chat.": "Les visiteurs ne peuvent créer de nouveaux salons. Merci de vous enregistrer pour commencer une discussion.", "Guest users can't create new rooms. Please register to create room and start a chat.": "Les visiteurs ne peuvent créer de nouveaux salons. Merci de vous inscrire pour commencer une discussion.",
"Guest users can't upload files. Please register to upload.": "Les visiteurs ne peuvent pas télécharger de fichier. Veuillez vous enregistrer pour télécharger.", "Guest users can't upload files. Please register to upload.": "Les visiteurs ne peuvent pas télécharger de fichier. Veuillez vous inscrire pour télécharger.",
"had": "avait", "had": "avait",
"Hangup": "Raccrocher", "Hangup": "Raccrocher",
"Hide read receipts": "Cacher les accusés de réception", "Hide read receipts": "Cacher les accusés de lecture",
"Hide Text Formatting Toolbar": "Cacher la barre de formatage de texte", "Hide Text Formatting Toolbar": "Cacher la barre de formatage de texte",
"Historical": "Historique", "Historical": "Historique",
"Homeserver is": "Le homeserver est", "Homeserver is": "Le homeserver est",
@ -321,10 +321,10 @@
"%(displayName)s is typing": "%(displayName)s est en train d'écrire", "%(displayName)s is typing": "%(displayName)s est en train d'écrire",
"Sign in with": "Je veux m'identifier avec", "Sign in with": "Je veux m'identifier avec",
"Join Room": "Rejoindre le salon", "Join Room": "Rejoindre le salon",
"joined and left": "a joint et quitté", "joined and left": "a rejoint et quitté",
"joined": "a joint", "joined": "a rejoint",
"%(targetName)s joined the room.": "%(targetName)s a joint le salon.", "%(targetName)s joined the room.": "%(targetName)s a rejoint le salon.",
"Joins room with given alias": "Joint le salon avec l'alias défini", "Joins room with given alias": "Rejoint le salon avec l'alias défini",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s a expulsé %(targetName)s.", "%(senderName)s kicked %(targetName)s.": "%(senderName)s a expulsé %(targetName)s.",
"Kick": "Expulser", "Kick": "Expulser",
"Kicks user with given id": "Expulse l'utilisateur avec l'ID donné", "Kicks user with given id": "Expulse l'utilisateur avec l'ID donné",
@ -357,14 +357,14 @@
"Never send encrypted messages to unverified devices in this room": "Ne jamais envoyer de message chiffré aux appareils non-vérifiés dans ce salon", "Never send encrypted messages to unverified devices in this room": "Ne jamais envoyer de message chiffré aux appareils non-vérifiés dans ce salon",
"Never send encrypted messages to unverified devices in this room from this device": "Ne jamais envoyer de message chiffré aux appareils non-vérifiés dans ce salon depuis cet appareil", "Never send encrypted messages to unverified devices in this room from this device": "Ne jamais envoyer de message chiffré aux appareils non-vérifiés dans ce salon depuis cet appareil",
"New address (e.g. #foo:%(localDomain)s)": "Nouvelle adresse (par ex. #foo:%(localDomain)s)", "New address (e.g. #foo:%(localDomain)s)": "Nouvelle adresse (par ex. #foo:%(localDomain)s)",
"New Composer & Autocomplete": "Nouveau compositeur & Autocomplétion", "New Composer & Autocomplete": "Nouveau compositeur et autocomplétion",
"New password": "Nouveau mot de passe", "New password": "Nouveau mot de passe",
"New passwords don't match": "Les mots de passe ne correspondent pas", "New passwords don't match": "Les mots de passe ne correspondent pas",
"New passwords must match each other.": "Les nouveaux mots de passe doivent être identiques.", "New passwords must match each other.": "Les nouveaux mots de passe doivent être identiques.",
"none": "aucun", "none": "aucun",
"not set": "non défini", "not set": "non défini",
"not specified": "non spécifié", "not specified": "non spécifié",
"(not supported by this browser)": "(non supporté par cet explorateur)", "(not supported by this browser)": "(non supporté par ce navigateur)",
"<not supported>": "<non supporté>", "<not supported>": "<non supporté>",
"NOT verified": "NON vérifié", "NOT verified": "NON vérifié",
"No devices with registered encryption keys": "Pas dappareil avec des clés de chiffrement enregistrées", "No devices with registered encryption keys": "Pas dappareil avec des clés de chiffrement enregistrées",
@ -383,13 +383,13 @@
"Operation failed": "L'opération a échoué", "Operation failed": "L'opération a échoué",
"Bulk Options": "Options de masse", "Bulk Options": "Options de masse",
"Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Changer le mot de passe réinitialise actuellement les clés de chiffrement sur tous les appareils, rendant lhistorique chiffré illisible, à moins dexporter les clés du salon en avance de phase puis de les ré-importer. Ceci sera amélioré prochainement.", "Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Changer le mot de passe réinitialise actuellement les clés de chiffrement sur tous les appareils, rendant lhistorique chiffré illisible, à moins dexporter les clés du salon en avance de phase puis de les ré-importer. Ceci sera amélioré prochainement.",
"Default": "Défaut", "Default": "Par défaut",
"Email address": "Adresse e-mail", "Email address": "Adresse e-mail",
"Error decrypting attachment": "Erreur lors du déchiffrement de la pièce jointe", "Error decrypting attachment": "Erreur lors du déchiffrement de la pièce jointe",
"Failed to set avatar.": "Erreur lors de la définition de la photo de profil.", "Failed to set avatar.": "Erreur lors de la définition de la photo de profil.",
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "Par sécurité une déconnexion supprimera toutes les clés de chiffrement de ce navigateur. Si vous voulez être capable de déchiffrer lhistorique de votre conversation lors de sessions futures de Riot, merci dexporter les clés pour le salon.", "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "Par sécurité une déconnexion supprimera toutes les clés de chiffrement de ce navigateur. Si vous voulez être capable de déchiffrer lhistorique de votre conversation lors de sessions futures de Riot, merci dexporter les clés pour le salon.",
"Guests can't set avatars. Please register.": "Les visiteurs ne peuvent définir de photo de profil. Merci de vous enregistrer.", "Guests can't set avatars. Please register.": "Les visiteurs ne peuvent définir de photo de profil. Merci de vous inscrire.",
"Guests can't use labs features. Please register.": "Les visiteurs ne peuvent utiliser les fonctionalités du laboratoire. Merci de vous enregistrer.", "Guests can't use labs features. Please register.": "Les visiteurs ne peuvent utiliser les fonctionalités du laboratoire. Merci de vous inscrire.",
"Guests cannot join this room even if explicitly invited.": "Les visiteurs ne peuvent rejoindre ce salon, même si explicitement invités.", "Guests cannot join this room even if explicitly invited.": "Les visiteurs ne peuvent rejoindre ce salon, même si explicitement invités.",
"Invalid file%(extra)s": "Fichier %(extra)s invalide", "Invalid file%(extra)s": "Fichier %(extra)s invalide",
"Mute": "Couper le son", "Mute": "Couper le son",
@ -401,10 +401,10 @@
"Power level must be positive integer.": "Le niveau d'autorité doit être un entier positif.", "Power level must be positive integer.": "Le niveau d'autorité doit être un entier positif.",
"Press": "Cliquer", "Press": "Cliquer",
"Privacy warning": "Alerte de confidentialité", "Privacy warning": "Alerte de confidentialité",
"Privileged Users": "Utilisateur Privilégié", "Privileged Users": "Utilisateur privilégié",
"Profile": "Profil", "Profile": "Profil",
"Reason": "Raison", "Reason": "Raison",
"Revoke Moderator": "Révoquer le Modérateur", "Revoke Moderator": "Révoquer le modérateur",
"Refer a friend to Riot:": "Recommander Riot à un ami :", "Refer a friend to Riot:": "Recommander Riot à un ami :",
"rejected": "rejeté", "rejected": "rejeté",
"%(targetName)s rejected the invitation.": "%(targetName)s a rejeté linvitation.", "%(targetName)s rejected the invitation.": "%(targetName)s a rejeté linvitation.",
@ -414,17 +414,17 @@
"%(senderName)s removed their profile picture.": "%(senderName)s a supprimé sa photo de profil.", "%(senderName)s removed their profile picture.": "%(senderName)s a supprimé sa photo de profil.",
"Remove %(threePid)s?": "Supprimer %(threePid)s ?", "Remove %(threePid)s?": "Supprimer %(threePid)s ?",
"%(senderName)s requested a VoIP conference.": "%(senderName)s a demandé une conférence audio.", "%(senderName)s requested a VoIP conference.": "%(senderName)s a demandé une conférence audio.",
"Report it": "Le rapporter", "Report it": "Le signaler",
"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.": "Réinitialiser le mot de passe va réinitialiser les clés de chiffrement sur tous les appareils, rendant lhistorique chiffré illisible, à moins que vous ayez exporté les clés du salon en avance de phase puis que vous les ré-importiez. Cela sera amélioré prochainement.", "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.": "Réinitialiser le mot de passe va réinitialiser les clés de chiffrement sur tous les appareils, rendant lhistorique chiffré illisible, à moins que vous ayez exporté les clés du salon en avance de phase puis que vous les ré-importiez. Cela sera amélioré prochainement.",
"restore": "restorer", "restore": "restaurer",
"Return to app": "Retourner à lapplication", "Return to app": "Retourner à lapplication",
"Return to login screen": "Retourner à lécran didentification", "Return to login screen": "Retourner à lécran didentification",
"Riot does not have permission to send you notifications - please check your browser settings": "Riot na pas la permission de vous envoyer des notifications - Merci de vérifier les paramètres de votre explorateur", "Riot does not have permission to send you notifications - please check your browser settings": "Riot na pas la permission de vous envoyer des notifications - merci de vérifier les paramètres de votre navigateur",
"Riot was not given permission to send notifications - please try again": "Riot na pas reçu la permission de vous envoyer des notifications - Merci dessayer à nouveau", "Riot was not given permission to send notifications - please try again": "Riot na pas reçu la permission de vous envoyer des notifications - merci dessayer à nouveau",
"riot-web version:": "Version de riot-web :", "riot-web version:": "Version de riot-web :",
"Room %(roomId)s not visible": "Le salon %(roomId)s n'est pas visible", "Room %(roomId)s not visible": "Le salon %(roomId)s n'est pas visible",
"Room Colour": "Couleur du salon", "Room Colour": "Couleur du salon",
"Room name (optional)": "Nom du salon (optionnel)", "Room name (optional)": "Nom du salon (facultatif)",
"Rooms": "Salons", "Rooms": "Salons",
"Scroll to bottom of page": "Aller en bas de la page", "Scroll to bottom of page": "Aller en bas de la page",
"Scroll to unread messages": "Aller aux messages non-lus", "Scroll to unread messages": "Aller aux messages non-lus",
@ -433,7 +433,7 @@
"Searches DuckDuckGo for results": "Recherche des résultats dans DuckDuckGo", "Searches DuckDuckGo for results": "Recherche des résultats dans DuckDuckGo",
"Send a message (unencrypted)": "Envoyer un message (non chiffré)", "Send a message (unencrypted)": "Envoyer un message (non chiffré)",
"Send an encrypted message": "Envoyer un message chiffré", "Send an encrypted message": "Envoyer un message chiffré",
"Sender device information": "Information de l'appareil de l'expéditeur", "Sender device information": "Informations de l'appareil de l'expéditeur",
"Send Invites": "Envoyer les invitations", "Send Invites": "Envoyer les invitations",
"Send Reset Email": "Envoyer l'e-mail de réinitialisation", "Send Reset Email": "Envoyer l'e-mail de réinitialisation",
"sent an image": "a envoyé une image", "sent an image": "a envoyé une image",
@ -443,7 +443,7 @@
"Server error": "Erreur du serveur", "Server error": "Erreur du serveur",
"Server may be unavailable or overloaded": "Le serveur semble être inaccessible ou surchargé", "Server may be unavailable or overloaded": "Le serveur semble être inaccessible ou surchargé",
"Server may be unavailable, overloaded, or search timed out :(": "Le serveur semble être inaccessible, surchargé ou la recherche a expiré :(", "Server may be unavailable, overloaded, or search timed out :(": "Le serveur semble être inaccessible, surchargé ou la recherche a expiré :(",
"Server may be unavailable, overloaded, or the file too big": "Le serveur semble être inaccessible, surchargé ou le fichier trop important", "Server may be unavailable, overloaded, or the file too big": "Le serveur semble être inaccessible, surchargé ou le fichier est trop volumineux",
"Server may be unavailable, overloaded, or you hit a bug.": "Le serveur semble être indisponible, surchargé, ou vous avez rencontré un problème.", "Server may be unavailable, overloaded, or you hit a bug.": "Le serveur semble être indisponible, surchargé, ou vous avez rencontré un problème.",
"Server unavailable, overloaded, or something else went wrong.": "Le serveur semble être inaccessible, surchargé ou quelque chose s'est mal passé.", "Server unavailable, overloaded, or something else went wrong.": "Le serveur semble être inaccessible, surchargé ou quelque chose s'est mal passé.",
"Session ID": "Identifiant de session", "Session ID": "Identifiant de session",
@ -460,15 +460,15 @@
"Some of your messages have not been sent.": "Certains de vos messages nont pas été envoyés.", "Some of your messages have not been sent.": "Certains de vos messages nont pas été envoyés.",
"Someone": "Quelqu'un", "Someone": "Quelqu'un",
"Sorry, this homeserver is using a login which is not recognised ": "Désolé, ce homeserver utilise un identifiant qui nest pas reconnu ", "Sorry, this homeserver is using a login which is not recognised ": "Désolé, ce homeserver utilise un identifiant qui nest pas reconnu ",
"Start a chat": "Démarrer une conversation", "Start a chat": "Démarrer une discussion",
"Start Chat": "Démarrer une conversation", "Start Chat": "Démarrer une discussion",
"Submit": "Soumettre", "Submit": "Soumettre",
"Success": "Succès", "Success": "Succès",
"tag as %(tagName)s": "marquer comme %(tagName)s", "tag as %(tagName)s": "marquer comme %(tagName)s",
"tag direct chat": "marquer comme conversation directe", "tag direct chat": "marquer comme discussion directe",
"The default role for new room members is": "Le rôle par défaut des nouveaux membres est", "The default role for new room members is": "Le rôle par défaut des nouveaux membres est",
"The main address for this room is": "L'adresse principale pour ce salon est", "The main address for this room is": "L'adresse principale pour ce salon est",
"This action cannot be performed by a guest user. Please register to be able to do this.": "Cette action ne peut être effectuée par un visiteur. Merci de vous enregistrer afin de pouvoir effectuer cette action.", "This action cannot be performed by a guest user. Please register to be able to do this.": "Cette action ne peut être effectuée par un visiteur. Merci de vous inscrire afin de pouvoir effectuer cette action.",
"This email address is already in use": "Cette adresse e-mail est déjà utilisée", "This email address is already in use": "Cette adresse e-mail est déjà utilisée",
"This email address was not found": "Cette adresse e-mail na pas été trouvée", "This email address was not found": "Cette adresse e-mail na pas été trouvée",
"%(actionVerb)s this person?": "%(actionVerb)s cette personne ?", "%(actionVerb)s this person?": "%(actionVerb)s cette personne ?",
@ -502,7 +502,7 @@
"to restore": "pour restaurer", "to restore": "pour restaurer",
"To send events of type": "Pour envoyer des évènements du type", "To send events of type": "Pour envoyer des évènements du type",
"To send messages": "Pour envoyer des messages", "To send messages": "Pour envoyer des messages",
"to start a chat with someone": "pour démarrer une conversation avec quelquun", "to start a chat with someone": "pour démarrer une discussion avec quelquun",
"to tag as %(tagName)s": "pour marquer comme %(tagName)s", "to tag as %(tagName)s": "pour marquer comme %(tagName)s",
"to tag direct chat": "pour marquer comme conversation directe", "to tag direct chat": "pour marquer comme conversation directe",
"To use it, just wait for autocomplete results to load and tab through them.": "Pour lutiliser, attendez simplement que les résultats de lauto-complétion saffichent et défilez avec la touche Tab.", "To use it, just wait for autocomplete results to load and tab through them.": "Pour lutiliser, attendez simplement que les résultats de lauto-complétion saffichent et défilez avec la touche Tab.",
@ -565,7 +565,7 @@
"You have no visible notifications": "Vous n'avez pas de notifications visibles", "You have no visible notifications": "Vous n'avez pas de notifications visibles",
"you must be a": "vous devez être un", "you must be a": "vous devez être un",
"You need to be able to invite users to do that.": "Vous devez être capable dinviter des utilisateurs pour faire ça.", "You need to be able to invite users to do that.": "Vous devez être capable dinviter des utilisateurs pour faire ça.",
"You need to be logged in.": "Vous devez être connecté.", "You need to be logged in.": "Vous devez être identifié.",
"You need to enter a user name.": "Vous devez entrer un nom dutilisateur.", "You need to enter a user name.": "Vous devez entrer un nom dutilisateur.",
"You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.": "Vous devez vous connecter à nouveau pour générer les clés de chiffrement pour cet appareil, et soumettre la clé publique à votre homeserver. Cette action ne se reproduira pas ; veuillez nous excuser pour la gêne occasionnée.", "You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.": "Vous devez vous connecter à nouveau pour générer les clés de chiffrement pour cet appareil, et soumettre la clé publique à votre homeserver. Cette action ne se reproduira pas ; veuillez nous excuser pour la gêne occasionnée.",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Votre adresse e-mail ne semble pas associée à un identifiant Matrix sur ce homeserver.", "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Votre adresse e-mail ne semble pas associée à un identifiant Matrix sur ce homeserver.",
@ -575,7 +575,7 @@
"You seem to be uploading files, are you sure you want to quit?": "Vous semblez être en train de télécharger des fichiers, êtes-vous sûr(e) de vouloir quitter ?", "You seem to be uploading files, are you sure you want to quit?": "Vous semblez être en train de télécharger des fichiers, êtes-vous sûr(e) de vouloir quitter ?",
"You should not yet trust it to secure data": "Vous ne pouvez pas encore lui faire confiance pour sécuriser vos données", "You should not yet trust it to secure data": "Vous ne pouvez pas encore lui faire confiance pour sécuriser vos données",
"changing room on a RoomView is not supported": "changer de salon sur un RoomView n'est pas supporté", "changing room on a RoomView is not supported": "changer de salon sur un RoomView n'est pas supporté",
"You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Vous ne pourrez pas défaire ce changement car vous promouvez lutilisateur aux mêmes pouvoirs que vous.", "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Vous ne pourrez pas annuler ce changement car vous promouvez lutilisateur au même niveau d'autorité que le vôtre.",
"Sun": "Dim", "Sun": "Dim",
"Mon": "Lun", "Mon": "Lun",
"Tue": "Mar", "Tue": "Mar",
@ -648,11 +648,11 @@
"%(oneUser)sleft and rejoined": "%(oneUser)sa quitté et à nouveau joint le salon", "%(oneUser)sleft and rejoined": "%(oneUser)sa quitté et à nouveau joint le salon",
"%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)sont rejeté leurs invitations %(repeats)s fois", "%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)sont rejeté leurs invitations %(repeats)s fois",
"%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)sa rejeté son invitation %(repeats)s fois", "%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)sa rejeté son invitation %(repeats)s fois",
"%(severalUsers)srejected their invitations": "%(severalUsers)sont rejeté leurs invitations", "%(severalUsers)srejected their invitations": "%(severalUsers)sont rejeté leur invitation",
"%(oneUser)srejected their invitation": "%(oneUser)sa rejeté son invitation", "%(oneUser)srejected their invitation": "%(oneUser)sa rejeté son invitation",
"%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)sont vu leurs invitations rétractées %(repeats)s fois", "%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)sont vu leur invitation rétractée %(repeats)s fois",
"%(oneUser)shad their invitation withdrawn %(repeats)s times": "%(oneUser)sa vu son invitation rétractée %(repeats)s fois", "%(oneUser)shad their invitation withdrawn %(repeats)s times": "%(oneUser)sa vu son invitation rétractée %(repeats)s fois",
"%(severalUsers)shad their invitations withdrawn": "%(severalUsers)sont vu leurs invitations rétractées", "%(severalUsers)shad their invitations withdrawn": "%(severalUsers)sont vu leur invitation rétractée",
"%(oneUser)shad their invitation withdrawn": "%(oneUser)sa vu son invitation rétractée", "%(oneUser)shad their invitation withdrawn": "%(oneUser)sa vu son invitation rétractée",
"were invited %(repeats)s times": "ont été invité(e)s %(repeats)s fois", "were invited %(repeats)s times": "ont été invité(e)s %(repeats)s fois",
"was invited %(repeats)s times": "a été invité(e) %(repeats)s fois", "was invited %(repeats)s times": "a été invité(e) %(repeats)s fois",
@ -692,8 +692,8 @@
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "Le fichier exporté est protégé par une phrase secrète. Vous devez entrer cette phrase secrète ici pour déchiffrer le fichier.", "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "Le fichier exporté est protégé par une phrase secrète. Vous devez entrer cette phrase secrète ici pour déchiffrer le fichier.",
"You must join the room to see its files": "Vous devez joindre le salon pour voir ses fichiers", "You must join the room to see its files": "Vous devez joindre le salon pour voir ses fichiers",
"Reject all %(invitedRooms)s invites": "Rejeter la totalité des %(invitedRooms)s invitations", "Reject all %(invitedRooms)s invites": "Rejeter la totalité des %(invitedRooms)s invitations",
"Start new chat": "Démarrer une nouvelle conversation", "Start new chat": "Démarrer une nouvelle discussion",
"Guest users can't invite users. Please register.": "Les visiteurs ne peuvent inviter dautres utilisateurs. Merci de vous enregistrer.", "Guest users can't invite users. Please register.": "Les visiteurs ne peuvent inviter dautres utilisateurs. Merci de vous inscrire.",
"Failed to invite": "Echec de l'invitation", "Failed to invite": "Echec de l'invitation",
"Failed to invite user": "Echec lors de l'invitation de l'utilisateur", "Failed to invite user": "Echec lors de l'invitation de l'utilisateur",
"Failed to invite the following users to the %(roomName)s room:": "Echec lors de linvitation des utilisateurs suivants dans le salon %(roomName)s :", "Failed to invite the following users to the %(roomName)s room:": "Echec lors de linvitation des utilisateurs suivants dans le salon %(roomName)s :",
@ -702,7 +702,7 @@
"Unknown error": "Erreur inconnue", "Unknown error": "Erreur inconnue",
"Incorrect password": "Mot de passe incorrect", "Incorrect password": "Mot de passe incorrect",
"This will make your account permanently unusable. You will not be able to re-register the same user ID.": "Ceci rendra votre compte inutilisable de manière permanente. Vous ne pourrez pas enregistrer à nouveau le même identifiant utilisateur.", "This will make your account permanently unusable. You will not be able to re-register the same user ID.": "Ceci rendra votre compte inutilisable de manière permanente. Vous ne pourrez pas enregistrer à nouveau le même identifiant utilisateur.",
"This action is irreversible.": "Cette action est irreversible.", "This action is irreversible.": "Cette action est irréversible.",
"To continue, please enter your password.": "Pour continuer, merci d'entrer votre mot de passe.", "To continue, please enter your password.": "Pour continuer, merci d'entrer votre mot de passe.",
"To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "Pour vérifier que vous pouvez faire confiance à cet appareil, merci de contacter son propriétaire par un autre moyen (par ex. en personne ou par téléphone) et demandez lui si la clé quil/elle voit dans ses Paramètres Utilisateur pour cet appareil correspond à la clé ci-dessous :", "To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "Pour vérifier que vous pouvez faire confiance à cet appareil, merci de contacter son propriétaire par un autre moyen (par ex. en personne ou par téléphone) et demandez lui si la clé quil/elle voit dans ses Paramètres Utilisateur pour cet appareil correspond à la clé ci-dessous :",
"Device name": "Nom de l'appareil", "Device name": "Nom de l'appareil",
@ -717,7 +717,7 @@
"Continue anyway": "Continuer quand même", "Continue anyway": "Continuer quand même",
"Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Votre nom daffichage est la manière dont vous allez apparaître pour les autres quand vous parlerez dans les salons. Que voulez-vous quil soit ?", "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Votre nom daffichage est la manière dont vous allez apparaître pour les autres quand vous parlerez dans les salons. Que voulez-vous quil soit ?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Vous êtes en train dajouter à la liste noire des appareils non-vérifiés ; pour envoyer des messages à ces appareils vous devez les vérifier.", "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Vous êtes en train dajouter à la liste noire des appareils non-vérifiés ; pour envoyer des messages à ces appareils vous devez les vérifier.",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "Nous vous recommandons deffectuer le process de vérification pour tous les appareils afin de confirmer quils appartiennent à leurs propriétaires légitimes, mais vous pouvez renvoyer le(s) message(s) sans vérifier si vous préférez.", "We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "Nous vous recommandons deffectuer le processus de vérification pour tous les appareils afin de confirmer quils appartiennent à leurs propriétaires légitimes, mais vous pouvez renvoyer le(s) message(s) sans vérifier si vous préférez.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contient des appareils que vous n'avez encore jamais vus.", "\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contient des appareils que vous n'avez encore jamais vus.",
"Unknown devices": "Appareils inconnus", "Unknown devices": "Appareils inconnus",
"Unknown Address": "Adresse inconnue", "Unknown Address": "Adresse inconnue",
@ -782,7 +782,7 @@
"Device already verified!": "Appareil déjà vérifié !", "Device already verified!": "Appareil déjà vérifié !",
"Export": "Exporter", "Export": "Exporter",
"Failed to register as guest:": "Échec de linscription en tant que visiteur :", "Failed to register as guest:": "Échec de linscription en tant que visiteur :",
"Guest access is disabled on this Home Server.": "Laccès en tant que visiteur est désactivé sur ce serveur.", "Guest access is disabled on this Home Server.": "Laccès en tant que visiteur est désactivé sur ce homeserver.",
"Import": "Importer", "Import": "Importer",
"Incorrect username and/or password.": "Nom dutilisateur et/ou mot de passe incorrect.", "Incorrect username and/or password.": "Nom dutilisateur et/ou mot de passe incorrect.",
"Results from DuckDuckGo": "Résultats de DuckDuckGo", "Results from DuckDuckGo": "Résultats de DuckDuckGo",
@ -794,7 +794,7 @@
"Unrecognised room alias:": "Alias de salon non-reconnu :", "Unrecognised room alias:": "Alias de salon non-reconnu :",
"Use compact timeline layout": "Utiliser l'affichage compact", "Use compact timeline layout": "Utiliser l'affichage compact",
"Verified key": "Clé vérifiée", "Verified key": "Clé vérifiée",
"WARNING: Device already verified, but keys do NOT MATCH!": "ATTENTION : Appareil déjà vérifié mais les clés NE CORRESPONDENT PAS !", "WARNING: Device already verified, but keys do NOT MATCH!": "ATTENTION : appareil déjà vérifié mais les clés NE CORRESPONDENT PAS !",
"WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "ATTENTION : ERREUR DE VÉRIFICATION DES CLÉS ! La clé de signature pour %(userId)s et l'appareil %(deviceId)s est “%(fprint)s” et ne correspond pas à la clé “%(fingerprint)s” qui a été fournie. Cela peut signifier que vos communications sont interceptées !", "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "ATTENTION : ERREUR DE VÉRIFICATION DES CLÉS ! La clé de signature pour %(userId)s et l'appareil %(deviceId)s est “%(fprint)s” et ne correspond pas à la clé “%(fingerprint)s” qui a été fournie. Cela peut signifier que vos communications sont interceptées !",
"VoIP": "Voix sur IP", "VoIP": "Voix sur IP",
"Missing Media Permissions, click here to request.": "Manque de permissions pour les médias, cliquer ici pour les demander.", "Missing Media Permissions, click here to request.": "Manque de permissions pour les médias, cliquer ici pour les demander.",
@ -810,7 +810,7 @@
"Are you sure you want to leave the room '%(roomName)s'?": "Êtes-vous sûr de vouloir quitter le salon '%(roomName)s' ?", "Are you sure you want to leave the room '%(roomName)s'?": "Êtes-vous sûr de vouloir quitter le salon '%(roomName)s' ?",
"Custom level": "Niveau personnalisé", "Custom level": "Niveau personnalisé",
"Device ID:": "Identifiant de l'appareil :", "Device ID:": "Identifiant de l'appareil :",
"device id: ": "Identifiant appareil : ", "device id: ": "identifiant appareil : ",
"Device key:": "Clé de lappareil :", "Device key:": "Clé de lappareil :",
"Email address (optional)": "Adresse e-mail (facultatif)", "Email address (optional)": "Adresse e-mail (facultatif)",
"Mobile phone number (optional)": "Numéro de téléphone (facultatif)", "Mobile phone number (optional)": "Numéro de téléphone (facultatif)",
@ -827,7 +827,7 @@
"%(count)s new messages.one": "%(count)s nouveau message", "%(count)s new messages.one": "%(count)s nouveau message",
"%(count)s new messages.other": "%(count)s nouveaux messages", "%(count)s new messages.other": "%(count)s nouveaux messages",
"Disable markdown formatting": "Désactiver le formattage markdown", "Disable markdown formatting": "Désactiver le formattage markdown",
"Error: Problem communicating with the given homeserver.": "Erreur : Problème de communication avec le homeserveur.", "Error: Problem communicating with the given homeserver.": "Erreur : problème de communication avec le homeserver.",
"Failed to fetch avatar URL": "Échec lors de la récupération de lURL de lavatar", "Failed to fetch avatar URL": "Échec lors de la récupération de lURL de lavatar",
"The phone number entered looks invalid": "Le numéro de téléphone entré semble être invalide", "The phone number entered looks invalid": "Le numéro de téléphone entré semble être invalide",
"This room is private or inaccessible to guests. You may be able to join if you register.": "Ce salon est privé ou interdits aux visiteurs. Vous pourrez peut-être le joindre si vous vous enregistrez.", "This room is private or inaccessible to guests. You may be able to join if you register.": "Ce salon est privé ou interdits aux visiteurs. Vous pourrez peut-être le joindre si vous vous enregistrez.",
@ -835,7 +835,7 @@
"Uploading %(filename)s and %(count)s others.one": "Téléchargement de %(filename)s et %(count)s autre", "Uploading %(filename)s and %(count)s others.one": "Téléchargement de %(filename)s et %(count)s autre",
"Uploading %(filename)s and %(count)s others.other": "Téléchargement de %(filename)s et %(count)s autres", "Uploading %(filename)s and %(count)s others.other": "Téléchargement de %(filename)s et %(count)s autres",
"You must <a>register</a> to use this functionality": "Vous devez vous <a>inscrire</a> pour utiliser cette fonctionnalité", "You must <a>register</a> to use this functionality": "Vous devez vous <a>inscrire</a> pour utiliser cette fonctionnalité",
"<a>Resend all</a> or <a>cancel all</a> now. You can also select individual messages to resend or cancel.": "<a>Tout renvoyer</a> or <a>tout annuler</a> maintenant. Vous pouvez aussi sélectionner des messages individuels à envoyer ou annuler.", "<a>Resend all</a> or <a>cancel all</a> now. You can also select individual messages to resend or cancel.": "<a>Tout renvoyer</a> ou <a>tout annuler</a> maintenant. Vous pouvez aussi sélectionner des messages individuels à envoyer ou annuler.",
"Create new room": "Créer un nouveau salon", "Create new room": "Créer un nouveau salon",
"Welcome page": "Page d'accueil", "Welcome page": "Page d'accueil",
"Room directory": "Répertoire des salons", "Room directory": "Répertoire des salons",
@ -854,24 +854,24 @@
"a room": "un salon", "a room": "un salon",
"Accept": "Accepter", "Accept": "Accepter",
"Active call (%(roomName)s)": "Appel en cours (%(roomName)s)", "Active call (%(roomName)s)": "Appel en cours (%(roomName)s)",
"Admin Tools": "Outils d'administration", "Admin tools": "Outils d'administration",
"Alias (optional)": "Alias (optionnel)", "Alias (optional)": "Alias (facultatif)",
"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.": "Impossible de se connecter au homeserver - veuillez vérifier votre connexion, assurez vous que vous faites confiance au <a>certificat SSL de votre homeserver</a>, et qu'aucune extension de navigateur ne bloque les requêtes.", "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.": "Impossible de se connecter au homeserver - veuillez vérifier votre connexion, assurez vous que vous faites confiance au <a>certificat SSL de votre homeserver</a>, et qu'aucune extension de navigateur ne bloque les requêtes.",
"<a>Click here</a> to join the discussion!": "<a>Cliquer ici</a> pour joindre la discussion !", "<a>Click here</a> to join the discussion!": "<a>Cliquer ici</a> pour joindre la discussion !",
"Close": "Fermer", "Close": "Fermer",
"Custom": "Personnaliser", "Custom": "Personnaliser",
"Decline": "Décliner", "Decline": "Refuser",
"Disable Notifications": "Désactiver les Notifications", "Disable Notifications": "Désactiver les notifications",
"Drop File Here": "Déposer le Fichier Ici", "Drop File Here": "Déposer le fichier Ici",
"Enable Notifications": "Activer les Notifications", "Enable Notifications": "Activer les notifications",
"Failed to upload profile picture!": "Échec du téléchargement de la photo de profil !", "Failed to upload profile picture!": "Échec du téléchargement de la photo de profil !",
"Incoming call from %(name)s": "Appel entrant de %(name)s", "Incoming call from %(name)s": "Appel entrant de %(name)s",
"Incoming video call from %(name)s": "Appel vidéo entrant de %(name)s", "Incoming video call from %(name)s": "Appel vidéo entrant de %(name)s",
"Incoming voice call from %(name)s": "Appel vocal entrant de %(name)s", "Incoming voice call from %(name)s": "Appel vocal entrant de %(name)s",
"No display name": "Pas de nom d'affichage", "No display name": "Pas de nom d'affichage",
"Otherwise, <a>click here</a> to send a bug report.": "Sinon, <a>cliquer ici</a> pour envoyer un rapport d'erreur.", "Otherwise, <a>click here</a> to send a bug report.": "Sinon, <a>cliquer ici</a> pour envoyer un rapport d'erreur.",
"Private Chat": "Conversation Privée", "Private Chat": "Conversation privée",
"Public Chat": "Conversation Publique", "Public Chat": "Conversation publique",
"Reason: %(reasonText)s": "Raison: %(reasonText)s", "Reason: %(reasonText)s": "Raison: %(reasonText)s",
"Rejoin": "Rejoindre", "Rejoin": "Rejoindre",
"Room contains unknown devices": "Le salon contient des appareils inconnus", "Room contains unknown devices": "Le salon contient des appareils inconnus",
@ -896,7 +896,7 @@
"You have been banned from %(roomName)s by %(userName)s.": "Vous avez été bannis de %(roomName)s par %(userName)s.", "You have been banned from %(roomName)s by %(userName)s.": "Vous avez été bannis de %(roomName)s par %(userName)s.",
"You have been kicked from %(roomName)s by %(userName)s.": "Vous avez été expulsé de %(roomName)s by %(userName)s.", "You have been kicked from %(roomName)s by %(userName)s.": "Vous avez été expulsé de %(roomName)s by %(userName)s.",
"You may wish to login with a different account, or add this email to this account.": "Vous souhaiteriez peut-être vous identifier avec un autre compte, ou ajouter cette e-mail à votre compte.", "You may wish to login with a different account, or add this email to this account.": "Vous souhaiteriez peut-être vous identifier avec un autre compte, ou ajouter cette e-mail à votre compte.",
"Your home server does not support device management.": "Votre home server ne supporte pas la gestion d'appareils.", "Your home server does not support device management.": "Votre homeserver ne supporte pas la gestion d'appareils.",
"(~%(count)s results).one": "(~%(count)s résultat)", "(~%(count)s results).one": "(~%(count)s résultat)",
"(~%(count)s results).other": "(~%(count)s résultats)", "(~%(count)s results).other": "(~%(count)s résultats)",
"Device Name": "Nom de l'appareil", "Device Name": "Nom de l'appareil",
@ -916,7 +916,7 @@
"%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (pouvoir %(powerLevelNumber)s)", "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (pouvoir %(powerLevelNumber)s)",
"(could not connect media)": "(impossible de se connecter au média)", "(could not connect media)": "(impossible de se connecter au média)",
"(no answer)": "(pas de réponse)", "(no answer)": "(pas de réponse)",
"(unknown failure: %(reason)s)": "(erreur inconnue: %(reason)s)", "(unknown failure: %(reason)s)": "(erreur inconnue : %(reason)s)",
"Your browser does not support the required cryptography extensions": "Votre navigateur ne supporte pas les extensions cryptographiques nécessaires", "Your browser does not support the required cryptography extensions": "Votre navigateur ne supporte pas les extensions cryptographiques nécessaires",
"Not a valid Riot keyfile": "Fichier de clé Riot non valide", "Not a valid Riot keyfile": "Fichier de clé Riot non valide",
"Authentication check failed: incorrect password?": "Erreur didentification: mot de passe incorrect ?", "Authentication check failed: incorrect password?": "Erreur didentification: mot de passe incorrect ?",
@ -924,7 +924,7 @@
"Do you want to set an email address?": "Souhaitez-vous configurer une adresse e-mail ?", "Do you want to set an email address?": "Souhaitez-vous configurer une adresse e-mail ?",
"This will allow you to reset your password and receive notifications.": "Ceci va vous permettre de réinitialiser votre mot de passe et de recevoir des notifications.", "This will allow you to reset your password and receive notifications.": "Ceci va vous permettre de réinitialiser votre mot de passe et de recevoir des notifications.",
"Press <StartChatButton> to start a chat with someone": "Cliquez sur <StartChatButton> pour entamer une discussion avec quelqu'un", "Press <StartChatButton> to start a chat with someone": "Cliquez sur <StartChatButton> pour entamer une discussion avec quelqu'un",
"You're not in any rooms yet! Press <CreateRoomButton> to make a room or <RoomDirectoryButton> to browse the directory": "Vous n'avez pas encore rejoint de salle ! Cliquez sur <CreateRoomButton> pour créer une salle ou sur <RoomDirectoryButton> pour explorer l'annuaire", "You're not in any rooms yet! Press <CreateRoomButton> to make a room or <RoomDirectoryButton> to browse the directory": "Vous n'avez pas encore rejoint de salon ! Cliquez sur <CreateRoomButton> pour créer un salon ou sur <RoomDirectoryButton> pour explorer le répertoire",
"To return to your account in future you need to set a password": "Pour pouvoir accéder à votre compte dans le futur, vous devez enregistrer un mot de passe", "To return to your account in future you need to set a password": "Pour pouvoir accéder à votre compte dans le futur, vous devez enregistrer un mot de passe",
"Skip": "Passer", "Skip": "Passer",
"Start verification": "Commencer la vérification", "Start verification": "Commencer la vérification",
@ -934,5 +934,50 @@
"Your unverified device '%(displayName)s' is requesting encryption keys.": "Votre appareil non vérifié '%(displayName)s' demande des clés de chiffrement.", "Your unverified device '%(displayName)s' is requesting encryption keys.": "Votre appareil non vérifié '%(displayName)s' demande des clés de chiffrement.",
"Encryption key request": "Requête de clé de chiffrement", "Encryption key request": "Requête de clé de chiffrement",
"Updates": "Mises à jour", "Updates": "Mises à jour",
"Check for update": "Rechercher une mise à jour" "Check for update": "Rechercher une mise à jour",
"Add a widget": "Ajouter un widget",
"Allow": "Autoriser",
"Changes colour scheme of current room": "Change le jeu de couleur du salon",
"Delete widget": "Supprimer le widget",
"Define the power level of a user": "Définir le niveau de privilèges d'un utilisateur",
"Edit": "Modifier",
"Enable automatic language detection for syntax highlighting": "Activer la détection automatique de langue pour la correction orthographique",
"Hide Apps": "Masquer les applications",
"Hide join/leave messages (invites/kicks/bans unaffected)": "Masquer les messages d'arrivée/départ (n'affecte pas les invitations/exclusions/bannissements)",
"Hide avatar and display name changes": "Masquer les changements d'avatar et de nom",
"Matrix Apps": "Matrix Apps",
"Revoke widget access": "Désactiver les accès du widget",
"Sets the room topic": "Configure le sujet du salon",
"Show Apps": "Afficher les applications",
"To get started, please pick a username!": "Pour débuter, choisissez un nom d'utilisateur !",
"Unable to create widget.": "Impossible de créer le widget.",
"Unbans user with given id": "Amnistie l'utilisateur à partir de son identifiant",
"You are not in this room.": "Vous n'êtes pas dans ce salon.",
"You do not have permission to do that in this room.": "Vous n'avez pas la permission d'effectuer cette action dans ce salon.",
"Autocomplete Delay (ms):": "Délai pour l'autocomplétion (ms) :",
"This Home server does not support groups": "Ce homeserver ne supporte pas les groupes",
"Loading device info...": "Chargement des informations sur l'appareil...",
"Groups": "Groupes",
"Create a new group": "Créer un nouveau groupe",
"Create Group": "Créer le groupe",
"Group Name": "Nom du groupe",
"Example": "Exemple",
"Create": "Créer",
"Group ID": "Identifiant du groupe",
"+example:%(domain)s": "+exemple:%(domain)s",
"Group IDs must be of the form +localpart:%(domain)s": "Les identifiants de groupe doivent être au format +localpart:%(domain)s",
"It is currently only possible to create groups on your own home server: use a group ID ending with %(domain)s": "Il n'est pas encore possible de créer des groupes sur votre propre homeserver : utilisez un identifiant de groupe terminant par %(domain)s",
"Room creation failed": "Impossible de créer le salon",
"You are a member of these groups:": "Vous êtes membre des groupes suivants :",
"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.": "Créez un groupe pour représenter votre communauté ! Définissez un jeu de salons et votre propre page d'accueil pour marquer votre espace dans l'univers Matrix.",
"Join an existing group": "Rejoindre un groupe existant",
"To join an exisitng group you'll have to know its group identifier; this will look something like <i>+example:matrix.org</i>.": "Pour rejoindre un groupe existant, vous devez connaître son identifiant de groupe ; il ressemble à <i>+exemple:matrix.org</i>.",
"Featured Rooms:": "Salons mis en avant :",
"Error whilst fetching joined groups": "Erreur en récupérant la liste des groupes",
"Featured Users:": "Utilisateurs mis en avant :",
"Edit Group": "Modifier le groupe",
"Automatically replace plain text Emoji": "Remplacer automatiquement le texte par des Emoji",
"Failed to upload image": "Impossible de télécharger l'image",
"Failed to update group": "Impossible de modifier le groupe",
"Hide avatars in user and room mentions": "Masquer les avatars dans les mentions d'utilisateur et de salon"
} }

View File

@ -190,10 +190,8 @@
"%(items)s and %(remaining)s others": "%(items)s és még: %(remaining)s", "%(items)s and %(remaining)s others": "%(items)s és még: %(remaining)s",
"%(items)s and one other": "%(items)s és még egy", "%(items)s and one other": "%(items)s és még egy",
"%(items)s and %(lastItem)s": "%(items)s és %(lastItem)s", "%(items)s and %(lastItem)s": "%(items)s és %(lastItem)s",
"and %(count)s others...": { "and %(count)s others....other": "és még: %(count)s ...",
"other": "és még: %(count)s ...", "and %(count)s others....one": "és még egy...",
"one": "és még egy..."
},
"%(names)s and %(lastPerson)s are typing": "%(names)s és %(lastPerson)s írnak", "%(names)s and %(lastPerson)s are typing": "%(names)s és %(lastPerson)s írnak",
"%(names)s and one other are typing": "%(names)s és még valaki ír", "%(names)s and one other are typing": "%(names)s és még valaki ír",
"%(names)s and %(count)s others are typing": "%(names)s és %(count)s ember ír", "%(names)s and %(count)s others are typing": "%(names)s és %(count)s ember ír",
@ -219,8 +217,8 @@
"Bug Report": "Hiba jelentés", "Bug Report": "Hiba jelentés",
"Bulk Options": "Tömeges beállítások", "Bulk Options": "Tömeges beállítások",
"Call Timeout": "Hívás időtúllépés", "Call Timeout": "Hívás időtúllépés",
"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.": "Nem lehet kapcsolódni az egyedi szerverhez - ellenőrizd a kapcsolatot, biztosítsd, hogy a <a>egyedi szerver tanúsítványa</a> hiteles legyen, és a böngésző kiterjesztések ne blokkolják a kéréseket.", "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.": "Nem lehet kapcsolódni a saját szerverhez - ellenőrizd a kapcsolatot, biztosítsd, hogy a <a>saját szerver tanúsítványa</a> hiteles legyen, és a böngésző kiterjesztések ne blokkolják a kéréseket.",
"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>.": "Nem lehet csatlakozni az egyedi szerverhez HTTP-n keresztül ha HTTPS van a böngésző címsorában. Vagy használj HTTPS-t vagy <a>engedélyezd a nem biztonságos script-et</a>.", "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or <a>enable unsafe scripts</a>.": "Nem lehet csatlakozni a saját szerverhez HTTP-n keresztül ha HTTPS van a böngésző címsorában. Vagy használj HTTPS-t vagy <a>engedélyezd a nem biztonságos script-et</a>.",
"Can't load user settings": "A felhasználói beállítások nem tölthetők be", "Can't load user settings": "A felhasználói beállítások nem tölthetők be",
"Change Password": "Jelszó megváltoztatása", "Change Password": "Jelszó megváltoztatása",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s megváltoztatta a nevét erről: %(oldDisplayName)s erre: %(displayName)s.", "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s megváltoztatta a nevét erről: %(oldDisplayName)s erre: %(displayName)s.",
@ -311,7 +309,7 @@
"Enter Code": "Kód megadása", "Enter Code": "Kód megadása",
"Enter passphrase": "Jelmondat megadása", "Enter passphrase": "Jelmondat megadása",
"Error decrypting attachment": "Csatolmány visszafejtése sikertelen", "Error decrypting attachment": "Csatolmány visszafejtése sikertelen",
"Error: Problem communicating with the given homeserver.": "Hiba: Probléma van az egyedi szerverrel való kommunikációval.", "Error: Problem communicating with the given homeserver.": "Hiba: Probléma van az saját szerverrel való kommunikációval.",
"Event information": "Esemény információ", "Event information": "Esemény információ",
"Existing Call": "Hívás folyamatban", "Existing Call": "Hívás folyamatban",
"Export": "Mentés", "Export": "Mentés",
@ -351,7 +349,7 @@
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "A biztonság érdekében a kilépéskor a ponttól pontig való (E2E) titkosításhoz szükséges kulcsok törlésre kerülnek a böngészőből. Ha a régi üzeneteket továbbra is el szeretnéd olvasni, kérlek mentsed ki a szobákhoz tartozó kulcsot.", "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "A biztonság érdekében a kilépéskor a ponttól pontig való (E2E) titkosításhoz szükséges kulcsok törlésre kerülnek a böngészőből. Ha a régi üzeneteket továbbra is el szeretnéd olvasni, kérlek mentsed ki a szobákhoz tartozó kulcsot.",
"Found a bug?": "Hibát találtál?", "Found a bug?": "Hibát találtál?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s : %(fromPowerLevel)s -> %(toPowerLevel)s", "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s : %(fromPowerLevel)s -> %(toPowerLevel)s",
"Guest access is disabled on this Home Server.": "Vendég belépés tiltva van az Otthoni szerveren.", "Guest access is disabled on this Home Server.": "Vendég belépés tiltva van a Saját szerveren.",
"Guests can't set avatars. Please register.": "A vendégek nem tudnak avatar képet beállítani. Kérlek regisztrálj.", "Guests can't set avatars. Please register.": "A vendégek nem tudnak avatar képet beállítani. Kérlek regisztrálj.",
"Guest users can't create new rooms. Please register to create room and start a chat.": "Vendégek nem készíthetnek szobákat. Kérlek regisztrálj, hogy szobát tudják nyitni és el tudj kezdeni csevegni.", "Guest users can't create new rooms. Please register to create room and start a chat.": "Vendégek nem készíthetnek szobákat. Kérlek regisztrálj, hogy szobát tudják nyitni és el tudj kezdeni csevegni.",
"Guest users can't upload files. Please register to upload.": "Vendégek nem tölthetnek fel fájlokat. A feltöltéshez kérlek regisztrálj.", "Guest users can't upload files. Please register to upload.": "Vendégek nem tölthetnek fel fájlokat. A feltöltéshez kérlek regisztrálj.",
@ -363,7 +361,7 @@
"Hide Text Formatting Toolbar": "Szövegformázási menü elrejtése", "Hide Text Formatting Toolbar": "Szövegformázási menü elrejtése",
"Historical": "Archív", "Historical": "Archív",
"Home": "Kezdőlap", "Home": "Kezdőlap",
"Homeserver is": "Egyedi szerver:", "Homeserver is": "Saját szerver:",
"Identity Server is": "Azonosítási szerver:", "Identity Server is": "Azonosítási szerver:",
"I have verified my email address": "Ellenőriztem az e-mail címemet", "I have verified my email address": "Ellenőriztem az e-mail címemet",
"Import": "Betöltés", "Import": "Betöltés",
@ -530,7 +528,7 @@
"since they were invited": "onnantól, hogy meg lett hívva", "since they were invited": "onnantól, hogy meg lett hívva",
"Some of your messages have not been sent.": "Néhány üzeneted nem lett elküldve.", "Some of your messages have not been sent.": "Néhány üzeneted nem lett elküldve.",
"Someone": "Valaki", "Someone": "Valaki",
"Sorry, this homeserver is using a login which is not recognised ": "Bocs, ez az egyedi szerver olyan beléptetést használ ami nem ismert ", "Sorry, this homeserver is using a login which is not recognised ": "Bocs, ez a saját szerver olyan beléptetést használ ami nem ismert ",
"Start a chat": "Csevegés indítása", "Start a chat": "Csevegés indítása",
"Start authentication": "Azonosítás indítása", "Start authentication": "Azonosítás indítása",
"Start Chat": "Csevegés indítása", "Start Chat": "Csevegés indítása",
@ -550,10 +548,10 @@
"The email address linked to your account must be entered.": "A fiókodhoz kötött e-mail címet add meg.", "The email address linked to your account must be entered.": "A fiókodhoz kötött e-mail címet add meg.",
"Press <StartChatButton> to start a chat with someone": "Nyomd meg a <StartChatButton> gombot ha szeretnél csevegni valakivel", "Press <StartChatButton> to start a chat with someone": "Nyomd meg a <StartChatButton> gombot ha szeretnél csevegni valakivel",
"Privacy warning": "Magánéleti figyelmeztetés", "Privacy warning": "Magánéleti figyelmeztetés",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "'%(fileName)s' fájl túllépte az Otthoni szerverben beállított feltöltési méret határt", "The file '%(fileName)s' exceeds this home server's size limit for uploads": "'%(fileName)s' fájl túllépte a Saját szerverben beállított feltöltési méret határt",
"The file '%(fileName)s' failed to upload": "'%(fileName)s' fájl feltöltése sikertelen", "The file '%(fileName)s' failed to upload": "'%(fileName)s' fájl feltöltése sikertelen",
"The remote side failed to pick up": "A hívott fél nem vette fel", "The remote side failed to pick up": "A hívott fél nem vette fel",
"This Home Server does not support login using email address.": "Az Otthoni szerver nem támogatja a belépést e-mail címmel.", "This Home Server does not support login using email address.": "A Saját szerver nem támogatja a belépést e-mail címmel.",
"This invitation was sent to an email address which is not associated with this account:": "A meghívó olyan e-mail címre lett küldve ami nincs összekötve ezzel a fiókkal:", "This invitation was sent to an email address which is not associated with this account:": "A meghívó olyan e-mail címre lett küldve ami nincs összekötve ezzel a fiókkal:",
"There was a problem logging in.": "Hiba történt a bejelentkezésnél.", "There was a problem logging in.": "Hiba történt a bejelentkezésnél.",
"This room has no local addresses": "Ennek a szobának nincs helyi címe", "This room has no local addresses": "Ennek a szobának nincs helyi címe",
@ -675,7 +673,7 @@
"You need to be able to invite users to do that.": "Hogy ezt csinálhasd meg kell tudnod hívni felhasználókat.", "You need to be able to invite users to do that.": "Hogy ezt csinálhasd meg kell tudnod hívni felhasználókat.",
"You need to be logged in.": "Be kell jelentkezz.", "You need to be logged in.": "Be kell jelentkezz.",
"You need to enter a user name.": "Be kell írnod a felhasználói nevet.", "You need to enter a user name.": "Be kell írnod a felhasználói nevet.",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Ez az e-mail cím, úgy néz ki, nincs összekötve a Matrix azonosítóval ezen az egyedi szerveren.", "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Ez az e-mail cím, úgy néz ki, nincs összekötve a Matrix azonosítóval ezen a saját szerveren.",
"Your password has been reset": "A jelszavad visszaállítottuk", "Your password has been reset": "A jelszavad visszaállítottuk",
"Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "A jelszavadat sikeresen megváltoztattuk. Nem kapsz \"push\" értesítéseket amíg a többi eszközön vissza nem jelentkezel", "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "A jelszavadat sikeresen megváltoztattuk. Nem kapsz \"push\" értesítéseket amíg a többi eszközön vissza nem jelentkezel",
"to demote": "a hozzáférési szint csökkentéséhez", "to demote": "a hozzáférési szint csökkentéséhez",
@ -684,7 +682,7 @@
"You seem to be uploading files, are you sure you want to quit?": "Úgy tűnik fájlokat töltesz fel, biztosan kilépsz?", "You seem to be uploading files, are you sure you want to quit?": "Úgy tűnik fájlokat töltesz fel, biztosan kilépsz?",
"You should not yet trust it to secure data": "Még ne bízz meg a titkosításban", "You should not yet trust it to secure data": "Még ne bízz meg a titkosításban",
"You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Nem leszel képes visszavonni ezt a változtatást mivel a felhasználót ugyanarra a szintre emeled amin te vagy.", "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Nem leszel képes visszavonni ezt a változtatást mivel a felhasználót ugyanarra a szintre emeled amin te vagy.",
"Your home server does not support device management.": "Az Otthoni szervered nem támogatja az eszközök kezelését.", "Your home server does not support device management.": "A Saját szervered nem támogatja az eszközök kezelését.",
"Sun": "Vas", "Sun": "Vas",
"Mon": "Hé", "Mon": "Hé",
"Tue": "K", "Tue": "K",
@ -743,7 +741,7 @@
"quote": "idézet", "quote": "idézet",
"bullet": "lista", "bullet": "lista",
"numbullet": "számozott lista", "numbullet": "számozott lista",
"%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)s %(repeats)s alkalommal léptek be", "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)s%(repeats)s alkalommal léptek be",
"%(oneUser)sjoined %(repeats)s times": "%(oneUser)s %(repeats)s alkalommal lépett be", "%(oneUser)sjoined %(repeats)s times": "%(oneUser)s %(repeats)s alkalommal lépett be",
"%(severalUsers)sjoined": "%(severalUsers)s csatlakozott", "%(severalUsers)sjoined": "%(severalUsers)s csatlakozott",
"%(oneUser)sjoined": "%(oneUser)s csatlakozott", "%(oneUser)sjoined": "%(oneUser)s csatlakozott",
@ -836,7 +834,7 @@
"Verify...": "Ellenőrzés...", "Verify...": "Ellenőrzés...",
"ex. @bob:example.com": "pl.: @bob:example.com", "ex. @bob:example.com": "pl.: @bob:example.com",
"Add User": "Felhasználó hozzáadás", "Add User": "Felhasználó hozzáadás",
"This Home Server would like to make sure you are not a robot": "Az Otthoni szerver meg szeretne győződni arról, hogy nem vagy robot", "This Home Server would like to make sure you are not a robot": "A Saját szerver meg szeretne győződni arról, hogy nem vagy robot",
"Sign in with CAS": "Belépés CAS-sal", "Sign in with CAS": "Belépés CAS-sal",
"Please check your email to continue registration.": "Ellenőrizd az e-mailedet a regisztráció folytatásához.", "Please check your email to continue registration.": "Ellenőrizd az e-mailedet a regisztráció folytatásához.",
"Token incorrect": "Helytelen token", "Token incorrect": "Helytelen token",
@ -845,7 +843,7 @@
"You are registering with %(SelectedTeamName)s": "%(SelectedTeamName)s névvel regisztrálsz", "You are registering with %(SelectedTeamName)s": "%(SelectedTeamName)s névvel regisztrálsz",
"Default server": "Alapértelmezett szerver", "Default server": "Alapértelmezett szerver",
"Custom server": "Egyedi szerver", "Custom server": "Egyedi szerver",
"Home server URL": "Otthoni szerver URL", "Home server URL": "Saját szerver URL",
"Identity server URL": "Azonosítási szerver URL", "Identity server URL": "Azonosítási szerver URL",
"What does this mean?": "Ez mit jelent?", "What does this mean?": "Ez mit jelent?",
"Error decrypting audio": "Hiba a hang visszafejtésénél", "Error decrypting audio": "Hiba a hang visszafejtésénél",
@ -898,13 +896,13 @@
"Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "A megjelenítési neved az ahogy a többiek látják amikor a szobában csevegsz. Mit szeretnél mi legyen?", "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "A megjelenítési neved az ahogy a többiek látják amikor a szobában csevegsz. Mit szeretnél mi legyen?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Jelenleg fekete listára teszel minden ismeretlen eszközt. Ha üzenetet szeretnél küldeni ezekre az eszközökre először ellenőrizned kell őket.", "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Jelenleg fekete listára teszel minden ismeretlen eszközt. Ha üzenetet szeretnél küldeni ezekre az eszközökre először ellenőrizned kell őket.",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "Azt javasoljuk, hogy menj végig ellenőrző folyamaton minden eszköznél, hogy meg megerősítsd minden eszköz a jogos tulajdonosához tartozik, de újraküldheted az üzenetet ellenőrzés nélkül, ha úgy szeretnéd.", "We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "Azt javasoljuk, hogy menj végig ellenőrző folyamaton minden eszköznél, hogy meg megerősítsd minden eszköz a jogos tulajdonosához tartozik, de újraküldheted az üzenetet ellenőrzés nélkül, ha úgy szeretnéd.",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Használhatod az Otthoni szerver opciót hogy más Matrix szerverre csatlakozz Otthoni szerver URL megadásával.", "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Használhatod az Otthoni szerver opciót, hogy más Matrix szerverre csatlakozz Saját szerver URL megadásával.",
"This allows you to use this app with an existing Matrix account on a different home server.": "Ezzel használhatod ezt az alkalmazást a meglévő Matrix fiókoddal és másik Otthoni szerveren.", "This allows you to use this app with an existing Matrix account on a different home server.": "Ezzel használhatod ezt az alkalmazást a meglévő Matrix fiókoddal és másik Saját szerveren.",
"You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Beállíthatsz egy egyedi azonosító szervert is de ez tulajdonképpen meggátolja az együttműködést e-mail címmel azonosított felhasználókkal.", "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Beállíthatsz egy egyedi azonosító szervert is de ez tulajdonképpen meggátolja az együttműködést e-mail címmel azonosított felhasználókkal.",
"If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Ha nem állítasz be e-mail címet nem fogod tudni a jelszavadat alaphelyzetbe állítani. Biztos vagy benne?", "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Ha nem állítasz be e-mail címet nem fogod tudni a jelszavadat alaphelyzetbe állítani. Biztos vagy benne?",
"You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Azonosítás céljából egy harmadik félhez leszel irányítva (%(integrationsUrl)s). Folytatod?", "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Azonosítás céljából egy harmadik félhez leszel irányítva (%(integrationsUrl)s). Folytatod?",
"URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "URL előnézet alapból %(globalDisableUrlPreview)s van a szoba résztvevői számára.", "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "URL előnézet alapból %(globalDisableUrlPreview)s van a szoba résztvevői számára.",
"This will be your account name on the <span></span> homeserver, or you can pick a <a>different server</a>.": "Ez lesz a felhasználói neved az <span></span> egyedi szerveren, vagy választhatsz egy <a>másik szervert</a>.", "This will be your account name on the <span></span> homeserver, or you can pick a <a>different server</a>.": "Ez lesz a felhasználói neved a <span></span> saját szerveren, vagy választhatsz egy <a>másik szervert</a>.",
"Disable Peer-to-Peer for 1:1 calls": "Közvetlen kapcsolat tiltása az 1:1 hívásoknál", "Disable Peer-to-Peer for 1:1 calls": "Közvetlen kapcsolat tiltása az 1:1 hívásoknál",
"To return to your account in future you need to set a password": "Ahhoz hogy később visszatérj a fiókodba be kell állítanod egy jelszót", "To return to your account in future you need to set a password": "Ahhoz hogy később visszatérj a fiókodba be kell állítanod egy jelszót",
"Skip": "Kihagy", "Skip": "Kihagy",
@ -915,5 +913,53 @@
"Your unverified device '%(displayName)s' is requesting encryption keys.": "Az ellenőrizetlen eszközöd '%(displayName)s' titkosítási kulcsokat kér.", "Your unverified device '%(displayName)s' is requesting encryption keys.": "Az ellenőrizetlen eszközöd '%(displayName)s' titkosítási kulcsokat kér.",
"Encryption key request": "Titkosítási kulcs kérés", "Encryption key request": "Titkosítási kulcs kérés",
"Updates": "Frissítések", "Updates": "Frissítések",
"Check for update": "Frissítések keresése" "Check for update": "Frissítések keresése",
"Add a widget": "Kisalkalmazás hozzáadása",
"Allow": "Engedélyez",
"Changes colour scheme of current room": "Az aktuális szoba színének megváltoztatása",
"Delete widget": "Kisalkalmazás törlése",
"Define the power level of a user": "A felhasználó szintjének meghatározása",
"Edit": "Szerkeszt",
"Enable automatic language detection for syntax highlighting": "Nyelv automatikus felismerése szintaxis kiemeléshez",
"Hide Apps": "Alkalmazások elrejtése",
"Hide join/leave messages (invites/kicks/bans unaffected)": "Belép/kilép üzenetek elrejtése (meghívók, kirúgások, kitiltások nem érintettek)",
"Hide avatar and display name changes": "Profilkép és megjelenítési név változás üzenetek elrejtése",
"Matrix Apps": "Mátrix alkalmazások",
"AM": "de",
"PM": "du",
"Revoke widget access": "Kisalkalmazás hozzáférésének visszavonása",
"Sets the room topic": "Szoba téma beállítás",
"Show Apps": "Alkalmazások megmutatása",
"To get started, please pick a username!": "Az induláshoz válassz egy felhasználói nevet!",
"Unable to create widget.": "Nem lehet kisalkalmazást létrehozni.",
"Unbans user with given id": "Visszaengedi a megadott azonosítójú felhasználót",
"You are not in this room.": "Nem vagy ebben a szobában.",
"You do not have permission to do that in this room.": "Nincs jogod ezt tenni ebben a szobában.",
"Verifies a user, device, and pubkey tuple": "A felhasználó, eszköz és publikus kulcs hármas ellenőrzése",
"Autocomplete Delay (ms):": "Várakozás automatikus kiegészítés előtt (ms):",
"This Home server does not support groups": "Ez a saját szerver nem támogatja a csoportokat",
"Loading device info...": "Eszköz információk betöltése...",
"Groups": "Csoportok",
"Create a new group": "Új csoport létrehozása",
"Create Group": "Csoport létrehozása",
"Group Name": "Csoport neve",
"Example": "Példa",
"Create": "Létrehoz",
"Group ID": "Csoport azonosító",
"+example:%(domain)s": "+példa:%(domain)s",
"Group IDs must be of the form +localpart:%(domain)s": "A csoport azonosítónak az alábbi formában kell lennie: +helyirész:%(domain)s",
"It is currently only possible to create groups on your own home server: use a group ID ending with %(domain)s": "Egyenlőre csoportokat csak a saját szerveren lehet létrehozni: használd a csoport azonosítót a %(domain)s végződéssel",
"Room creation failed": "Szoba létrehozás sikertelen",
"You are a member of these groups:": "Ezeknek a csoportoknak vagy a tagja:",
"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.": "Hozz létre csoportot a közösség meghatározásához! Jelölj ki szobákat és saját kezdőoldalt amivel meghatározhatod a territóriumodat a Matrix univerzumában.",
"Join an existing group": "Csatlakozz meglévő csoporthoz",
"To join an exisitng group you'll have to know its group identifier; this will look something like <i>+example:matrix.org</i>.": "Ahhoz, hogy meglévő csoporthoz csatlakozhass tudnod kell a csoport azonosítóját ami valahogy így nézhet ki: <i>+példa:matrix.org</i>.",
"Featured Rooms:": "Kiemelt szobák:",
"Error whilst fetching joined groups": "Hiba a csatlakozott csoportok betöltésénél",
"Featured Users:": "Kiemelt felhasználók:",
"Edit Group": "Csoport szerkesztése",
"Automatically replace plain text Emoji": "Egyszerű szöveg automatikus cseréje Emoji-ra",
"Failed to upload image": "Kép feltöltése sikertelen",
"Failed to update group": "Csoport frissítése sikertelen",
"Hide avatars in user and room mentions": "Profilképek elrejtése felhasználó és szoba említésekben"
} }

View File

@ -969,5 +969,14 @@
"Your unverified device '%(displayName)s' is requesting encryption keys.": "Ваше непроверенное устройство '%(displayName)s' запрашивает ключи шифрования.", "Your unverified device '%(displayName)s' is requesting encryption keys.": "Ваше непроверенное устройство '%(displayName)s' запрашивает ключи шифрования.",
"Encryption key request": "Запрос ключа шифрования", "Encryption key request": "Запрос ключа шифрования",
"Updates": "Обновления", "Updates": "Обновления",
"Check for update": "Проверить наличие обновлений" "Check for update": "Проверить наличие обновлений",
"Add a widget": "Добавить виджет",
"Allow": "Принять",
"Cannot add any more widgets": "Невозможно добавить больше виджетов",
"Changes colour scheme of current room": "Изменяет цветовую схему текущей комнаты",
"Delete widget": "Удалить виджет",
"Define the power level of a user": "Определить уровень доступа пользователя",
"Do you want to load widget from URL:": "Загрузить виджет из URL-адреса:",
"Edit": "Изменить",
"Enable automatic language detection for syntax highlighting": "Включить автоматическое определение языка для подсветки синтаксиса"
} }

View File

@ -173,5 +173,32 @@
"No Webcams detected": "Веб-камеру не виявлено", "No Webcams detected": "Веб-камеру не виявлено",
"Favourites": "Вибрані", "Favourites": "Вибрані",
"favourite": "вибране", "favourite": "вибране",
"Fill screen": "На весь екран" "Fill screen": "На весь екран",
"No media permissions": "Нема дозволів на відео/аудіо",
"You may need to manually permit Riot to access your microphone/webcam": "Можливо, вам треба дозволити Riot використання мікрофону/камери вручну",
"Default Device": "Уставний пристрій",
"Microphone": "Мікрофон",
"Camera": "Камера",
"Advanced": "Додаткові",
"Algorithm": "Алгоритм",
"Hide removed messages": "Приховати видалені повідомлення",
"Always show message timestamps": "Завжди показувати часові позначки повідомлень",
"Authentication": "Впізнавання",
"Alias (optional)": "Псевдонім (необов'язково)",
"all room members": "усі члени кімнати",
"all room members, from the point they are invited": "усі члени кімнати з моменту запрошення",
"all room members, from the point they joined": "усі члени кімнати з моменту приєднання",
"and": "та",
"%(items)s and %(remaining)s others": "%(items)s та інші %(remaining)s",
"%(items)s and one other": "%(items)s і ще один інший",
"%(items)s and %(lastItem)s": "%(items)s та %(lastItem)s",
"and %(count)s others...": {
"other": "та %(count)s інші...",
"one": "і інше..."
},
"%(names)s and %(lastPerson)s are typing": "%(names)s та %(lastPerson)s пишуть",
"%(names)s and one other are typing": "%(names)s та інші пишуть",
"%(names)s and %(count)s others are typing": "%(names)s та %(count)s інших пишуть",
"An email has been sent to": "Лист було надіслано",
"A new password must be entered.": "Має бути введений новий пароль."
} }

View File

@ -231,35 +231,31 @@ export function getCurrentLanguage() {
} }
function getLangsJson() { function getLangsJson() {
const deferred = Promise.defer(); return new Promise((resolve, reject) => {
request( request(
{ method: "GET", url: i18nFolder + 'languages.json' }, { method: "GET", url: i18nFolder + 'languages.json' },
(err, response, body) => { (err, response, body) => {
if (err || response.status < 200 || response.status >= 300) { if (err || response.status < 200 || response.status >= 300) {
deferred.reject({err: err, response: response}); reject({err: err, response: response});
return; return;
} }
deferred.resolve(JSON.parse(body)); resolve(JSON.parse(body));
} }
); );
return deferred.promise; });
} }
function getLanguage(langPath) { function getLanguage(langPath) {
const deferred = Promise.defer(); return new Promise((resolve, reject) => {
let response_return = {};
request( request(
{ method: "GET", url: langPath }, { method: "GET", url: langPath },
(err, response, body) => { (err, response, body) => {
if (err || response.status < 200 || response.status >= 300) { if (err || response.status < 200 || response.status >= 300) {
deferred.reject({err: err, response: response}); reject({err: err, response: response});
return; return;
} }
resolve(JSON.parse(body));
deferred.resolve(JSON.parse(body));
} }
); );
return deferred.promise; });
} }