-
);
diff --git a/src/createRoom.js b/src/createRoom.js
index 944c6a70a1..ffe3a85c4e 100644
--- a/src/createRoom.js
+++ b/src/createRoom.js
@@ -79,12 +79,6 @@ function createRoom(opts) {
const modal = Modal.createDialog(Loader, null, 'mx_Dialog_spinner');
let roomId;
- if (opts.andView) {
- // We will possibly have a successful join, indicate as such
- dis.dispatch({
- action: 'will_join',
- });
- }
return client.createRoom(createOpts).finally(function() {
modal.close();
}).then(function(res) {
@@ -104,8 +98,10 @@ function createRoom(opts) {
action: 'view_room',
room_id: roomId,
should_peek: false,
- // Creating a room will have joined us to the room
- joined: true,
+ // Creating a room will have joined us to the room,
+ // so we are expecting the room to come down the sync
+ // stream, if it hasn't already.
+ joining: true,
});
}
return roomId;
diff --git a/src/cryptodevices.js b/src/cryptodevices.js
new file mode 100644
index 0000000000..c93e04253f
--- /dev/null
+++ b/src/cryptodevices.js
@@ -0,0 +1,104 @@
+/*
+Copyright 2017 New Vector Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import Resend from './Resend';
+import sdk from './index';
+import Modal from './Modal';
+import { _t } from './languageHandler';
+
+/**
+ * Gets all crypto devices in a room that are marked neither known
+ * nor verified.
+ *
+ * @param {MatrixClient} matrixClient A MatrixClient
+ * @param {Room} room js-sdk room object representing the room
+ * @return {Promise} A promise which resolves to a map userId->deviceId->{@link
+ * module:crypto~DeviceInfo|DeviceInfo}.
+ */
+export function getUnknownDevicesForRoom(matrixClient, room) {
+ const roomMembers = room.getJoinedMembers().map((m) => {
+ return m.userId;
+ });
+ return matrixClient.downloadKeys(roomMembers, false).then((devices) => {
+ const unknownDevices = {};
+ // This is all devices in this room, so find the unknown ones.
+ Object.keys(devices).forEach((userId) => {
+ Object.keys(devices[userId]).map((deviceId) => {
+ const device = devices[userId][deviceId];
+
+ if (device.isUnverified() && !device.isKnown()) {
+ if (unknownDevices[userId] === undefined) {
+ unknownDevices[userId] = {};
+ }
+ unknownDevices[userId][deviceId] = device;
+ }
+ });
+ });
+ return unknownDevices;
+ });
+}
+
+/**
+ * Show the UnknownDeviceDialog for a given room. The dialog will inform the user
+ * that messages they sent to this room have not been sent due to unknown devices
+ * being present.
+ *
+ * @param {MatrixClient} matrixClient A MatrixClient
+ * @param {Room} room js-sdk room object representing the room
+ */
+export function showUnknownDeviceDialogForMessages(matrixClient, room) {
+ getUnknownDevicesForRoom(matrixClient, room).then((unknownDevices) => {
+ const onSendClicked = () => {
+ Resend.resendUnsentEvents(room);
+ };
+
+ const UnknownDeviceDialog = sdk.getComponent('dialogs.UnknownDeviceDialog');
+ Modal.createTrackedDialog('Unknown Device Dialog', '', UnknownDeviceDialog, {
+ room: room,
+ devices: unknownDevices,
+ sendAnywayLabel: _t("Send anyway"),
+ sendLabel: _t("Send"),
+ onSend: onSendClicked,
+ }, 'mx_Dialog_unknownDevice');
+ });
+}
+
+/**
+ * Show the UnknownDeviceDialog for a given room. The dialog will inform the user
+ * that a call they tried to place or answer in the room couldn't be placed or
+ * answered due to unknown devices being present.
+ *
+ * @param {MatrixClient} matrixClient A MatrixClient
+ * @param {Room} room js-sdk room object representing the room
+ * @param {func} sendAnyway Function called when the 'call anyway' or 'call'
+ * button is pressed. This should attempt to place or answer the call again.
+ * @param {string} sendAnywayLabel Label for the button displayed to retry the call
+ * when unknown devices are still present (eg. "Call Anyway")
+ * @param {string} sendLabel Label for the button displayed to retry the call
+ * after all devices have been verified (eg. "Call")
+ */
+export function showUnknownDeviceDialogForCalls(matrixClient, room, sendAnyway, sendAnywayLabel, sendLabel) {
+ getUnknownDevicesForRoom(matrixClient, room).then((unknownDevices) => {
+ const UnknownDeviceDialog = sdk.getComponent('dialogs.UnknownDeviceDialog');
+ Modal.createTrackedDialog('Unknown Device Dialog', '', UnknownDeviceDialog, {
+ room: room,
+ devices: unknownDevices,
+ sendAnywayLabel: sendAnywayLabel,
+ sendLabel: sendLabel,
+ onSend: sendAnyway,
+ }, 'mx_Dialog_unknownDevice');
+ });
+}
diff --git a/src/dispatcher.js b/src/dispatcher.js
index be74dc856e..48c8dc86e9 100644
--- a/src/dispatcher.js
+++ b/src/dispatcher.js
@@ -1,5 +1,6 @@
/*
Copyright 2015, 2016 OpenMarket Ltd
+Copyright 2017 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -20,14 +21,24 @@ const flux = require("flux");
class MatrixDispatcher extends flux.Dispatcher {
/**
- * @param {Object} payload Required. The payload to dispatch.
- * Must contain at least an 'action' key.
+ * @param {Object|function} payload Required. The payload to dispatch.
+ * If an Object, must contain at least an 'action' key.
+ * If a function, must have the signature (dispatch) => {...}.
* @param {boolean=} sync Optional. Pass true to dispatch
* synchronously. This is useful for anything triggering
* an operation that the browser requires user interaction
* for.
*/
dispatch(payload, sync) {
+ // Allow for asynchronous dispatching by accepting payloads that have the
+ // type `function (dispatch) {...}`
+ if (typeof payload === 'function') {
+ payload((action) => {
+ this.dispatch(action, sync);
+ });
+ return;
+ }
+
if (sync) {
super.dispatch(payload);
} else {
diff --git a/src/groups.js b/src/groups.js
new file mode 100644
index 0000000000..860cf71fff
--- /dev/null
+++ b/src/groups.js
@@ -0,0 +1,56 @@
+/*
+Copyright 2017 New Vector Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import PropTypes from 'prop-types';
+import { _t } from './languageHandler.js';
+
+export const GroupMemberType = PropTypes.shape({
+ userId: PropTypes.string.isRequired,
+ displayname: PropTypes.string,
+ avatarUrl: PropTypes.string,
+});
+
+export const GroupRoomType = PropTypes.shape({
+ displayname: PropTypes.string,
+ name: PropTypes.string,
+ roomId: PropTypes.string.isRequired,
+ canonicalAlias: PropTypes.string,
+ avatarUrl: PropTypes.string,
+});
+
+export function groupMemberFromApiObject(apiObject) {
+ return {
+ userId: apiObject.user_id,
+ displayname: apiObject.displayname,
+ avatarUrl: apiObject.avatar_url,
+ isPrivileged: apiObject.is_privileged,
+ };
+}
+
+export function groupRoomFromApiObject(apiObject) {
+ return {
+ displayname: apiObject.name || apiObject.canonical_alias || _t("Unnamed Room"),
+ name: apiObject.name,
+ roomId: apiObject.room_id,
+ canonicalAlias: apiObject.canonical_alias,
+ avatarUrl: apiObject.avatar_url,
+ topic: apiObject.topic,
+ numJoinedMembers: apiObject.num_joined_members,
+ worldReadable: apiObject.world_readable,
+ guestCanJoin: apiObject.guest_can_join,
+ isPublic: apiObject.is_public !== false,
+ };
+}
diff --git a/src/i18n/strings/ar.json b/src/i18n/strings/ar.json
index c1aba2edeb..807629ef64 100644
--- a/src/i18n/strings/ar.json
+++ b/src/i18n/strings/ar.json
@@ -1,5 +1,4 @@
{
- "ar-iq": "العربية",
"Continue": "استمر",
"Username available": "اسم المستخدم متاح",
"Username not available": "الإسم المستخدم غير موجود",
@@ -8,6 +7,5 @@
"Close": "إغلاق",
"Create new room": "إنشاء غرفة جديدة",
"Custom Server Options": "إعدادات السيرفر خاصة",
- "Direct Chat": "دردشة مباشرة",
"Dismiss": "صرف النظر"
}
diff --git a/src/i18n/strings/basefile.json b/src/i18n/strings/basefile.json
index 9e26dfeeb6..0967ef424b 100644
--- a/src/i18n/strings/basefile.json
+++ b/src/i18n/strings/basefile.json
@@ -1 +1 @@
-{}
\ No newline at end of file
+{}
diff --git a/src/i18n/strings/be.json b/src/i18n/strings/be.json
index 9e26dfeeb6..0967ef424b 100644
--- a/src/i18n/strings/be.json
+++ b/src/i18n/strings/be.json
@@ -1 +1 @@
-{}
\ No newline at end of file
+{}
diff --git a/src/i18n/strings/ca.json b/src/i18n/strings/ca.json
new file mode 100644
index 0000000000..88a8ced7b9
--- /dev/null
+++ b/src/i18n/strings/ca.json
@@ -0,0 +1,36 @@
+{
+ "People": "Gent",
+ "Add a widget": "Afegeix un giny",
+ "Account": "Compte",
+ "VoIP": "Veu IP",
+ "No Microphones detected": "No s'ha detectat cap micròfon",
+ "No Webcams detected": "No s'ha detectat cap càmera web",
+ "Microphone": "Micròfon",
+ "Camera": "Càmera",
+ "Advanced": "Avançat",
+ "Algorithm": "Algoritme",
+ "Hide removed messages": "Amaga els missatges esborrats",
+ "Always show message timestamps": "Mostra sempre la marca de temps del missatge",
+ "Alias (optional)": "Àlies (opcional)",
+ "An email has been sent to": "S'ha enviat un correu electrònic a",
+ "Cancel": "Cancel·la",
+ "Close": "Tanca",
+ "Create new room": "Crea una nova sala",
+ "Error": "Error",
+ "Failed to forget room %(errCode)s": "No s'ha pogut oblidar la sala %(errCode)s",
+ "Favourite": "Favorit",
+ "Mute": "Silenciat",
+ "Room directory": "Directori de sales",
+ "Settings": "Paràmetres",
+ "Start chat": "Inicia un xat",
+ "Failed to change password. Is your password correct?": "Hi ha hagut un error al canviar la vostra contrasenya. És correcte la vostra contrasenya?",
+ "Continue": "Continua",
+ "Custom Server Options": "Opcions de servidor personalitzat",
+ "Dismiss": "Omet",
+ "Notifications": "Notificacions",
+ "Remove": "Elimina",
+ "unknown error code": "codi d'error desconegut",
+ "OK": "D'acord",
+ "a room": "una sala",
+ "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "S'ha enviat un missatge de text a +%(msisdn)s. Entreu si us plau el codi de verificació que conté"
+}
diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json
index 25aa1eb1a9..c797044693 100644
--- a/src/i18n/strings/cs.json
+++ b/src/i18n/strings/cs.json
@@ -13,12 +13,12 @@
"Rooms": "Místnosti",
"Scroll to unread messages": "Přejít k nepřečteným zprávám",
"Search": "Hledání",
- "Send a message (unencrypted)": "Poslat zprávu (nezašifrovaně)",
+ "Send a message (unencrypted)": "Poslat zprávu (nešifrovanou)",
"Settings": "Nastavení",
"Start Chat": "Začít chat",
"This room": "Tato místnost",
"Unencrypted room": "Nezašifrovaná místnost",
- "Failed to upload file": "Nahrát soubor",
+ "Failed to upload file": "Nahrání souboru se nezdařilo",
"Video call": "Videohovor",
"Voice call": "Telefonát",
"Sun": "Ne",
@@ -44,12 +44,633 @@
"Create new room": "Založit novou místnost",
"Room directory": "Adresář místností",
"Start chat": "Začít chat",
- "Options": "Možnosti",
+ "Options": "Volby",
"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"
+ "Mute": "Ztlumit",
+ "Continue": "Pokračovat",
+ "Failed to change password. Is your password correct?": "Nepodařilo se změnit heslo. Zadáváte své heslo správně?",
+ "Operation failed": "Operace se nezdařila",
+ "Remove": "Odebrat",
+ "unknown error code": "neznámý kód chyby",
+ "OK": "OK",
+ "Failed to forget room %(errCode)s": "Nepodařilo se zapomenout místnost %(errCode)s",
+ "Dismiss": "Zahodit",
+ "powered by Matrix": "poháněno Matrixem",
+ "Custom Server Options": "Vlastní serverové volby",
+ "to favourite": "oblíbíte",
+ "to demote": "upozadíte",
+ "Drop here %(toAction)s": "Přetažením sem %(toAction)s",
+ "Add a widget": "Přidat widget",
+ "a room": "místnost",
+ "Accept": "Přijmout",
+ "%(targetName)s accepted an invitation.": "%(targetName)s přijal/a pozvání.",
+ "Account": "Účet",
+ "Access Token:": "Přístupový žeton:",
+ "Add": "Přidat",
+ "Add a topic": "Přidat téma",
+ "Add email address": "Přidat e-mailovou adresu",
+ "Add phone number": "Přidat telefonní číslo",
+ "Admin": "Správce",
+ "Allow": "Povolit",
+ "VoIP": "VoIP",
+ "No Microphones detected": "Nerozpoznány žádné mikrofony",
+ "No Webcams detected": "Nerozpoznány žádné webkamery",
+ "Default Device": "Výchozí zařízení",
+ "Microphone": "Mikrofon",
+ "Camera": "Kamera",
+ "Advanced": "Pokročilé",
+ "Algorithm": "Algoritmus",
+ "Hide removed messages": "Skrýt odstraněné zprávy",
+ "Always show message timestamps": "Vždy zobrazovat časové značky zpráv",
+ "Authentication": "Ověření",
+ "A new password must be entered.": "Musíte zadat nové heslo.",
+ "An error has occurred.": "Nastala chyba.",
+ "Anyone": "Kdokoliv",
+ "Are you sure?": "Určitě?",
+ "Are you sure you want to leave the room '%(roomName)s'?": "Určitě chcete odejít z místnosti '%(roomName)s'?",
+ "Are you sure you want to reject the invitation?": "Určitě chcete odmítnout pozvání?",
+ "Are you sure you want to upload the following files?": "Určitě chcete nahrát následující soubory?",
+ "Attachment": "Příloha",
+ "Autoplay GIFs and videos": "Automaticky přehrávat GIFy a videa",
+ "Bug Report": "Hlášení o chybě",
+ "Can't connect to homeserver - please check your connectivity, ensure your
homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Nelze se připojit k domovskému serveru – zkontrolujte prosím své připojení, prověřte, zdali je
SSL certifikát vašeho domovského serveru důvěryhodný, a že některé z rozšíření prohlížeče neblokuje komunikaci.",
+ "Anyone who knows the room's link, apart from guests": "Kdokoliv, kdo má odkaz na místnost, kromě hostů",
+ "Anyone who knows the room's link, including guests": "Kdokoliv, kdo má odkaz na místnost, a to i hosté",
+ "Banned users": "Vykázaní uživatelé",
+ "Ban": "Vykázat",
+ "Bans user with given id": "Vykáže uživatele s daným id",
+ "Bulk Options": "Hromadné volby",
+ "Can't load user settings": "Nelze načíst uživatelské nastavení",
+ "Cannot add any more widgets": "Nelze přidat žádné další widgety",
+ "Change Password": "Změnit heslo",
+ "%(senderName)s changed their profile picture.": "%(senderName)s změnil/a svůj profilový obrázek.",
+ "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s změnil/a název místnosti na %(roomName)s.",
+ "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s odstranil/a název místnosti.",
+ "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s změnil/a téma na \"%(topic)s\".",
+ "Changes to who can read history will only apply to future messages in this room": "Změny viditelnosti historie budou platné až pro budoucí zprávy v této místnosti",
+ "Changes your display nickname": "Změní vaši zobrazovanou přezdívku",
+ "Changes colour scheme of current room": "Změní barevné schéma aktuální místnosti",
+ "Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "V současnosti změna hesla resetuje všechny šifrovací klíče na všech zařízeních, což vám znepřístupní historii zašifrovaných chatů, pokud si nejprve nevyexportujete klíče svých místností a pak je do nich znova nevložíte. Toto bude v budoucnu lépe ošetřeno.",
+ "Clear Cache and Reload": "Vymazat mezipaměť a načíst znovu",
+ "Clear Cache": "Vymazat mezipaměť",
+ "
Click here to join the discussion!": "
Kliknutím zde se přidáte k diskuzi!",
+ "Command error": "Chyba příkazu",
+ "Commands": "Příkazy",
+ "Conference call failed.": "Konferenční hovor selhal.",
+ "Conference calling is in development and may not be reliable.": "Konferenční hovory jsou stále ve vývoji a nemusí být spolehlivé.",
+ "Conference calls are not supported in encrypted rooms": "V šifrovaných místnostech nejsou konferenční hovory podporovány",
+ "Conference calls are not supported in this client": "V tomto klientovi nejsou konferenční hovory podporovány",
+ "Confirm password": "Potvrďte heslo",
+ "Confirm your new password": "Potvrďte své nové heslo",
+ "Could not connect to the integration server": "Nepodařilo se spojit se začleňovacím serverem",
+ "%(count)s new messages|one": "%(count)s nová zpráva",
+ "%(count)s new messages|other": "%(count)s nových zpráv",
+ "Create an account": "Vytvořit účet",
+ "Create Room": "Vytvořit místnost",
+ "Cryptography": "Kryptografie",
+ "Current password": "Současné heslo",
+ "Custom": "Vlastní",
+ "Custom level": "Vlastní úroveň",
+ "/ddg is not a command": "/ddg není příkazem",
+ "Deactivate Account": "Deaktivovat účet",
+ "Deactivate my account": "Deaktivovat můj účet",
+ "Decline": "Odmítnout",
+ "Decrypt %(text)s": "Dešifrovat %(text)s",
+ "Decryption error": "Chyba dešifrování",
+ "Delete": "Smazat",
+ "Delete widget": "Vymazat widget",
+ "Default": "Výchozí",
+ "Device already verified!": "Zařízení již bylo ověřeno!",
+ "Device ID": "ID zařízení",
+ "Device ID:": "ID zařízení:",
+ "device id: ": "id zařízení: ",
+ "Device key:": "Klíč zařízení:",
+ "Devices": "Zařízení",
+ "Direct chats": "Přímé chaty",
+ "Disable Notifications": "Vypnout upozornění",
+ "disabled": "vypnuto",
+ "Disinvite": "Odvolat pozvání",
+ "Display name": "Zobrazované jméno",
+ "Don't send typing notifications": "Neupozorňovat ostatní, že píšu",
+ "Download %(text)s": "Stáhnout %(text)s",
+ "Drop File Here": "Přetáhněte soubor sem",
+ "Edit": "Upravit",
+ "Email": "E-mail",
+ "Email address": "E-mailová adresa",
+ "Email address (optional)": "E-mailová adresa (nepovinná)",
+ "Email, name or matrix ID": "E-mail, jméno nebo matrix ID",
+ "Emoji": "Emodži",
+ "Enable automatic language detection for syntax highlighting": "Zapnout kvůli zvýrazňování syntaxe automatické rozpoznávání jazyka",
+ "Enable encryption": "Zapnout šifrování",
+ "Enable Notifications": "Zapnout upozornění",
+ "enabled": "zapnuto",
+ "Encrypted by a verified device": "Zašifrováno ověřeným zařízením",
+ "Encrypted by an unverified device": "Zašifrováno neověřeným zařízením",
+ "Encrypted messages will not be visible on clients that do not yet implement encryption": "Zašifrované zprávy nepůjde vidět v klientech, kteří šifrování ještě nezavedli",
+ "Encrypted room": "Zašifrovaná místnost",
+ "Encryption is enabled in this room": "V této místnosti je zapnuto šifrování",
+ "Encryption is not enabled in this room": "V této místnosti není zapnuto šifrování",
+ "%(senderName)s ended the call.": "%(senderName)s ukončil/a hovor.",
+ "End-to-end encryption information": "Informace o end-to-end šifrování",
+ "End-to-end encryption is in beta and may not be reliable": "End-to-end šifrování je v raném vývoji a nemusí být spolehlivé",
+ "Enter Code": "Zadejte kód",
+ "Enter passphrase": "Zadejte heslo",
+ "Error decrypting attachment": "Chyba při dešifrování přílohy",
+ "Error: Problem communicating with the given homeserver.": "Chyba: problém v komunikaci s daným domovským serverem.",
+ "Event information": "Informace o události",
+ "Existing Call": "Probíhající hovor",
+ "Export": "Exportovat",
+ "Export E2E room keys": "Exportovat E2E klíče místnosti",
+ "Failed to ban user": "Nepodařilo se vykázat uživatele",
+ "Failed to delete device": "Nepodařilo se vymazat zařízení",
+ "Failed to join room": "Vstup do místnosti se nezdařil",
+ "Failed to kick": "Vykopnutí se nezdařilo",
+ "Failed to leave room": "Odejití z místnosti se nezdařilo",
+ "Failed to mute user": "Ztlumení uživatele se nezdařilo",
+ "Failed to send email": "Odeslání e-mailu se nezdařilo",
+ "Failed to save settings": "Nepodařilo se uložit nastavení",
+ "Failed to reject invitation": "Nepodařilo se odmítnout pozvání",
+ "Failed to reject invite": "Nepodařilo se odmítnout pozvánku",
+ "Failed to send request.": "Odeslání žádosti se nezdařilo.",
+ "Failed to set avatar.": "Nastavení avataru se nezdařilo.",
+ "Failed to set display name": "Nepodařilo se nastavit zobrazované jméno",
+ "Failed to set up conference call": "Nepodařilo se nastavit konferenční hovor",
+ "Failed to toggle moderator status": "Změna statusu moderátora se nezdařila",
+ "Failed to unban": "Přijetí zpět se nezdařilo",
+ "Failed to upload profile picture!": "Nahrání profilového obrázku se nezdařilo",
+ "Failure to create room": "Vytvoření místnosti se nezdařilo",
+ "Forget room": "Zapomenout místnost",
+ "Forgot your password?": "Zapomněl/a jste své heslo?",
+ "For security, this session has been signed out. Please sign in again.": "Z bezpečnostních důvodů bylo toto přihlášení ukončeno. Přihlašte se prosím znovu.",
+ "%(names)s and one other are typing": "%(names)s a jeden další píší",
+ "%(names)s and %(lastPerson)s are typing": "%(names)s a %(lastPerson)s píší",
+ "and %(count)s others...|other": "a %(count)s další...",
+ "%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s widget upravil/a %(senderName)s",
+ "%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s widget odstranil/a %(senderName)s",
+ "%(widgetName)s widget added by %(senderName)s": "%(widgetName)s widget přidal/a %(senderName)s",
+ "Automatically replace plain text Emoji": "Automaticky nahrazovat textové emodži",
+ "Failed to upload image": "Obrázek se nepodařilo nahrát",
+ "Room creation failed": "Místnost se nepodařilo vytvořit",
+ "%(senderName)s answered the call.": "%(senderName)s přijal/a hovor.",
+ "Click to mute audio": "Kliknutím ztlumíte zvuk",
+ "Failed to verify email address: make sure you clicked the link in the email": "E-mailovou adresu se nepodařilo ověřit. Přesvědčte se, že jste kliknul/a na zaslaný odkaz",
+ "Found a bug?": "Našli jste chybu?",
+ "Guest access is disabled on this Home Server.": "Na tomto domovském serveru je hostům vstup odepřen.",
+ "Guests cannot join this room even if explicitly invited.": "Hosté nemohou vstoupit do této místnosti, i když jsou přímo pozváni.",
+ "Hide read receipts": "Skrýt potvrzení o přečtení",
+ "Homeserver is": "Domovský server je",
+ "Identity Server is": "Server identity je",
+ "I have verified my email address": "Ověřil/a jsem svoji e-mailovou adresu",
+ "Import": "Importovat",
+ "Import E2E room keys": "Importovat E2E klíče místností",
+ "Incoming call from %(name)s": "Příchozí hovor od %(name)s",
+ "Incoming video call from %(name)s": "Příchozí videohovor od %(name)s",
+ "Incoming voice call from %(name)s": "Příchozí hlasový hovor od %(name)s",
+ "Incorrect username and/or password.": "Nesprávné uživatelské jméno nebo heslo.",
+ "Incorrect verification code": "Nesprávný ověřovací kód",
+ "Interface Language": "Jazyk rozhraní",
+ "Invalid alias format": "Neplaný formát aliasu",
+ "Invalid address format": "Neplatný formát adresy",
+ "Invalid Email Address": "Neplatná e-mailová adresa",
+ "%(senderName)s invited %(targetName)s.": "%(senderName)s pozval/a %(targetName)s.",
+ "Invite new room members": "Pozvat do místnosti nové členy",
+ "Invites": "Pozvánky",
+ "Invites user with given id to current room": "Pozve do aktuální místnosti uživatele s daným id",
+ "'%(alias)s' is not a valid format for an address": "'%(alias)s' není platný formát adresy",
+ "'%(alias)s' is not a valid format for an alias": "'%(alias)s' není platný formát aliasu",
+ "Join Room": "Vstoupit do místnosti",
+ "%(targetName)s joined the room.": "%(targetName)s vstoupil/a do místnosti.",
+ "%(senderName)s kicked %(targetName)s.": "%(senderName)s vykopnul/a %(targetName)s.",
+ "Kick": "Vykopnout",
+ "Kicks user with given id": "Vykopne uživatele s daným id",
+ "Last seen": "Naposledy viděn/a",
+ "Leave room": "Odejít z místnosti",
+ "Level:": "Úroveň:",
+ "Local addresses for this room:": "Místní adresy této místnosti:",
+ "Logged in as:": "Přihlášen/a jako:",
+ "Login as guest": "Přihlášen/a jako host",
+ "matrix-react-sdk version:": "Verze matrix-react-sdk:",
+ "Members only": "Pouze pro členy",
+ "Mobile phone number": "Číslo mobilního telefonu",
+ "Mobile phone number (optional)": "Číslo mobilního telefonu (nepovinné)",
+ "Moderator": "Moderátor",
+ "Name": "Jméno",
+ "New address (e.g. #foo:%(localDomain)s)": "Nová adresa (např. #neco:%(localDomain)s)",
+ "New password": "Nové heslo",
+ "New passwords don't match": "Nová hesla se neshodují",
+ "New passwords must match each other.": "Nová hesla se musí shodovat.",
+ "not set": "nenastaveno",
+ "not specified": "neurčeno",
+ "(not supported by this browser)": "(nepodporováno tímto prohlížečem)",
+ "
": "",
+ "AM": "dop.",
+ "PM": "odp.",
+ "NOT verified": "Neověřeno",
+ "No display name": "Žádné zobrazované jméno",
+ "No more results": "Žádné další výsledky",
+ "No results": "Žádné výsledky",
+ "olm version:": "verze olm:",
+ "Once encryption is enabled for a room it cannot be turned off again (for now)": "Jakmile je jednou šifrování v místnosti zapnuto, nelze už vypnout (prozatím)",
+ "Only people who have been invited": "Pouze lidé, kteří byli pozváni",
+ "Otherwise, click here to send a bug report.": "V opačném případě klikněte zde a pošlete hlášení o chybě.",
+ "Password": "Heslo",
+ "Password:": "Heslo:",
+ "Passwords can't be empty": "Hesla nemohou být prázdná",
+ "Permissions": "Oprávnění",
+ "Phone": "Telefon",
+ "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s změnil/a úroveň moci o %(powerLevelDiffText)s.",
+ "Define the power level of a user": "Stanovte úroveň moci uživatele",
+ "Failed to change power level": "Nepodařilo se změnit úroveň moci",
+ "Power level must be positive integer.": "Úroveň moci musí být kladné celé číslo.",
+ "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (moc %(powerLevelNumber)s)",
+ "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Tuto změnu nepůjde vrátit zpět, protože tomuto uživateli nastavujete stejnou úroveň moci, jakou máte vy.",
+ "Alias (optional)": "Alias (nepovinný)",
+ "Room name (optional)": "Název místnosti (nepovinný)",
+ "Report it": "Nahlásit to",
+ "Results from DuckDuckGo": "Výsledky z DuckDuckGo",
+ "Return to app": "Vrátit k aplikaci",
+ "Return to login screen": "Vrátit k přihlašovací obrazovce",
+ "Riot does not have permission to send you notifications - please check your browser settings": "Riot není oprávněn posílat vám upozornění – zkontrolujte prosím nastavení svého prohlížeče",
+ "Riot was not given permission to send notifications - please try again": "Riot nebyl oprávněn k posílání upozornění – zkuste to prosím znovu",
+ "riot-web version:": "verze riot-web:",
+ "Room %(roomId)s not visible": "Místnost %(roomId)s není viditelná",
+ "Room Colour": "Barva místnosti",
+ "Room contains unknown devices": "V místnosti jsou neznámá zařízení",
+ "%(roomName)s does not exist.": "%(roomName)s neexistuje.",
+ "%(roomName)s is not accessible at this time.": "Místnost %(roomName)s není v tuto chvíli dostupná.",
+ "Save": "Uložit",
+ "Scroll to bottom of page": "Přejít na konec stránky",
+ "Send an encrypted message": "Poslat šifrovanou zprávu",
+ "Send anyway": "Přesto poslat",
+ "Sender device information": "Informace o odesilatelově zařízení",
+ "Send Reset Email": "Poslat resetovací e-mail",
+ "sent an image": "poslal/a obrázek",
+ "%(senderDisplayName)s sent an image.": "%(senderDisplayName)s poslal/a obrázek.",
+ "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s poslal/a %(targetDisplayName)s pozvánku ke vstupu do místnosti.",
+ "sent a video": "poslal/a video",
+ "Server error": "Chyba serveru",
+ "Server may be unavailable or overloaded": "Server může být nedostupný nebo přetížený",
+ "Server may be unavailable, overloaded, or search timed out :(": "Server může být nedostupný, přetížený nebo vyhledávání vypršelo :(",
+ "Server may be unavailable, overloaded, or the file too big": "Server může být nedostupný, přetížený nebo soubor je příliš velký",
+ "Server may be unavailable, overloaded, or you hit a bug.": "Server může být nedostupný, přetížený nebo jste narazili na chybu.",
+ "Server unavailable, overloaded, or something else went wrong.": "Server je nedostupný, přetížený nebo se pokazilo něco jiného.",
+ "Session ID": "ID sezení",
+ "%(senderName)s set a profile picture.": "%(senderName)s si nastavil/a profilový obrázek.",
+ "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s si změnil/a zobrazované jméno na %(displayName)s.",
+ "Sets the room topic": "Nastavuje téma místnosti",
+ "Show Apps": "Zobrazit aplikace",
+ "Show panel": "Zobrazit panel",
+ "Show timestamps in 12 hour format (e.g. 2:30pm)": "Zobrazovat časové značky v 12hodinovém formátu (např. 2:30 odp.)",
+ "Sign in": "Přihlásit",
+ "Sign out": "Odhlásit",
+ "Some of your messages have not been sent.": "Některé z vašich zpráv nebyly odeslány.",
+ "Someone": "Někdo",
+ "Start a chat": "Začít chat",
+ "Start authentication": "Začít ověření",
+ "Submit": "Odeslat",
+ "Success": "Úspěch",
+ "The main address for this room is": "Hlavní adresa této místnosti je",
+ "The phone number entered looks invalid": "Zadané telefonní číslo se zdá být neplatné",
+ "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Zadaný podepisovací klíč se shoduje s klíčem obdrženým od uživatele %(userId)s ze zařízení %(deviceId)s. Zařízení je označeno jako ověřené.",
+ "This email address is already in use": "Tato e-mailová adresa je již používaná",
+ "This email address was not found": "Tato e-mailová adresa nebyla nalezena",
+ "%(actionVerb)s this person?": "%(actionVerb)s tuto osobu?",
+ "The file '%(fileName)s' exceeds this home server's size limit for uploads": "Soubor '%(fileName)s' překračuje maximální velikost povolenou na tomto domovském serveru",
+ "The file '%(fileName)s' failed to upload": "Soubor '%(fileName)s' se nepodařilo nahrát",
+ "This Home Server does not support login using email address.": "Tento domovský server nepodporuje přihlašování e-mailovou adresou.",
+ "This room has no local addresses": "Tato místnost nemá žádné místní adresy",
+ "This room is not recognised.": "Tato místnost nebyla rozpoznána.",
+ "These are experimental features that may break in unexpected ways": "Tyto funkce jsou experimentální a mohou se pokazit nečekanými způsoby",
+ "The visibility of existing history will be unchanged": "Viditelnost existující historie nebude změněna",
+ "VoIP is unsupported": "VoIP není podporován",
+ "Warning!": "Pozor!",
+ "Who can access this room?": "Kdo má přístup k této místnosti?",
+ "Who can read history?": "Kdo může číst historii?",
+ "Who would you like to add to this room?": "Koho byste chtěli přidat do této místnosti?",
+ "Who would you like to communicate with?": "S kým byste chtěli komunikovat?",
+ "Would you like to accept or decline this invitation?": "Chtěli byste tuto pozvánku přijmout nebo odmítnout?",
+ "You are not in this room.": "Nejste v této místnosti.",
+ "You do not have permission to do that in this room.": "V této místnosti nemáte na toto právo.",
+ "You're not in any rooms yet! Press to make a room or to browse the directory": "Ještě nejste v žádné místnosti! Zmáčkněte pro vytvoření místnosti nebo pro prohlížení adresáře",
+ "You are trying to access %(roomName)s.": "Snažíte se přistoupit k %(roomName)s.",
+ "You cannot place a call with yourself.": "Nemůžete volat sami sobě.",
+ "You cannot place VoIP calls in this browser.": "V tomto prohlížeči nelze vytáčet VoIP hovory.",
+ "You do not have permission to post to this room": "Na přispívání do této místnosti nemáte právo",
+ "You have been banned from %(roomName)s by %(userName)s.": "%(userName)s vás vykázal/a z místnosti %(roomName)s.",
+ "You have been kicked from %(roomName)s by %(userName)s.": "%(userName)s vás vykopnul/a z místnosti %(roomName)s.",
+ "You need to enter a user name.": "Musíte zadat uživatelské jméno.",
+ "Your password has been reset": "Vaše heslo bylo resetováno",
+ "Your home server does not support device management.": "Váš domovský server nepodporuje správu zařízení.",
+ "Online": "Online",
+ "Offline": "Offline",
+ "Updates": "Aktualizace",
+ "Check for update": "Zkontrolovat aktualizace",
+ "Start chatting": "Začít chatovat",
+ "Start Chatting": "Začít chatovat",
+ "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Textová zpráva byla odeslána na +%(msisdn)s. Prosím vložte ověřovací kód z dané zprávy",
+ "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s přijal/a pozvánku pro %(displayName)s.",
+ "Active call (%(roomName)s)": "Probíhající hovor (%(roomName)s)",
+ "An email has been sent to": "E-mail byl odeslán odeslán na",
+ "%(senderName)s banned %(targetName)s.": "%(senderName)s vykázal/a %(targetName)s.",
+ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Nelze se připojit k domovskému serveru přes HTTP, pokud je v adresním řádku HTTPS. Buď použijte HTTPS, nebo povolte nebezpečné scripty.",
+ "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s změnil/a své zobrazované jméno z %(oldDisplayName)s na %(displayName)s.",
+ "Click here to fix": "Klikněte zde pro opravu",
+ "Click to mute video": "Klikněte pro zakázání videa",
+ "click to reveal": "klikněte pro odhalení",
+ "Click to unmute video": "Klikněte pro povolení videa",
+ "Click to unmute audio": "Klikněte pro povolení zvuku",
+ "Devices will not yet be able to decrypt history from before they joined the room": "Zařízení nebudou schopna dešifrovat historii z doby před jejich vstupem do místnosti",
+ "Displays action": "Zobrazí akci",
+ "Do you want to load widget from URL:": "Chcete načíst widget z URL:",
+ "Ed25519 fingerprint": "Ed25519 otisk",
+ "Fill screen": "Vyplnit obrazovku",
+ "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s z %(fromPowerLevel)s na %(toPowerLevel)s",
+ "This doesn't appear to be a valid email address": "Tato e-mailová adresa se zdá být neplatná",
+ "This is a preview of this room. Room interactions have been disabled": "Toto je náhled místnosti. Interakce byly zakázány",
+ "This phone number is already in use": "Toto číslo se již používá",
+ "This room is not accessible by remote Matrix servers": "Tato místnost není přístupná vzdáleným Matrix serverům",
+ "This room's internal ID is": "Vnitřní ID této místnosti je",
+ "To reset your password, enter the email address linked to your account": "K resetování hesla vložte e-mailovou adresu spojenou s vaším účtem",
+ "to restore": "obnovíte",
+ "to tag direct chat": "oštítkujete přímý chat",
+ "To use it, just wait for autocomplete results to load and tab through them.": "Použijte tak, že vyčkáte na načtení našeptávaných výsledků a ty pak projdete tabulátorem.",
+ "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Nemáte práva k zobrazení zprávy v daném časovém úseku.",
+ "Tried to load a specific point in this room's timeline, but was unable to find it.": "Zpráva v daném časovém úseku nenalezena.",
+ "Turn Markdown off": "Vypnout Markdown",
+ "Turn Markdown on": "Zapnout Markdown",
+ "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s zapnul/a end-to-end šifrování (algoritmus %(algorithm)s).",
+ "Unable to add email address": "Nepodařilo se přidat e-mailovou adresu",
+ "Unable to create widget.": "Nepodařilo se vytvořit widget.",
+ "Unable to remove contact information": "Nepodařilo se smazat kontaktní údaje",
+ "Unable to verify email address.": "Nepodařilo se ověřit e-mailovou adresu.",
+ "Unban": "Přijmout zpět",
+ "Unbans user with given id": "Přijme zpět uživatele s daným id",
+ "%(senderName)s unbanned %(targetName)s.": "%(senderName)s přijal/a zpět %(targetName)s.",
+ "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Nepodařilo se prokázat, že adresa, na kterou byla tato pozvánka odeslána, se shoduje s adresou přidruženou k vašemu účtu.",
+ "Unable to capture screen": "Nepodařilo se zachytit obrazovku",
+ "Unable to enable Notifications": "Nepodařilo se povolit upozornění",
+ "Unable to load device list": "Nepodařilo se načíst seznam zařízení",
+ "Undecryptable": "Nerozšifrovatelné",
+ "unencrypted": "nešifrované",
+ "Unencrypted message": "Nešifrovaná zpráva",
+ "unknown caller": "neznámý volající",
+ "unknown device": "neznámé zařízení",
+ "Unknown room %(roomId)s": "Neznámá místnost %(roomId)s",
+ "Unknown (user, device) pair:": "Neznámý pár (uživatel, zařízení):",
+ "Unmute": "Povolit",
+ "Unnamed Room": "Nepojmenovaná místnost",
+ "Unrecognised command:": "Nerozpoznaný příkaz:",
+ "Unrecognised room alias:": "Nerozpoznaný alias místnosti:",
+ "Unverified": "Neověřený",
+ "Uploading %(filename)s and %(count)s others|zero": "Nahrávám %(filename)s",
+ "Uploading %(filename)s and %(count)s others|one": "Nahrávám %(filename)s a %(count)s další",
+ "Uploading %(filename)s and %(count)s others|other": "Nahrávám %(filename)s a %(count)s další",
+ "Upload Failed": "Nahrávání selhalo",
+ "Upload Files": "Nahrát soubory",
+ "Upload file": "Nahrát soubor",
+ "Upload new:": "Nahrát nový:",
+ "Usage": "Použití",
+ "Use compact timeline layout": "Použít kompaktní rozvržení timeline",
+ "Use with caution": "Používejte s opatrností",
+ "User ID": "Uživatelské ID",
+ "User Interface": "Uživatelské rozhraní",
+ "%(user)s is a": "%(user)s je",
+ "User name": "Uživatelské jméno",
+ "Username invalid: %(errMessage)s": "Neplatné uživatelské jméno: %(errMessage)s",
+ "Users": "Uživatelé",
+ "User": "Uživatel",
+ "Verification Pending": "Čeká na ověření",
+ "Verification": "Ověření",
+ "verified": "ověreno",
+ "Verified": "Ověřeno",
+ "Verified key": "Ověřený klíč",
+ "(no answer)": "(žádná odpověď)",
+ "(unknown failure: %(reason)s)": "(neznámá chyba: %(reason)s)",
+ "(warning: cannot be disabled again!)": "(varování: nepůjde znovu zakázat!)",
+ "WARNING: Device already verified, but keys do NOT MATCH!": "VAROVÁNÍ: Zařízení byl již ověřeno, ale klíče se NESHODUJÍ!",
+ "The remote side failed to pick up": "Vzdálené straně se nepodařilo hovor přijmout",
+ "Who would you like to add to this community?": "Koho chcete přidat do této komunity?",
+ "Invite new community members": "Pozvěte nové členy komunity",
+ "Name or matrix ID": "Jméno nebo matrix ID",
+ "Invite to Community": "Pozvat do komunity",
+ "Which rooms would you like to add to this community?": "Které místnosti chcete přidat do této komunity?",
+ "Warning: any room you add to a community will be publicly visible to anyone who knows the community ID": "Varování: místnost, kterou přidáte do této komunity, bude veřejně viditelná každému, kdo zná ID komunity",
+ "Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Varování: osoba, kterou přidáte do této komunity, bude veřejně viditelná každému, kdo zná ID komunity",
+ "Add rooms to the community": "Přidat místnosti do komunity",
+ "Room name or alias": "Název nebo alias místnosti",
+ "Add to community": "Přidat do komunity",
+ "Failed to invite the following users to %(groupId)s:": "Následující uživatele se nepodařilo přidat do %(groupId)s:",
+ "Invites sent": "Pozvánky odeslány",
+ "Your community invitations have been sent.": "Vaše komunitní pozvánky byly odeslány.",
+ "Failed to invite users to community": "Nepodařilo se pozvat uživatele do komunity",
+ "Failed to invite users to %(groupId)s": "Nepodařilo se pozvat uživatele do %(groupId)s",
+ "%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
+ "%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(time)s",
+ "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s",
+ "Failed to add the following rooms to %(groupId)s:": "Nepodařilo se přidat následující místnosti do %(groupId)s:",
+ "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Vaše e-mailová adresa zřejmě nepatří k žádnému Matrix ID na tomto domovském serveru.",
+ "Send Invites": "Odeslat pozvánky",
+ "Failed to invite user": "Nepodařilo se pozvat uživatele",
+ "Failed to invite": "Pozvání se nezdařilo",
+ "Failed to invite the following users to the %(roomName)s room:": "Do místnosti %(roomName)s se nepodařilo pozvat následující uživatele:",
+ "You need to be logged in.": "Musíte být přihlášen/a.",
+ "You are now ignoring %(userId)s": "Nyní ignorujete %(userId)s",
+ "You are no longer ignoring %(userId)s": "Už neignorujete %(userId)s",
+ "Add rooms to this community": "Přidat místnosti do této komunity",
+ "Unpin Message": "Odepnout zprávu",
+ "Ignored user": "Ignorovaný uživatel",
+ "Unignored user": "Odignorovaný uživatel",
+ "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!": "VAROVÁNÍ: OVĚŘENÍ KLÍČE SELHALO! Podepisovací klíč uživatele %(userId)s a zařízení %(deviceId)s je \"%(fprint)s\", což nesouhlasí s dodaným klíčem \"%(fingerprint)s\". Toto může znamenat, že vaše komunikace je odposlouchávána!",
+ "Reason": "Důvod",
+ "VoIP conference started.": "VoIP konference započata.",
+ "VoIP conference finished.": "VoIP konference ukončena.",
+ "%(targetName)s left the room.": "%(targetName)s opustil/a místnost.",
+ "You are already in a call.": "Již máte probíhající hovor.",
+ "%(senderName)s requested a VoIP conference.": "%(senderName)s požádal/a o VoIP konferenci.",
+ "%(senderName)s removed their profile picture.": "%(senderName)s odstranil/a svůj profilový obrázek.",
+ "%(targetName)s rejected the invitation.": "%(targetName)s odmítl/a pozvání.",
+ "Communities": "Komunity",
+ "Message Pinning": "Připíchnutí zprávy",
+ "Your browser does not support the required cryptography extensions": "Váš prohlížeč nepodporuje požadovaná kryptografická rozšíření",
+ "Do you want to set an email address?": "Chcete nastavit e-mailovou adresu?",
+ "New Password": "Nové heslo",
+ "Device Name": "Název zařízení",
+ "Unignore": "Odignorovat",
+ "Ignore": "Ignorovat",
+ "Admin Tools": "Nástroje pro správce",
+ "bold": "tučně",
+ "italic": "kurzíva",
+ "strike": "přeškrtnutí",
+ "underline": "podtržení",
+ "code": "kód",
+ "quote": "citace",
+ "bullet": "odrážka",
+ "numbullet": "číselný seznam",
+ "No pinned messages.": "Žádné připíchnuté zprávy.",
+ "Pinned Messages": "Připíchnuté zprávy",
+ "%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s odstranil/a svoje zobrazované jméno (%(oldDisplayName)s).",
+ "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s odvolal/a pozvánku pro %(targetName)s.",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s učinil/a budoucí historii místnosti viditelnou všem členům, a to od chvíle jejich pozvání.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s učinil/a budoucí historii místnosti viditelnou všem členům, a to od chvíle jejich vstupu do místnosti.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s učinil/a budoucí historii místnosti viditelnou všem členům.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s učinil/a budoucí historii místnosti viditelnou komukoliv.",
+ "%(senderName)s changed the pinned messages for the room.": "%(senderName)s změnil/a připíchnuté zprávy této místnosti.",
+ "%(names)s and %(count)s others are typing|other": "%(names)s a %(count)s další píší",
+ "Authentication check failed: incorrect password?": "Kontrola ověření selhala: špatné heslo?",
+ "You need to be able to invite users to do that.": "Pro tuto akci musíte mít právo zvát uživatele.",
+ "Delete Widget": "Smazat widget",
+ "Error decrypting image": "Chyba při dešifrování obrázku",
+ "Image '%(Body)s' cannot be displayed.": "Obrázek '%(Body)s' nemůže být zobrazen.",
+ "This image cannot be displayed.": "Tento obrázek nemůže být zobrazen.",
+ "Error decrypting video": "Chyba při dešifrování videa",
+ "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s odstranil/a avatar místnosti.",
+ "%(senderDisplayName)s changed the room avatar to
": "%(senderDisplayName)s změnil/a avatar místnosti na
",
+ "Copied!": "Zkopírováno!",
+ "Failed to copy": "Nepodařilo se zkopírovat",
+ "Removed or unknown message type": "Zpráva odstraněna nebo neznámého typu",
+ "Message removed by %(userId)s": "Zprávu odstranil/a %(userId)s",
+ "This Home Server would like to make sure you are not a robot": "Tento domovský server by se rád přesvědčil, že nejste robot",
+ "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Přes vlastní serverové volby se můžete přihlásit k dalším Matrix serverům tak, že zadáte jinou adresu domovského serveru.",
+ "Identity server URL": "Adresa serveru identity",
+ "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Taktéž můžete zadat vlastní server identity, ale to vám zpravidla znemožní interagovat s uživateli na základě e-mailové adresy.",
+ "Deleting a widget removes it for all users in this room. Are you sure you want to delete this widget?": "Smazáním widgetu jej odstraníte všem uživatelům v této místnosti. Určitě chcete tento widget smazat?",
+ "The maximum permitted number of widgets have already been added to this room.": "V této místnosti již bylo dosaženo limitu pro maximální počet widgetů.",
+ "Drop file here to upload": "Přetažením sem nahrajete",
+ "uploaded a file": "nahrál/a soubor",
+ "Example": "Příklad",
+ "Create Community": "Vytvořit komunitu",
+ "Community Name": "Název komunity",
+ "Community ID": "ID komunity",
+ "example": "příklad",
+ "Create": "Vytvořit",
+ "Advanced options": "Pokročilé volby",
+ "User Options": "Volby uživatele",
+ "Please select the destination room for this message": "Vyberte prosím pro tuto zprávu cílovou místnost",
+ "No devices with registered encryption keys": "Žádná zařízení se zaregistrovanými šifrovacími klíči",
+ "Jump to read receipt": "Přeskočit na potvrzení o přečtení",
+ "Invite": "Pozvat",
+ "Revoke Moderator": "Odebrat moderátorství",
+ "Make Moderator": "Udělit moderátorství",
+ "and %(count)s others...|one": "a někdo další...",
+ "Hangup": "Zavěsit",
+ "Hide Apps": "Skrýt aplikace",
+ "Show Text Formatting Toolbar": "Zobrazit nástroje formátování textu",
+ "Hide Text Formatting Toolbar": "Skrýt nástroje formátování textu",
+ "Jump to message": "Přeskočit na zprávu",
+ "Loading...": "Načítání...",
+ "Loading device info...": "Načítá se info o zařízení...",
+ "You seem to be uploading files, are you sure you want to quit?": "Zřejmě právě nahráváte soubory. Chcete přesto odejít?",
+ "You seem to be in a call, are you sure you want to quit?": "Zřejmě máte probíhající hovor. Chcete přesto odejít?",
+ "Idle": "Nečinný/á",
+ "Unknown": "Neznámý",
+ "Seen by %(userName)s at %(dateTime)s": "Spatřen uživatelem %(userName)s v %(dateTime)s",
+ "Unnamed room": "Nepojmenovaná místnost",
+ "World readable": "Světu čitelné",
+ "Guests can join": "Hosté mohou vstoupit",
+ "No rooms to show": "Žádné místnosti k zobrazení",
+ "(~%(count)s results)|other": "(~%(count)s výsledků)",
+ "(~%(count)s results)|one": "(~%(count)s výsledek)",
+ "Upload avatar": "Nahrát avatar",
+ "Remove avatar": "Odstranit avatar",
+ "Mention": "Zmínka",
+ "Blacklisted": "Na černé listině",
+ "Invited": "Pozvaní",
+ "Markdown is disabled": "Markdown je vypnutý",
+ "Markdown is enabled": "Markdown je zapnutý",
+ "Press to start a chat with someone": "Zmáčkněte a můžete začít chatovat",
+ "This invitation was sent to an email address which is not associated with this account:": "Tato pozvánka byla odeslána na e-mailovou aresu, která není přidružená k tomuto účtu:",
+ "Joins room with given alias": "Vstoupí do místnosti s daným aliasem",
+ "were unbanned": "byli přijati zpět",
+ "was unbanned": "byl/a přijat/a zpět",
+ "was unbanned %(repeats)s times": "byl/a přijat/a zpět %(repeats)skrát",
+ "were unbanned %(repeats)s times": "byli přijati zpět %(repeats)skrát",
+ "Leave Community": "Odejít z komunity",
+ "Leave %(groupName)s?": "Odejít z %(groupName)s?",
+ "Leave": "Odejít",
+ "Unable to leave room": "Nepodařilo se odejít z místnosti",
+ "Hide join/leave messages (invites/kicks/bans unaffected)": "Skrýt zprávy o vstupu či odejití (pozvánky, vykopnutí a vykázání zůstanou)",
+ "%(severalUsers)sjoined and left %(repeats)s times": "%(severalUsers)s vstoupilo a odešlo %(repeats)skrát",
+ "%(oneUser)sjoined and left %(repeats)s times": "%(oneUser)s vstoupil/a a odešel/la %(repeats)skrát",
+ "%(severalUsers)sjoined and left": "%(severalUsers)s vstoupilo a odešlo",
+ "%(oneUser)sjoined and left": "%(oneUser)s vstoupil/a a odešel/la",
+ "Failed to remove user from community": "Nepodařilo se odebrat uživatele z komunity",
+ "Failed to remove room from community": "Nepodařilo se odebrat místnost z komunity",
+ "Failed to remove '%(roomName)s' from %(groupId)s": "'%(roomName)s' se nepodařilo odebrat z %(groupId)s",
+ "Failed to update community": "Nepodařilo se aktualizovat komunitu",
+ "Failed to load %(groupId)s": "Nepodařilo se načíst %(groupId)s",
+ "Search failed": "Vyhledávání selhalo",
+ "Failed to fetch avatar URL": "Nepodařilo se získat adresu avataru",
+ "Error decrypting audio": "Chyba při dešifrování zvuku",
+ "Drop here to tag %(section)s": "Přetažením sem oštítkujete %(section)s",
+ "You have been invited to join this room by %(inviterName)s": "%(inviterName)s vás pozval/a ke vstupu do této místnosti",
+ "Reason: %(reasonText)s": "Důvod: %(reasonText)s",
+ "Rejoin": "Vstoupit znovu",
+ "To change the room's avatar, you must be a": "Abyste mohl/a měnit avatar místnosti, musíte být",
+ "To change the room's name, you must be a": "Abyste mohl/a měnit název místnosti, musíte být",
+ "To change the room's main address, you must be a": "Abyste mohl/a měnit hlavní adresu místnosti, musíte být",
+ "To change the room's history visibility, you must be a": "Abyste mohl/a měnit viditelnost historie místnosti, musíte být",
+ "To change the permissions in the room, you must be a": "Abyste mohl/a měnit oprávnění v místnosti, musíte být",
+ "To change the topic, you must be a": "Abyste mohl/a měnit téma, musíte být",
+ "To modify widgets in the room, you must be a": "Abyste mohl/a měnit widgety v místnosti, musíte být",
+ "Banned by %(displayName)s": "Vykázán/a uživatelem %(displayName)s",
+ "Privacy warning": "Výstraha o utajení",
+ "Never send encrypted messages to unverified devices in this room from this device": "Nikdy z tohoto zařízení neposílat šifrované zprávy neověřeným zařízením v této místnosti",
+ "Privileged Users": "Privilegovaní uživatelé",
+ "No users have specific privileges in this room": "Žádní uživatelé v této místnosti nemají zvláštní privilegia",
+ "Tagged as: ": "Oštítkováno jako: ",
+ "To link to a room it must have an address.": "Aby šlo odkazovat na místnost, musí mít adresu.",
+ "Publish this room to the public in %(domain)s's room directory?": "Zapsat tuto místnost do veřejného adresáře místností na %(domain)s?",
+ "since the point in time of selecting this option": "od chvíle aktivování této volby",
+ "since they were invited": "od chvíle jejich pozvání",
+ "since they joined": "od chvíle jejich vstupu",
+ "The default role for new room members is": "Výchozí role nových členů místnosti je",
+ "To send messages, you must be a": "Abyste mohl/a posílat zprávy, musíte být",
+ "To invite users into the room, you must be a": "Abyste mohl/a zvát uživatele do této místnosti, musíte být",
+ "To configure the room, you must be a": "Abyste mohl/a nastavovat tuto místnost, musíte být",
+ "To kick users, you must be a": "Abyste mohl/a vykopávat uživatele, musíte být",
+ "To ban users, you must be a": "Abyste mohl/a vykazovat uživatele, musíte být",
+ "To remove other users' messages, you must be a": "Abyste mohl/a odstraňovat zprávy ostatních uživatelů, musíte být",
+ "To send events of type , you must be a": "Abyste mohl/a odesílat události typu , musíte být",
+ "You should not yet trust it to secure data": "Zatím byste jeho zabezpečení dat neměl/a důvěřovat",
+ "Remote addresses for this room:": "Vzdálené adresy této místnosti:",
+ "Invalid community ID": "Neplatné ID komunity",
+ "'%(groupId)s' is not a valid community ID": "'%(groupId)s' není platné ID komunity",
+ "Related Communities": "Související komunity",
+ "Related communities for this room:": "Komunity související s touto místností:",
+ "This room has no related communities": "Tato místnost nemá žádné související komunity",
+ "New community ID (e.g. +foo:%(localDomain)s)": "Nové ID komunity (např. +neco:%(localDomain)s)",
+ "%(names)s and %(count)s others are typing|one": "%(names)s a jeden další píší",
+ "%(senderName)s sent an image": "%(senderName)s poslal/a obrázek",
+ "%(senderName)s sent a video": "%(senderName)s poslal/a video",
+ "%(senderName)s uploaded a file": "%(senderName)s nahrál/a soubor",
+ "Disinvite this user?": "Odvolat pozvání tohoto uživatele?",
+ "Kick this user?": "Vykopnout tohoto uživatele?",
+ "Unban this user?": "Přijmout zpět tohoto uživatele?",
+ "Ban this user?": "Vykázat tohoto uživatele?",
+ "Drop here to favourite": "Oblibte přetažením zde",
+ "Drop here to tag direct chat": "Přímý chat oštítkujte přetažením zde",
+ "Drop here to restore": "Obnovte přetažením zde",
+ "Drop here to demote": "Upozaďte přetažením zde",
+ "Community Invites": "Komunitní pozvánky",
+ "You have been kicked from this room by %(userName)s.": "%(userName)s vás vykopl/a z této místnosti.",
+ "You have been banned from this room by %(userName)s.": "%(userName)s vás vykázal/a z této místnosti.",
+ "You are trying to access a room.": "Pokoušíte se o přístup do místnosti.",
+ "Members only (since the point in time of selecting this option)": "Pouze členové (od chvíle vybrání této volby)",
+ "Members only (since they were invited)": "Pouze členové (od chvíle jejich pozvání)",
+ "Members only (since they joined)": "Pouze členové (od chvíle jejich vstupu)",
+ "Disable URL previews by default for participants in this room": "Vypnout účastníkům v této místnosti automatické náhledy webových adres",
+ "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "Automatické zobrazení náhledů webových adres je v této místnosti pro všechny účastníky %(globalDisableUrlPreview)s.",
+ "You have disabled URL previews by default.": "Vypnul/a jste automatické náhledy webových adres.",
+ "You have enabled URL previews by default.": "Zapnul/a jste automatické náhledy webových adres.",
+ "URL Previews": "Náhledy webových adres",
+ "Enable URL previews for this room (affects only you)": "Zapnout náhledy webových adres (pouze vám)",
+ "Disable URL previews for this room (affects only you)": "Vypnout náhledy webových adres (pouze vám)",
+ "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s změnil/a avatar místnosti %(roomName)s",
+ "Add an Integration": "Přidat začlenění",
+ "Message removed": "Zpráva odstraněna",
+ "Robot check is currently unavailable on desktop - please use a web browser": "Ochrana před roboty není aktuálně na desktopu dostupná. Použijte prosím webový prohlížeč",
+ "An email has been sent to %(emailAddress)s": "Na adresu %(emailAddress)s jsme poslali e-mail"
}
diff --git a/src/i18n/strings/da.json b/src/i18n/strings/da.json
index 8ac311d315..9f5d3468ca 100644
--- a/src/i18n/strings/da.json
+++ b/src/i18n/strings/da.json
@@ -10,7 +10,6 @@
"New passwords must match each other.": "Nye adgangskoder skal matche hinanden.",
"A new password must be entered.": "Der skal indtastes en ny adgangskode.",
"The email address linked to your account must be entered.": "Den emailadresse, der tilhører til din adgang, skal indtastes.",
- "Failed to send email: ": "Kunne ikke sende e-mail: ",
"unknown device": "ukendt enhed",
"NOT verified": "IKKE verificeret",
"Blacklisted": "blokeret",
@@ -44,50 +43,27 @@
"Login as guest": "Log ind som gæst",
"Return to app": "Tilbage til app",
"Sign in": "Log ind",
- "Create a new account": "Oprette en ny bruger",
"Send an encrypted message": "Send en krypteret meddelelse",
"Send a message (unencrypted)": "Send en meddelelse (ukrypteret)",
"Warning!": "Advarsel!",
- "accept": "acceptere",
- "accepted an invitation": "Godkendt en invitation",
- "accepted the invitation for": "Accepteret invitationen til",
"Account": "Konto",
"Add email address": "Tilføj e-mail-adresse",
"Add phone number": "Tilføj telefonnummer",
"Admin": "Administrator",
"Advanced": "Avanceret",
- "all room members": "Alle rum medlemmer",
- "all room members, from the point they are invited": "Alle rum medlemmer, siden invitations-tidspunkt",
- "all room members, from the point they joined": "Alle rum medlemmer, siden de deltog",
- "an address": "en adresse",
- "and": "og",
"An email has been sent to": "En e-mail blev sendt til",
- "answered the call.": "svarede på kaldet",
- "anyone": "alle",
"Anyone who knows the room's link, apart from guests": "Alle der kender link til rummet, bortset fra gæster",
"Anyone who knows the room's link, including guests": "Alle der kender link til rummet, inklusiv gæster",
- "Are you sure you want to leave the room?": "Er du sikker på du vil forlade rummet?",
"Are you sure you want to reject the invitation?": "Er du sikker på du vil afvise invitationen?",
"Are you sure you want to upload the following files?": "Er du sikker på du vil sende de følgende filer?",
- "banned": "bortvist",
"Banned users": "Bortviste brugere",
"Bug Report": "Fejlrapport",
"Bulk Options": "Masseindstillinger",
- "Can't connect to homeserver - please check your connectivity and ensure your": "Kan ikke oprette forbindelse til homeserver - Kontroller din forbindelse og sørg for din ",
"Can't load user settings": "Kan ikke indlæse brugerindstillinger",
- "changed avatar": "Ændret avatar",
- "changed name": "Ændret navn",
- "changed their display name from": "Ændret deres visningsnavn fra",
- "changed their profile picture": "Ændret deres profilbillede",
- "changed the power level of": "Ændret effektniveauet på",
- "changed the room name to": "Ændrede rumnavnet til",
- "changed the topic to": "Ændret emnet til",
"Changes to who can read history will only apply to future messages in this room": "Ændringer til hvem der kan læse historie gælder kun for fremtidige meddelelser i dette rum",
"Clear Cache and Reload": "Ryd cache og genindlæs",
"Clear Cache": "Ryd cache",
- "Click here": "Klik her",
"Click here to fix": "Klik her for at rette",
- "*️⃣ Commands": "kommandoer",
"Confirm your new password": "Bekræft din nye adgangskode",
"Continue": "fortsætte",
"Could not connect to the integration server": "Kunne ikke oprette forbindelse til integrationsserveren",
@@ -96,25 +72,19 @@
"Cryptography": "Kryptografi",
"Deactivate Account": "Deaktiver brugerkonto",
"Deactivate my account": "Deaktiver min brugerkonto",
- "decline": "nedgang",
"Default": "Standard",
- "demote": "degradere",
"Devices will not yet be able to decrypt history from before they joined the room": "Enhederne vil ikke være i stand til at dekryptere historikken fra, før de kom til rummet",
- "Direct Chat": "Personligt Chat",
"Disable inline URL previews by default": "Deaktiver forrige weblinks forhåndsvisninger som standard",
"Display name": "Visningsnavn",
- "Email Address": "Email adresse",
"Email, name or matrix ID": "E-mail, navn eller matrix-id",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "Krypterede meddelelser vil ikke være synlige på klienter, der endnu ikke implementerer kryptering",
"Encrypted room": "Krypteret rummet",
"Encryption is enabled in this room": "Kryptering er aktiveret i dette rum",
"Encryption is not enabled in this room": "Kryptering er ikke aktiveret i dette rum",
- "ended the call.": "Afsluttede opkaldet.",
"End-to-end encryption is in beta and may not be reliable": "End-to-end kryptering er i beta og kan ikke være pålidelig",
"Error": "Fejl",
"Export E2E room keys": "Eksporter E2E rum nøgler",
"Failed to change password. Is your password correct?": "Kunne ikke ændre adgangskode. Er din adgangskode korrekt?",
- "Failed to forget room": "Kunne ikke glemme rummet",
"Failed to leave room": "Kunne ikke forlade rum",
"Failed to reject invitation": "Kunne ikke afvise invitationen",
"Failed to send email": "Kunne ikke sende e-mail",
@@ -122,93 +92,13 @@
"Failed to unban": "Var ikke i stand til at ophæve forbuddet",
"Favourite": "Favorit",
"Notifications": "Meddelser",
- "Please Register": "Vær venlig at registrere",
"Remove": "Fjerne",
"Settings": "Indstillinger",
"unknown error code": "Ukendt fejlkode",
- "en": "Engelsk",
- "pt-br": "Brasiliansk Portugisisk",
- "de": "Tysk",
- "da": "Dansk",
- "ru": "Russisk",
"%(targetName)s accepted an invitation.": "%(targetName)s accepterede en invitation.",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s accepteret invitationen til %(displayName)s.",
"%(names)s and %(lastPerson)s are typing": "%(names)s og %(lastPerson)s er ved at skrive",
"%(names)s and one other are typing": "%(names)s og den anden skriver",
- "%(names)s and %(count)s others are typing": "%(names)s og %(count)s andre skriver",
"%(senderName)s answered the call.": "%(senderName)s besvarede opkaldet.",
- "af": "Afrikaans",
- "ar-eg": "Arabisk (Egypten)",
- "ar-ma": "Arabisk (Marokko)",
- "ar-sa": "Arabisk (Saudiarabien",
- "ar-sy": "Arabisk (Syrien)",
- "be": "Hviderussisk",
- "bg": "Bulgarisk",
- "ca": "Katalansk",
- "cs": "Tjekkisk",
- "de-at": "Tysk (Østrig)",
- "de-ch": "Tysk (Schweitz)",
- "el": "Græsk",
- "en-au": "Engelsk (Australien)",
- "en-ca": "Engelsk (Canada)",
- "en-ie": "Engelsk (Irland)",
- "en-nz": "Engelsk (New Zealand)",
- "en-us": "Engelsk (USA)",
- "en-za": "Engelsk (Sydafrika)",
- "es-ar": "Spansk (Argentina)",
- "es-bo": "Spansk (Bolivia)",
- "es-cl": "Spansk (Chile)",
- "es-ec": "Spansk (Ecuador)",
- "es-hn": "Spansk (Honduras)",
- "es-mx": "Spansk (Mexico)",
- "es-ni": "Spansk (Nicaragua)",
- "es-py": "Spansk (Paraguay)",
- "es": "Spansk (Spanien)",
- "es-uy": "Spansk (Uruguay)",
- "es-ve": "Spansk (Venezuela)",
- "et": "Estonsk",
- "fa": "Farsi",
- "fi": "Finsk",
- "fr-be": "Fransk (Belgien)",
- "fr-ca": "Fransk (Canada)",
- "fr-ch": "Fransk (Schweitz)",
- "fr": "French",
- "ga": "Irsk",
- "he": "Hebræisk",
- "hi": "Hindi",
- "hr": "Kroatisk",
- "hu": "Ungarsk",
- "id": "Indonesisk",
- "is": "Islandsk",
- "it": "Italian",
- "ja": "Japansk",
- "ji": "Yiddish",
- "lt": "Littauisk",
- "lv": "Lettisk",
- "ms": "Malaysisk",
- "mt": "Maltesisk",
- "nl": "Dutch",
- "no": "Norsk",
- "pl": "Polsk",
- "pt": "Portuguese",
- "ro": "Rumænsk",
- "sb": "Sorbisk",
- "sk": "Slovakisk",
- "sl": "Slovensk",
- "sq": "Albansk",
- "sr": "Serbisk (Latin)",
- "sv": "Svensk",
- "th": "Thai",
- "tn": "Tswana",
- "tr": "Tyrkisk",
- "ts": "Tonga",
- "uk": "Ukrainsk",
- "ur": "Urdu",
- "ve": "Venda",
- "vi": "Vietnamesisk",
- "xh": "Xhosa",
- "zh-cn": "Kinesisk (Folkerepublikken Kina)",
- "zh-sg": "Kinesisk (Singapore)",
- "zh-tw": "Kinesisk (Taiwan)",
- "zu": "Zulu"
+ "Add a widget": "Tilføj en widget"
}
diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json
index 2fbee2717d..db12a69657 100644
--- a/src/i18n/strings/de_DE.json
+++ b/src/i18n/strings/de_DE.json
@@ -9,8 +9,7 @@
"Historical": "Archiv",
"New passwords must match each other.": "Die neuen Passwörter müssen identisch sein.",
"A new password must be entered.": "Es muss ein neues Passwort eingegeben werden.",
- "The email address linked to your account must be entered.": "Es muss die mit dem Benutzerkonto verbundene Email-Adresse eingegeben werden.",
- "Failed to send email: ": "Email konnte nicht versendet werden: ",
+ "The email address linked to your account must be entered.": "Es muss die mit dem Benutzerkonto verbundene E-Mail-Adresse eingegeben werden.",
"unknown device": "Unbekanntes Gerät",
"NOT verified": "NICHT verifiziert",
"Blacklisted": "Blockiert",
@@ -21,21 +20,21 @@
"Ed25519 fingerprint": "Ed25519-Fingerprint",
"User ID": "Benutzer-ID",
"Curve25519 identity key": "Curve25519-Identitäts-Schlüssel",
- "Claimed Ed25519 fingerprint key": "Geforderter Ed25519 Fingerprint Schlüssel",
- "none": "keiner",
+ "Claimed Ed25519 fingerprint key": "Geforderter Ed25519-Fingerprint-Schlüssel",
+ "none": "nicht vorhanden",
"Algorithm": "Algorithmus",
"unencrypted": "unverschlüsselt",
- "Decryption error": "Entschlüsselungs Fehler",
+ "Decryption error": "Fehler beim Entschlüsseln",
"Session ID": "Sitzungs-ID",
- "End-to-end encryption information": "Ende-zu-Ende-Verschlüsselungs-Informationen",
+ "End-to-end encryption information": "Informationen zur Ende-zu-Ende-Verschlüsselung",
"Event information": "Ereignis-Information",
- "Sender device information": "Absender Geräte Informationen",
+ "Sender device information": "Geräte-Informationen des Absenders",
"Displays action": "Zeigt Aktionen an",
- "Bans user with given id": "Schließt den Benutzer mit der angegebenen ID dauerhaft aus dem Raum aus",
+ "Bans user with given id": "Verbannt den Benutzer mit der angegebenen ID",
"Deops user with given id": "Entfernt OP beim Benutzer mit der angegebenen ID",
"Invites user with given id to current room": "Lädt den Benutzer mit der angegebenen ID in den aktuellen Raum ein",
"Joins room with given alias": "Betrete Raum mit angegebenen Alias",
- "Kicks user with given id": "Entfernt den Benutzer mit der angegebenen ID aus dem Raum",
+ "Kicks user with given id": "Benutzer mit der angegebenen ID kicken",
"Changes your display nickname": "Ändert deinen angezeigten Nicknamen",
"Change Password": "Passwort ändern",
"Searches DuckDuckGo for results": "Verwendet DuckDuckGo für Suchergebnisse",
@@ -45,37 +44,21 @@
"Login as guest": "Als Gast anmelden",
"Return to app": "Zurück zur Anwendung",
"Sign in": "Anmelden",
- "Create a new account": "Erstelle einen neuen Benutzer",
"Send an encrypted message": "Verschlüsselte Nachricht senden",
"Send a message (unencrypted)": "Nachricht senden (unverschlüsselt)",
"Warning!": "Warnung!",
- "Direct Chat": "Direkt-Chat",
"Error": "Fehler",
- "accept": "akzeptiere",
- "accepted an invitation": "Einladung akzeptieren",
- "accepted the invitation for": "Akzeptierte die Einladung für",
"Add email address": "E-Mail-Adresse hinzufügen",
"Advanced": "Erweitert",
- "all room members, from the point they joined": "alle Raum-Mitglieder (ab dem Zeitpunkt, an dem sie beigetreten sind)",
- "and": "und",
"An email has been sent to": "Eine E-Mail wurde gesendet an",
- "anyone": "Jeder",
"Anyone who knows the room's link, apart from guests": "Alle, denen der Raum-Link bekannt ist (ausgenommen Gäste)",
"Anyone who knows the room's link, including guests": "Alle, denen der Raum-Link bekannt ist (auch Gäste)",
- "Are you sure you want to leave the room?": "Bist du sicher, dass du den Raum verlassen willst?",
"Are you sure you want to reject the invitation?": "Bist du sicher, dass du die Einladung ablehnen willst?",
"Are you sure you want to upload the following files?": "Bist du sicher, dass du die folgenden Dateien hochladen möchtest?",
- "banned": "gebannt",
- "Banned users": "Dauerhaft aus dem Raum ausgeschlossene Benutzer",
+ "Banned users": "Verbannte Benutzer",
"Bug Report": "Fehlerbericht",
- "changed avatar": "änderte Avatar",
- "changed their display name from": "änderte seinen Anzeigenamen von",
- "changed their profile picture": "änderte sein Profilbild",
- "changed the room name to": "änderte den Raumnamen zu",
- "changed the topic to": "änderte das Thema zu",
"Changes to who can read history will only apply to future messages in this room": "Änderungen, die bestimmen, wer den Chatverlauf lesen kann, gelten nur für zukünftige Nachrichten in diesem Raum",
"Clear Cache and Reload": "Cache leeren und neu laden",
- "Click here": "Hier klicken,",
"Confirm your new password": "Neues Passwort bestätigen",
"Continue": "Fortfahren",
"Create an account": "Benutzerkonto erstellen",
@@ -83,123 +66,81 @@
"Cryptography": "Verschlüsselung",
"Deactivate Account": "Benutzerkonto deaktivieren",
"Deactivate my account": "Mein Benutzerkonto deaktivieren",
- "decline": "Ablehnen",
- "Devices will not yet be able to decrypt history from before they joined the room": "Geräte werden nicht in der Lage sein, den Chatverlauf vor dem Betreten des Raumes zu entschlüsseln",
+ "Devices will not yet be able to decrypt history from before they joined the room": "Geräte werden nicht in der Lage sein, den bisherigen Chatverlauf vor dem Betreten des Raumes zu entschlüsseln",
"Display name": "Anzeigename",
- "Email Address": "E-Mail-Adresse",
"Email, name or matrix ID": "E-Mail, Name oder Matrix-ID",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "Verschlüsselte Nachrichten werden nicht in Matrix-Clients sichtbar sein, die die Verschlüsselung noch nicht implementiert haben",
"Encrypted room": "Verschlüsselter Raum",
"Encryption is enabled in this room": "Verschlüsselung ist in diesem Raum aktiviert",
"Encryption is not enabled in this room": "Verschlüsselung ist in diesem Raum nicht aktiviert",
- "ended the call.": "beendete den Anruf.",
"End-to-end encryption is in beta and may not be reliable": "Die Ende-zu-Ende-Verschlüsselung befindet sich aktuell im Beta-Stadium und ist eventuell noch nicht hundertprozentig zuverlässig",
"Failed to send email": "Fehler beim Senden der E-Mail",
- "Account": "Konto",
- "Add phone number": "Telefonnummer hinzufügen",
- "an address": "an Adresse",
+ "Account": "Benutzerkonto",
+ "Add phone number": "Telefon-Nr. hinzufügen",
"Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Dein Passwort wurde erfolgreich geändert. Du wirst erst Benachrichtigungen auf anderen Geräten empfangen können, wenn du dich dort erneut anmeldest",
- "all room members": "Alle Raum-Mitglieder",
- "all room members, from the point they are invited": "alle Raum-Mitglieder (ab dem Zeitpunkt, an dem sie eingeladen wurden)",
- "answered the call.": "beantwortete den Anruf.",
"Can't load user settings": "Benutzereinstellungen können nicht geladen werden",
- "changed name": "änderte Namen",
- "changed the power level of": "änderte Berechtigungslevel von",
"Clear Cache": "Cache leeren",
"Click here to fix": "Zum reparieren hier klicken",
- "*️⃣ Commands": "*️⃣ Befehle",
"Default": "Standard",
- "demote": "Berechtigungslevel herabstufen",
"Export E2E room keys": "E2E-Raum-Schlüssel exportieren",
"Failed to change password. Is your password correct?": "Passwortänderung fehlgeschlagen. Ist dein Passwort richtig?",
- "Failed to forget room": "Vergessen des Raums schlug fehl",
"Failed to leave room": "Verlassen des Raums fehlgeschlagen",
"Failed to reject invitation": "Einladung konnte nicht abgelehnt werden",
"Failed to set avatar.": "Fehler beim Setzen des Profilbilds.",
- "Failed to unban": "Dauerhaftes Ausschließen aus dem Raum konnte nicht aufgehoben werden",
+ "Failed to unban": "Aufheben der Verbannung fehlgeschlagen",
"Failed to upload file": "Datei-Upload fehlgeschlagen",
"Favourite": "Favorit",
- "favourite": "Favorit",
"Forget room": "Raum entfernen",
"Forgot your password?": "Passwort vergessen?",
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "Aus Sicherheitsgründen werden beim Ausloggen alle Ende-zu-Ende-Verschlüsselungs-Schlüssel in diesem Browser gelöscht. Wenn du in späteren Riot-Sitzungen den bisherigen Chatverlauf entschlüsseln möchtest, exportiere bitte deine Schlüssel zur sicheren Aufbewahrung.",
"For security, this session has been signed out. Please sign in again.": "Aus Sicherheitsgründen wurde diese Sitzung beendet. Bitte melde dich erneut an.",
"Found a bug?": "Fehler gefunden?",
"Guests cannot join this room even if explicitly invited.": "Gäste können diesem Raum nicht beitreten, auch wenn sie explizit eingeladen wurden.",
- "Guests can't set avatars. Please register.": "Gäste können kein Profilbild setzen. Bitte registrieren.",
- "Guest users can't upload files. Please register to upload.": "Gäste können keine Dateien hochladen. Bitte zunächst registrieren.",
- "had": "hatte",
"Hangup": "Auflegen",
"Homeserver is": "Home-Server:",
"Identity Server is": "Identitätsserver:",
"I have verified my email address": "Ich habe meine E-Mail-Adresse verifiziert",
"Import E2E room keys": "E2E-Raum-Schlüssel importieren",
"Invalid Email Address": "Ungültige E-Mail-Adresse",
- "invited": "eingeladen",
"Invite new room members": "Neue Raum-Mitglieder einladen",
- "is a": "ist ein",
- "is trusted": "wird vertraut",
"Sign in with": "Anmelden mit",
- "joined and left": "hat den Raum betreten und wieder verlassen",
- "joined": "hat den Raum betreten",
- "joined the room": "trat dem Raum bei",
"Leave room": "Raum verlassen",
- "left and rejoined": "ging(en) und trat(en) erneut bei",
- "left": "hat den Raum verlassen",
- "left the room": "verließ den Raum",
- "Logged in as": "Angemeldet als",
"Logout": "Abmelden",
- "made future room history visible to": "mache kommende Raum-Historie sichtbar für",
"Manage Integrations": "Integrationen verwalten",
"Members only": "Nur Mitglieder",
"Mobile phone number": "Mobiltelefonnummer",
"Moderator": "Moderator",
- "my Matrix ID": "meiner Matrix-ID",
+ "%(serverName)s Matrix ID": "%(serverName)s Matrix-ID",
"Never send encrypted messages to unverified devices from this device": "Niemals verschlüsselte Nachrichten an unverifizierte Geräte von diesem Gerät aus versenden",
"Never send encrypted messages to unverified devices in this room from this device": "Niemals verschlüsselte Nachrichten an unverifizierte Geräte in diesem Raum von diesem Gerät aus senden",
"New password": "Neues Passwort",
"Notifications": "Benachrichtigungen",
- " (not supported by this browser)": " (von diesem Browser nicht unterstützt)",
"": "",
"No users have specific privileges in this room": "Kein Benutzer hat in diesem Raum besondere Berechtigungen",
- "olm version": "OLM-Version",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "Sobald Verschlüsselung für einen Raum aktiviert wird, kann diese (aktuell noch) nicht wieder deaktiviert werden",
"Only people who have been invited": "Nur Personen, die eingeladen wurden",
- "or": "oder",
- "other": "weiteres",
- "others": "andere",
"Password": "Passwort",
"Permissions": "Berechtigungen",
"Phone": "Telefon",
- "placed a": "plazierte einen",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Bitte prüfe deinen E-Mail-Posteingang und klicke auf den in der E-Mail enthaltenen Link. Anschließend auf \"Fortsetzen\" klicken.",
- "Please Register": "Bitte registrieren",
"Privacy warning": "Datenschutzwarnung",
"Privileged Users": "Privilegierte Nutzer",
"Profile": "Profil",
"Refer a friend to Riot:": "Freunde zu Riot einladen:",
- "rejected": "abgelehnt",
- "Once you've followed the link it contains, click below": "Nachdem du dem darin enthaltenen Link gefolgt bist, klicke unten",
- "rejected the invitation.": "lehnte die Einladung ab.",
+ "Once you've followed the link it contains, click below": "Nachdem du dem darin enthaltenen Link gefolgt bist, klicke unten",
"Reject invitation": "Einladung ablehnen",
"Remove Contact Information?": "Kontakt-Informationen entfernen?",
- "removed their display name": "löschte den eigenen Anzeigenamen",
"Remove": "Entfernen",
- "requested a VoIP conference": "hat eine VoIP-Konferenz angefordert",
"Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Ein Zurücksetzen des Passworts hat aktuell zur Folge, dass sämtliche Ende-zu-Ende-Verschlüsselungs-Schlüssel auf allen Geräten zurückgesetzt werden. Um zu verhindern, dass der bereits verschlüsselte Chatverlauf unlesbar wird, sollten die Raum-Schlüssel deshalb zuvor exportiert und anschließend wieder importiert werden. In Zukunft wird diese Vorgehensweise weiter verbessert und vereinfacht werden.",
- "restore": "Zum zurücksetzen",
"Return to login screen": "Zur Anmeldemaske zurückkehren",
"Room Colour": "Raumfarbe",
"Room name (optional)": "Raumname (optional)",
"Scroll to unread messages": "Zu den ungelesenen Nachrichten scrollen",
"Send Invites": "Einladungen senden",
"Send Reset Email": "E-Mail zum Zurücksetzen senden",
- "sent an image": "hat ein Bild gesendet",
- "sent an invitation to": "sandte eine Einladung an",
+ "sent an image": "hat ein Bild übermittelt",
"sent a video": "hat ein Video gesendet",
"Server may be unavailable or overloaded": "Server ist eventuell nicht verfügbar oder überlastet",
- "set a profile picture": "setzte ein Profilbild",
- "set their display name to": "setzte den Anzeigenamen auf",
"Settings": "Einstellungen",
"Signed Out": "Abgemeldet",
"Sign out": "Abmelden",
@@ -210,42 +151,25 @@
"Start a chat": "Chat starten",
"Start Chat": "Chat beginnen",
"Success": "Erfolg",
- "tag direct chat": "Zum kennzeichnen als direkten Chat",
"The default role for new room members is": "Das Standard-Berechtigungslevel für neue Raum-Mitglieder ist",
- "their invitations": "ihre Einladungen",
- "their invitation": "ihre Einladung",
- "These are experimental features that may break in unexpected ways. Use with caution": "Dies sind experimentelle Funktionen die in unerwarteter Weise Fehler verursachen können. Mit Vorsicht benutzen",
"The visibility of existing history will be unchanged": "Die Sichtbarkeit des bereits vorhandenen Chatverlaufs bleibt unverändert",
"This doesn't appear to be a valid email address": "Dies scheint keine gültige E-Mail-Adresse zu sein",
- "this invitation?": "diese Einladung?",
"This is a preview of this room. Room interactions have been disabled": "Dies ist eine Vorschau dieses Raumes. Raum-Interaktionen wurden deaktiviert",
"This room is not accessible by remote Matrix servers": "Remote-Matrix-Server können auf diesen Raum nicht zugreifen",
"This room's internal ID is": "Die interne ID dieses Raumes ist",
- "To ban users": "Um Benutzer dauerhaft aus dem Raum auszuschließen",
- "To configure the room": "Um den Raum zu konfigurieren",
- "To invite users into the room": "Um Nutzer in den Raum einzuladen",
- "to join the discussion": "um an der Diskussion teilzunehmen",
- "To kick users": "Um Benutzer aus dem Raum zu entfernen",
"Admin": "Administrator",
- "Server may be unavailable, overloaded, or you hit a bug.": "Server ist nicht verfügbar, überlastet oder du bist auf einen Fehler gestoßen.",
+ "Server may be unavailable, overloaded, or you hit a bug.": "Server ist nicht verfügbar, überlastet oder du bist auf einen Softwarefehler gestoßen.",
"Could not connect to the integration server": "Konnte keine Verbindung zum Integrations-Server herstellen",
"Disable inline URL previews by default": "URL-Vorschau im Chat standardmäßig deaktivieren",
- "Guests can't use labs features. Please register.": "Gäste können keine Labor-Funktionen nutzen. Bitte registrieren.",
"Labs": "Labor",
"Show panel": "Panel anzeigen",
- "To redact messages": "Zum Nachrichten verbergen",
- "Can't connect to homeserver - please check your connectivity and ensure your": "Die Verbindung mit dem Homeserver ist fehlgeschlagen. Bitte überprüfe deine Verbindung und stelle sicher, dass dein(e) ",
- "tag as": "kennzeichne als",
"To reset your password, enter the email address linked to your account": "Um dein Passwort zurückzusetzen, gib bitte die mit deinem Account verknüpfte E-Mail-Adresse ein",
- "To send messages": "Um Nachrichten zu senden",
- "turned on end-to-end encryption (algorithm": "aktivierte Ende-zu-Ende-Verschlüsselung (Algorithmus",
"Unable to add email address": "E-Mail-Adresse konnte nicht hinzugefügt werden",
"Unable to remove contact information": "Die Kontakt-Informationen konnten nicht gelöscht werden",
- "Unable to verify email address.": "Unfähig die E-Mail-Adresse zu verifizieren.",
- "Unban": "Dauerhaftes Ausschließen aus dem Raum aufheben",
+ "Unable to verify email address.": "Die E-Mail-Adresse konnte nicht verifiziert werden.",
+ "Unban": "Verbannung aufheben",
"Unencrypted room": "Unverschlüsselter Raum",
"unknown error code": "Unbekannter Fehlercode",
- "unknown": "unbekannt",
"Upload avatar": "Profilbild hochladen",
"uploaded a file": "hat eine Datei hochgeladen",
"Upload Files": "Dateien hochladen",
@@ -260,24 +184,19 @@
"VoIP conference finished.": "VoIP-Konferenz wurde beendet.",
"VoIP conference started.": "VoIP-Konferenz gestartet.",
"(warning: cannot be disabled again!)": "(Warnung: Kann nicht wieder deaktiviert werden!)",
- "was banned": "wurde dauerhaft aus dem Raum ausgeschlossen",
+ "was banned": "wurde aus dem Raum verbannt",
"was invited": "wurde eingeladen",
- "was kicked": "wurde aus dem Raum entfernt",
- "was unbanned": "wurde vom dauerhaften Ausschluss aus dem Raum befreit",
- "was": "wurde",
+ "was kicked": "wurde gekickt",
+ "was unbanned": "wurde von der Verbannung aus dem Raum befreit",
"Who can access this room?": "Wer hat Zugang zu diesem Raum?",
"Who can read history?": "Wer kann den bisherigen Chatverlauf lesen?",
"Who would you like to add to this room?": "Wen möchtest du zu diesem Raum hinzufügen?",
"Who would you like to communicate with?": "Mit wem möchtest du kommunizieren?",
- "Would you like to": "Möchtest du",
"You do not have permission to post to this room": "Du hast keine Berechtigung, in diesem Raum etwas zu senden",
"You have been invited to join this room by %(inviterName)s": "%(inviterName)s hat dich in diesen Raum eingeladen",
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Du wurdest auf allen Geräten abgemeldet und wirst keine Push-Benachrichtigungen mehr erhalten. Um die Benachrichtigungen zu reaktivieren, musst du dich auf jedem Gerät neu anmelden",
- "you must be a": "Berechtigungslevel",
"Your password has been reset": "Dein Passwort wurde zurückgesetzt",
"You should not yet trust it to secure data": "Du solltest aktuell noch nicht darauf vertrauen, dass deine Daten zuverlässig verschlüsselt werden",
- "removed their profile picture": "löschte das eigene Profilbild",
- "times": "mal",
"Bulk Options": "Bulk-Optionen",
"Call Timeout": "Anruf-Timeout",
"Conference call failed.": "Konferenzgespräch fehlgeschlagen.",
@@ -288,17 +207,15 @@
"Failed to set up conference call": "Konferenzgespräch konnte nicht gestartet werden",
"Failed to verify email address: make sure you clicked the link in the email": "Verifizierung der E-Mail-Adresse fehlgeschlagen: Bitte stelle sicher, dass du den Link in der E-Mail angeklickt hast",
"Failure to create room": "Raumerstellung fehlgeschlagen",
- "Guest users can't create new rooms. Please register to create room and start a chat.": "Gastnutzer können keine neuen Räume erstellen. Bitte registriere dich um Räume zu erstellen und Chats zu starten.",
"Riot does not have permission to send you notifications - please check your browser settings": "Riot hat keine Berechtigung, um Benachrichtigungen zu senden - bitte Browser-Einstellungen überprüfen",
"Riot was not given permission to send notifications - please try again": "Riot hat keine Berechtigung für das Senden von Benachrichtigungen erhalten - bitte erneut versuchen",
"This email address is already in use": "Diese E-Mail-Adresse wird bereits verwendet",
"This email address was not found": "Diese E-Mail-Adresse konnte nicht gefunden werden",
- "The file '%(fileName)s' exceeds this home server's size limit for uploads": "Die Datei '%(fileName)s' überschreitet das Größen-Limit für Uploads auf diesem Homeserver",
+ "The file '%(fileName)s' exceeds this home server's size limit for uploads": "Die Datei '%(fileName)s' überschreitet das Größen-Limit für Uploads auf diesem Heimserver",
"The file '%(fileName)s' failed to upload": "Das Hochladen der Datei '%(fileName)s' schlug fehl",
"The remote side failed to pick up": "Die Gegenstelle konnte nicht abheben",
"This phone number is already in use": "Diese Telefonnummer wird bereits verwendet",
- "Unable to restore previous session": "Die vorherige Sitzung konnte nicht wiederhergestellt werden",
- "Unable to capture screen": "Unfähig den Bildschirm aufzunehmen",
+ "Unable to capture screen": "Der Bildschirm konnte nicht aufgenommen werden",
"Unable to enable Notifications": "Benachrichtigungen konnten nicht aktiviert werden",
"Upload Failed": "Upload fehlgeschlagen",
"VoIP is unsupported": "VoIP wird nicht unterstützt",
@@ -343,18 +260,16 @@
"Make this room private": "Mache diesen Raum privat",
"Share message history with new users": "Bisherigen Chatverlauf mit neuen Nutzern teilen",
"Encrypt room": "Raum verschlüsseln",
- "To send events of type": "Zum Senden von Ereignissen mit Typ",
"%(names)s and %(lastPerson)s are typing": "%(names)s und %(lastPerson)s schreiben",
"%(targetName)s accepted an invitation.": "%(targetName)s hat eine Einladung angenommen.",
- "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s akzeptierte die Einladung für %(displayName)s.",
+ "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s hat die Einladung für %(displayName)s akzeptiert.",
"%(names)s and one other are typing": "%(names)s und ein weiteres Raum-Mitglied schreiben",
- "%(names)s and %(count)s others are typing": "%(names)s und %(count)s weitere Raum-Mitglieder schreiben",
"%(senderName)s answered the call.": "%(senderName)s hat den Anruf angenommen.",
- "%(senderName)s banned %(targetName)s.": "%(senderName)s hat %(targetName)s dauerhaft aus dem Raum ausgeschlossen.",
+ "%(senderName)s banned %(targetName)s.": "%(senderName)s hat %(targetName)s dauerhaft aus dem Raum verbannt.",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s hat den Anzeigenamen von \"%(oldDisplayName)s\" auf \"%(displayName)s\" geändert.",
"%(senderName)s changed their profile picture.": "%(senderName)s hat das Profilbild geändert.",
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s hat das Berechtigungslevel von %(powerLevelDiffText)s geändert.",
- "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s änderte den Raumnamen zu %(roomName)s.",
+ "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s hat den Raumnamen geändert zu %(roomName)s.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s hat das Thema geändert in \"%(topic)s\".",
"/ddg is not a command": "/ddg ist kein Kommando",
"%(senderName)s ended the call.": "%(senderName)s hat den Anruf beendet.",
@@ -364,13 +279,16 @@
"%(senderName)s invited %(targetName)s.": "%(senderName)s hat %(targetName)s eingeladen.",
"%(displayName)s is typing": "%(displayName)s schreibt",
"%(targetName)s joined the room.": "%(targetName)s hat den Raum betreten.",
- "%(senderName)s kicked %(targetName)s.": "%(senderName)s hat %(targetName)s aus dem Raum entfernt.",
+ "%(senderName)s kicked %(targetName)s.": "%(senderName)s hat %(targetName)s aus dem Raum gekickt.",
"%(targetName)s left the room.": "%(targetName)s hat den Raum verlassen.",
- "%(senderName)s made future room history visible to": "%(senderName)s hat den zukünftigen Chatverlauf sichtbar gemacht für",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s hat den zukünftigen Chatverlauf sichtbar gemacht für alle Raum-Mitglieder (ab dem Zeitpunkt, an dem sie eingeladen wurden).",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s hat den zukünftigen Chatverlauf sichtbar gemacht für alle Raum-Mitglieder (ab dem Zeitpunkt, an dem sie beigetreten sind).",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s hat den zukünftigen Chatverlauf sichtbar gemacht für alle Raum-Mitglieder.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s hat den zukünftigen Chatverlauf sichtbar gemacht für Alle.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s hat den zukünftigen Chatverlauf sichtbar gemacht für unbekannt (%(visibility)s).",
"Missing room_id in request": "Fehlende room_id in Anfrage",
"Missing user_id in request": "Fehlende user_id in Anfrage",
"Must be viewing a room": "Muss einen Raum ansehen",
- "New Composer & Autocomplete": "Neuer Eingabeverarbeiter & Autovervollständigung",
"(not supported by this browser)": "(wird von diesem Browser nicht unterstützt)",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s startete einen %(callType)s-Anruf.",
"Power level must be positive integer.": "Berechtigungslevel muss eine positive ganze Zahl sein.",
@@ -380,7 +298,7 @@
"%(senderName)s removed their profile picture.": "%(senderName)s hat das Profilbild gelöscht.",
"%(senderName)s requested a VoIP conference.": "%(senderName)s möchte eine VoIP-Konferenz beginnen.",
"Room %(roomId)s not visible": "Raum %(roomId)s ist nicht sichtbar",
- "%(senderDisplayName)s sent an image.": "%(senderDisplayName)s hat ein Bild gesendet.",
+ "%(senderDisplayName)s sent an image.": "%(senderDisplayName)s hat ein Bild übermittelt.",
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s hat %(targetDisplayName)s in diesen Raum eingeladen.",
"%(senderName)s set a profile picture.": "%(senderName)s hat ein Profilbild gesetzt.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s hat den Anzeigenamen geändert in %(displayName)s.",
@@ -388,193 +306,45 @@
"These are experimental features that may break in unexpected ways": "Dies sind experimentelle Funktionen, die in unerwarteter Weise Fehler verursachen können",
"To use it, just wait for autocomplete results to load and tab through them.": "Um diese Funktion zu nutzen, warte einfach auf die Autovervollständigungsergebnisse und benutze dann die TAB-Taste zum durchblättern.",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s hat die Ende-zu-Ende-Verschlüsselung aktiviert (Algorithmus: %(algorithm)s).",
- "%(senderName)s unbanned %(targetName)s.": "%(senderName)s hat das dauerhafte Ausschließen von %(targetName)s aus dem Raum aufgehoben.",
+ "%(senderName)s unbanned %(targetName)s.": "%(senderName)s hat die Verbannung von %(targetName)s aufgehoben.",
"Usage": "Verwendung",
"Use with caution": "Mit Vorsicht zu verwenden",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s hat die Einladung für %(targetName)s zurückgezogen.",
"You need to be able to invite users to do that.": "Du musst die Berechtigung haben, Nutzer einzuladen, um diese Aktion ausführen zu können.",
"You need to be logged in.": "Du musst angemeldet sein.",
"There are no visible files in this room": "Es gibt keine sichtbaren Dateien in diesem Raum",
- "Error changing language": "Fehler beim Ändern der Sprache",
- "Riot was unable to find the correct Data for the selected Language.": "Riot war nicht in der Lage die korrekten Daten für die ausgewählte Sprache zu finden.",
"Connectivity to the server has been lost.": "Verbindung zum Server wurde unterbrochen.",
"Sent messages will be stored until your connection has returned.": "Gesendete Nachrichten werden gespeichert, bis die Internetverbindung wiederhergestellt wird.",
- "Auto-complete": "Autovervollständigung",
- "Resend all": "Alle erneut senden",
- "cancel all": "alles abbrechen",
- "now. You can also select individual messages to resend or cancel.": "jetzt. Du kannst auch einzelne Nachrichten zum erneuten Senden oder Abbrechen auswählen.",
"Active call": "Aktiver Anruf",
- "withdrawn": "zurückgezogen",
- "To link to a room it must have": "Um einen Raum zu verlinken, benötigt er",
- "were": "wurden",
- "en": "Englisch",
- "pt-br": "Portugisisch (Brasilien)",
- "de": "Deutsch",
- "da": "Dänisch",
- "ru": "Russisch",
"Drop here %(toAction)s": "Hierher ziehen: %(toAction)s",
"Drop here to tag %(section)s": "Hierher ziehen: %(section)s taggen",
- "Press": "Drücke",
- "tag as %(tagName)s": "als %(tagName)s markieren",
- "to browse the directory": "um das Raum-Verzeichnis zu durchsuchen",
"to demote": "um die Priorität herabzusetzen",
"to favourite": "zum Favorisieren",
- "to make a room or": "um einen Raum zu erstellen, oder",
"to restore": "zum wiederherstellen",
- "to start a chat with someone": "um einen Chat mit jemandem zu starten",
"to tag direct chat": "als Direkt-Chat markieren",
- "You're not in any rooms yet! Press": "Du bist noch keinem Raum beigetreten! Drücke",
"click to reveal": "anzeigen",
- "To remove other users' messages": "Um Nachrichten anderer Nutzer zu verbergen",
"You are trying to access %(roomName)s.": "Du versuchst, auf den Raum \"%(roomName)s\" zuzugreifen.",
- "af": "Afrikaans",
- "ar-ae": "Arabisch (VAE)",
- "ar-bh": "Arabisch (Bahrain)",
- "ar-dz": "Arabisch (Algerien)",
- "ar-eg": "Arabisch (Ägypten)",
- "ar-iq": "Arabisch (Irak)",
- "ar-jo": "Arabisch (Jordanien)",
- "ar-kw": "Arabisch (Kuwait)",
- "ar-lb": "Arabisch (Libanon)",
- "ar-ly": "Arabisch (Lybien)",
- "ar-ma": "Arabisch (Marokko)",
- "ar-om": "Arabisch (Oman)",
- "ar-qa": "Arabisch (Katar)",
- "ar-sa": "Arabisch (Saudi Arabien)",
- "ar-sy": "Arabisch (Syrien)",
- "ar-tn": "Arabisch (Tunesien)",
- "ar-ye": "Arabisch (Jemen)",
- "be": "Weißrussisch",
- "bg": "Bulgarisch",
- "cs": "Tschechisch",
- "de-at": "Deutsch (Österreich)",
- "de-ch": "Deutsch (Schweiz)",
- "de-li": "Deutsch (Liechtenstein)",
- "de-lu": "Deutsch (Luxemburg)",
- "el": "Neugriechisch",
- "en-au": "Englisch (Australien)",
- "en-bz": "Englisch (Belize)",
- "en-ca": "Englisch (Kanada)",
- "en-gb": "Englisch (Vereinigtes Königreich)",
- "en-ie": "Englisch (Irland)",
- "en-jm": "Englisch (Jamaika)",
- "en-nz": "Englisch (Neuseeland)",
- "en-tt": "Englisch (Trinidad)",
- "en-us": "Englisch (Vereinigte Staaten)",
- "en-za": "Englisch (Südafrika)",
- "es-ar": "Spanisch (Argentinien)",
- "es-bo": "Spanisch (Bolivien)",
- "es-cl": "Spanisch (Chile)",
- "es-co": "Spanisch (Kolumbien)",
- "es-cr": "Spanisch (Costa Rica)",
- "es-do": "Spanisch (Dominikanische Republik)",
- "es-ec": "Spanisch (Ecuador)",
- "es-gt": "Spanisch (Guatemala)",
- "es-hn": "Spanisch (Honduras)",
- "es-mx": "Spanisch (Mexiko)",
- "es-ni": "Spanisch (Nicaragua)",
- "es-pa": "Spanisch (Panama)",
- "es-pe": "Spanisch (Peru)",
- "es-pr": "Spanisch (Puerto Rico)",
- "es-py": "Spanisch (Paraguay)",
- "es": "Spanisch (Spanien)",
- "es-sv": "Spanisch (El Salvador)",
- "es-uy": "Spanisch (Uruguay)",
- "es-ve": "Spanisch (Venezuela)",
- "et": "Estländisch",
- "eu": "Baskisch (Baskenland)",
- "fa": "Persisch (Farsi)",
- "fr-be": "Französisch (Belgien)",
- "fr-ca": "Französisch (Kanada)",
- "fr-ch": "Französisch (Schweiz)",
- "fr": "Französisch",
- "fr-lu": "Französisch (Luxemburg)",
- "gd": "Gälisch (Schottland)",
- "he": "Hebräisch",
- "hr": "Kroatisch",
- "hu": "Ungarisch",
- "id": "Indonesisch",
- "is": "Isländisch",
- "it-ch": "Italienisch (Schweiz)",
- "it": "Italienisch",
- "ja": "Japanisch",
- "ji": "Jiddisch",
- "ko": "Koreanisch",
- "lt": "Litauisch",
- "lv": "Lettisch",
- "mk": "Mazedonisch (FYROM)",
- "ms": "Malaysisch",
- "mt": "Maltesisch",
- "nl-be": "Niederländisch (Belgien)",
- "nl": "Niederländisch",
- "no": "Norwegisch",
- "pl": "Polnisch",
- "pt": "Portugiesisch",
- "rm": "Rätoromanisch",
- "ro-mo": "Rumänisch (Republik Moldau/Moldawien)",
- "ro": "Rumänisch",
- "ru-mo": "Russisch (Republik Moldau/Moldawien)",
- "sb": "Sorbisch",
- "sk": "Slowakisch",
- "sl": "Slowenisch",
- "sq": "Albanisch",
- "sr": "Serbisch",
- "sv-fi": "Schwedisch (Finnland)",
- "sv": "Schwedisch",
- "sx": "Sutu",
- "sz": "Samisch (Lappisch)",
- "th": "Thailändisch",
- "tn": "Setswana",
- "tr": "Türkisch",
- "ts": "Tsonga",
- "uk": "Ukrainisch",
- "ur": "Urdu",
- "ve": "Tshivenda",
- "vi": "Vietnamesisch",
- "zh-cn": "Chinesisch (Volksrepublik China)",
- "zh-hk": "Chinesisch (Hong Kong SAR)",
- "zh-sg": "Chinesisch (Singapur)",
- "zh-tw": "Chinesisch (Taiwan)",
- "zu": "Zulu",
- "ca": "Katalanisch",
- "fi": "Finnisch",
- "fo": "Färöisch",
- "ga": "Irisch",
- "hi": "Hindi",
- "xh": "Xhosa",
- "Monday": "Montag",
- "Tuesday": "Dienstag",
- "Wednesday": "Mittwoch",
- "Thursday": "Donnerstag",
- "Friday": "Freitag",
- "Saturday": "Samstag",
- "Sunday": "Sonntag",
"Failed to forget room %(errCode)s": "Das Entfernen des Raums ist fehlgeschlagen %(errCode)s",
- "Failed to join the room": "Fehler beim Betreten des Raumes",
- "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Eine Textnachricht wurde an +%(msisdn)s gesendet. Bitte gebe den Verifikationscode ein, den er beinhaltet",
- "and %(count)s others...": {
- "other": "und %(count)s weitere...",
- "one": "und ein(e) weitere(r)..."
- },
+ "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Eine Textnachricht wurde an +%(msisdn)s gesendet. Bitte den darin enthaltenen Verifizierungscode eingeben",
+ "and %(count)s others...|other": "und %(count)s weitere...",
+ "and %(count)s others...|one": "und ein(e) weitere(r)...",
"Are you sure?": "Bist du sicher?",
"Attachment": "Anhang",
- "Ban": "Dauerhaft aus dem Raum ausschließen",
- "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "Verbindungsaufbau zum Heimserver nicht möglich - bitte Internetverbindung überprüfen und sicherstellen, ob das SSL-Zertifikat des Heimservers vertrauenswürdig ist.",
+ "Ban": "Verbannen",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Es kann keine Verbindung zum Heimserver via HTTP aufgebaut werden, wenn die Adresszeile des Browsers eine HTTPS-URL enthält. Entweder HTTPS verwenden oder alternativ unsichere Skripte erlauben.",
- "changing room on a RoomView is not supported": "Das Ändern eines Raumes in einer RaumAnsicht wird nicht unterstützt",
"Click to mute audio": "Klicke um den Ton stumm zu stellen",
"Click to mute video": "Klicken, um das Video stummzuschalten",
"Command error": "Befehlsfehler",
"Decrypt %(text)s": "%(text)s entschlüsseln",
"Delete": "Löschen",
"Devices": "Geräte",
- "Direct chats": "Direkte Chats",
+ "Direct chats": "Direkt-Chats",
"Disinvite": "Einladung zurückziehen",
"Download %(text)s": "%(text)s herunterladen",
"Enter Code": "Code eingeben",
- "Failed to ban user": "Dauerhaftes Ausschließen des Benutzers aus dem Raum fehlgeschlagen",
+ "Failed to ban user": "Verbannen des Benutzers fehlgeschlagen",
"Failed to change power level": "Ändern des Berechtigungslevels fehlgeschlagen",
- "Failed to delete device": "Löschen des Geräts fehlgeschlagen",
+ "Failed to delete device": "Entfernen des Geräts fehlgeschlagen",
"Failed to join room": "Betreten des Raumes ist fehlgeschlagen",
"Failed to kick": "Kicken fehlgeschlagen",
"Failed to mute user": "Stummschalten des Nutzers fehlgeschlagen",
@@ -589,13 +359,12 @@
"'%(alias)s' is not a valid format for an address": "'%(alias)s' ist kein gültiges Adressformat",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' ist kein gültiges Alias-Format",
"Join Room": "Dem Raum beitreten",
- "Kick": "Aus dem Raum entfernen",
- "Level": "Berechtigungslevel",
+ "Kick": "Kicken",
"Local addresses for this room:": "Lokale Adressen dieses Raumes:",
"Markdown is disabled": "Markdown ist deaktiviert",
"Markdown is enabled": "Markdown ist aktiviert",
"Message not sent due to unknown devices being present": "Nachrichten wurden nicht gesendet, da unbekannte Geräte anwesend sind",
- "New address (e.g. #foo:%(localDomain)s)": "Neue Adresse (z.B. #foo:%(localDomain)s)",
+ "New address (e.g. #foo:%(localDomain)s)": "Neue Adresse (z. B. #foo:%(localDomain)s)",
"not set": "nicht gesetzt",
"not specified": "nicht spezifiziert",
"No devices with registered encryption keys": "Keine Geräte mit registrierten Verschlüsselungs-Schlüsseln",
@@ -611,47 +380,41 @@
"Server unavailable, overloaded, or something else went wrong.": "Server ist nicht verfügbar, überlastet oder ein anderer Fehler ist aufgetreten.",
"Some of your messages have not been sent.": "Einige deiner Nachrichten wurden nicht gesendet.",
"Submit": "Absenden",
- "The main address for this room is: %(canonical_alias_section)s": "Die Hauptadresse für diesen Raum ist: %(canonical_alias_section)s",
- "This action cannot be performed by a guest user. Please register to be able to do this.": "Diese Aktion kann nicht von einem Gast ausgeführt werden. Bitte registriere dich um dies zu tun.",
"%(actionVerb)s this person?": "Diese Person %(actionVerb)s?",
"This room has no local addresses": "Dieser Raum hat keine lokale Adresse",
- "This room is private or inaccessible to guests. You may be able to join if you register": "Dieser Raum ist privat oder für Gäste nicht zugänglich. Du kannst jedoch eventuell beitreten, wenn du dich registrierst",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Es wurde versucht, einen bestimmten Punkt im Chatverlauf dieses Raumes zu laden. Dir fehlt jedoch die Berechtigung, die betreffende Nachricht zu sehen.",
"Tried to load a specific point in this room's timeline, but was unable to find it.": "Es wurde versucht, einen bestimmten Punkt im Chatverlauf dieses Raumes zu laden, der Punkt konnte jedoch nicht gefunden werden.",
"Turn Markdown off": "Markdown deaktiveren",
- "Turn Markdown on": "Markdown einschalten",
+ "Turn Markdown on": "Markdown aktivieren",
"Unable to load device list": "Geräteliste konnte nicht geladen werden",
"Unknown room %(roomId)s": "Unbekannter Raum %(roomId)s",
- "Usage: /markdown on|off": "Verwendung: /markdown on|off",
"You seem to be in a call, are you sure you want to quit?": "Du scheinst in einem Anruf zu sein. Bist du sicher schließen zu wollen?",
"You seem to be uploading files, are you sure you want to quit?": "Du scheinst Dateien hochzuladen. Bist du sicher schließen zu wollen?",
"You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Du wirst diese Änderung nicht rückgängig machen können, da der Nutzer dasselbe Berechtigungslevel wie du selbst erhalten wird.",
"Make Moderator": "Zum Moderator ernennen",
"Room": "Raum",
- "(~%(searchCount)s results)": "(~%(searchCount)s Ergebnisse)",
"Cancel": "Abbrechen",
- "bold": "fett",
- "italic": "kursiv",
- "strike": "durchstreichen",
- "underline": "unterstreichen",
+ "bold": "Fett",
+ "italic": "Kursiv",
+ "strike": "Durchgestrichen",
+ "underline": "Unterstrichen",
"code": "Code",
"quote": "Zitat",
"bullet": "Aufzählung",
"Click to unmute video": "Klicken, um die Video-Stummschaltung zu deaktivieren",
"Click to unmute audio": "Klicken, um den Ton wieder einzuschalten",
- "Failed to load timeline position": "Laden der Position im Zeitstrahl fehlgeschlagen",
+ "Failed to load timeline position": "Laden der Position im Chatverlauf fehlgeschlagen",
"Failed to toggle moderator status": "Umschalten des Moderator-Status fehlgeschlagen",
"Enable encryption": "Verschlüsselung aktivieren",
"The main address for this room is": "Die Hauptadresse für diesen Raum ist",
"Autoplay GIFs and videos": "GIF-Dateien und Videos automatisch abspielen",
"Don't send typing notifications": "Schreibbenachrichtigungen unterdrücken",
"Hide read receipts": "Lesebestätigungen verbergen",
- "Never send encrypted messages to unverified devices in this room": "In diesem Raum keine verschlüsselten Nachrichten an unverifizierte Geräte senden",
"numbullet": "Nummerierung",
"%(items)s and %(remaining)s others": "%(items)s und %(remaining)s weitere",
"%(items)s and one other": "%(items)s und ein(e) weitere(r)",
"%(items)s and %(lastItem)s": "%(items)s und %(lastItem)s",
- "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)ssind dem Raum %(repeats)s mal beigetreten",
+ "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)shaben 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",
"%(oneUser)sjoined": "%(oneUser)shat den Raum betreten",
@@ -666,29 +429,28 @@
"%(severalUsers)sleft and rejoined %(repeats)s times": "%(severalUsers)shaben den Raum verlassen und %(repeats)s mal neu betreten",
"%(oneUser)sleft and rejoined %(repeats)s times": "%(oneUser)shat den Raum %(repeats)s mal verlassen und wieder neu betreten",
"%(severalUsers)sleft and rejoined": "%(severalUsers)shaben den Raum verlassen und wieder neu betreten",
- "%(oneUser)sleft left and rejoined": "%(oneUser)sging und trat erneut bei",
- "%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)shaben ihre Einladung %(repeats)s mal abgelehnt",
+ "%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)shaben ihre Einladung %(repeats)s-mal abgelehnt",
"%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)shat die Einladung %(repeats)s mal abgelehnt",
- "%(severalUsers)srejected their invitations": "%(severalUsers)shaben ihre Einladung abgelehnt",
+ "%(severalUsers)srejected their invitations": "%(severalUsers)shaben ihre Einladungen abgelehnt",
"%(oneUser)srejected their invitation": "%(oneUser)shat die Einladung abgelehnt",
"%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)swurden die ursprünglichen Einladungen %(repeats)s mal wieder entzogen",
"%(oneUser)shad their invitation withdrawn %(repeats)s times": "%(oneUser)swurde die Einladung %(repeats)s mal wieder entzogen",
"%(severalUsers)shad their invitations withdrawn": "%(severalUsers)szogen ihre Einladungen zurück",
"%(oneUser)shad their invitation withdrawn": "%(oneUser)swurde die ursprüngliche Einladung wieder entzogen",
- "were invited %(repeats)s times": "wurden %(repeats)s mal eingeladen",
+ "were invited %(repeats)s times": "wurden %(repeats)s-mal eingeladen",
"was invited %(repeats)s times": "wurde %(repeats)s mal eingeladen",
"were invited": "wurden eingeladen",
- "were banned %(repeats)s times": "wurden %(repeats)s-mal dauerhaft aus dem Raum ausgeschlossen",
- "was banned %(repeats)s times": "wurde %(repeats)s-mal aus dem Raum ausgeschlossen",
- "were banned": "wurden dauerhaft aus dem Raum ausgeschlossen",
- "were unbanned %(repeats)s times": "wurden %(repeats)s mal vom dauerhaften Ausschluss aus dem Raum befreit",
- "was unbanned %(repeats)s times": "wurde %(repeats)s mal vom dauerhaften Ausschluss aus dem Raum befreit",
- "were unbanned": "wurden vom dauerhaften Ausschluss aus dem Raum befreit",
- "were kicked %(repeats)s times": "wurden %(repeats)s-mal aus dem Raum entfernt",
- "was kicked %(repeats)s times": "wurde %(repeats)s-mal aus dem Raum entfernt",
- "were kicked": "wurden aus dem Raum entfernt",
+ "were banned %(repeats)s times": "wurden %(repeats)s-mal aus dem Raum verbannt",
+ "was banned %(repeats)s times": "wurde %(repeats)s-mal aus dem Raum verbannt",
+ "were banned": "wurden aus dem Raum verbannt",
+ "were unbanned %(repeats)s times": "wurden %(repeats)s-mal von der Verbannung aus dem Raum befreit",
+ "was unbanned %(repeats)s times": "wurde %(repeats)s-mal von der Verbannung aus dem Raum befreit",
+ "were unbanned": "wurden von der Verbannung aus dem Raum befreit",
+ "were kicked %(repeats)s times": "wurden %(repeats)s-mal gekickt",
+ "was kicked %(repeats)s times": "wurde %(repeats)s-mal gekickt",
+ "were kicked": "wurden gekickt",
"%(severalUsers)schanged their name %(repeats)s times": "%(severalUsers)shaben ihren Namen %(repeats)s mal geändert",
- "%(oneUser)schanged their name %(repeats)s times": "%(oneUser)shat den Namen %(repeats)s mal geändert",
+ "%(oneUser)schanged their name %(repeats)s times": "%(oneUser)shat den Namen %(repeats)s-mal geändert",
"%(severalUsers)schanged their name": "%(severalUsers)shaben ihre Namen geändert",
"%(oneUser)schanged their name": "%(oneUser)shat den Namen geändert",
"%(severalUsers)schanged their avatar %(repeats)s times": "%(severalUsers)shaben %(repeats)s mal ihr Profilbild geändert",
@@ -714,7 +476,6 @@
"riot-web version:": "Version von riot-web:",
"Scroll to bottom of page": "Zum Ende der Seite springen",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Zeitstempel im 12-Stunden-Format anzeigen (z. B. 2:30pm)",
- "to tag as %(tagName)s": "um als \"%(tagName)s\" zu markieren",
"Email address": "E-Mail-Adresse",
"Error decrypting attachment": "Fehler beim Entschlüsseln des Anhangs",
"Mute": "Stummschalten",
@@ -734,8 +495,6 @@
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "Die exportierte Datei ist mit einer Passphrase geschützt. Du kannst die Passphrase hier eingeben, um die Datei zu entschlüsseln.",
"You must join the room to see its files": "Du musst dem Raum beitreten, um die Raum-Dateien sehen zu können",
"Reject all %(invitedRooms)s invites": "Alle %(invitedRooms)s Einladungen ablehnen",
- "Start new Chat": "Starte neuen Chat",
- "Guest users can't invite users. Please register.": "Gäste können keine Benutzer einladen. Bitte registrieren.",
"Failed to invite": "Einladen fehlgeschlagen",
"Failed to invite user": "Einladen des Nutzers ist fehlgeschlagen",
"Confirm Removal": "Entfernen bestätigen",
@@ -745,12 +504,11 @@
"To continue, please enter your password.": "Zum fortfahren bitte Passwort eingeben.",
"Device name": "Geräte-Name",
"Device key": "Geräte-Schlüssel",
- "In future this verification process will be more sophisticated.": "Zukünftig wird dieser Verifizierungsprozess technisch ausgereifter und eleganter gestaltet werden.",
+ "In future this verification process will be more sophisticated.": "Zukünftig wird der Verifizierungsprozess technisch ausgereifter und eleganter gestaltet werden.",
"Verify device": "Gerät verifizieren",
- "I verify that the keys match": "Ich bestätige, dass die Schlüssel passen",
+ "I verify that the keys match": "Ich bestätige, dass die Schlüssel identisch sind",
"Unable to restore session": "Sitzungswiederherstellung fehlgeschlagen",
"Continue anyway": "Trotzdem fortfahren",
- "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Dein Anzeigename ist der Name, der anderen Nutzern angezeigt wird, wenn du in Räumen kommunizierst. Welchen Anzeigenamen möchtest du wählen?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Nicht verifizierte Geräte werden aktuell blockiert und auf die Sperrliste gesetzt. Um Nachrichten an diese Geräte senden zu können, müssen diese zunächst verifiziert werden.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" enthält Geräte, die du bislang noch nicht gesehen hast.",
"Unknown devices": "Unbekannte Geräte",
@@ -759,9 +517,9 @@
"ex. @bob:example.com": "z. B. @bob:example.com",
"Add User": "Benutzer hinzufügen",
"Sign in with CAS": "Mit CAS anmelden",
- "Custom Server Options": "Erweiterte Server-Optionen",
+ "Custom Server Options": "Benutzerdefinierte Server-Optionen",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Du kannst die erweiterten Server-Optionen nutzen, um dich an anderen Matrix-Servern anzumelden, indem du eine andere Heimserver-URL angibst.",
- "This allows you to use this app with an existing Matrix account on a different home server.": "Dies erlaubt dir diese App mit einem existierenden Matrix-Konto auf einem anderen Heimserver zu verwenden.",
+ "This allows you to use this app with an existing Matrix account on a different home server.": "Dies erlaubt es dir, diese App mit einem existierenden Matrix-Benutzerkonto auf einem anderen Heimserver zu verwenden.",
"Dismiss": "Ablehnen",
"You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Du kannst auch einen angepassten Idantitätsserver angeben aber dies wird typischerweise Interaktionen mit anderen Nutzern auf Basis der E-Mail-Adresse verhindern.",
"Please check your email to continue registration.": "Bitte prüfe deine E-Mails, um mit der Registrierung fortzufahren.",
@@ -800,9 +558,9 @@
"Online": "Online",
" (unsupported)": " (nicht unterstützt)",
"This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Dieser Prozess erlaubt es dir, die zuvor von einem anderen Matrix-Client exportierten Verschlüsselungs-Schlüssel zu importieren. Danach kannst du alle Nachrichten entschlüsseln, die auch bereits auf dem anderen Client entschlüsselt werden konnten.",
- "This will make your account permanently unusable. You will not be able to re-register the same user ID.": "Dies wird dein Konto permanent unbenutzbar machen. Du wirst dich nicht mit derselben Nutzer-ID erneut registrieren können.",
+ "This will make your account permanently unusable. You will not be able to re-register the same user ID.": "Dies wird dein Benutzerkonto dauerhaft unbenutzbar machen. Du wirst nicht in der Lage sein, dich mit derselben Benutzer-ID erneut zu registrieren.",
"To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "Um sicherzustellen, dass diesem Gerät vertraut werden kann, kontaktiere bitte den Eigentümer des Geräts über ein anderes Kommunikationsmittel (z.B. im persönlichen Gespräch oder durch einen Telefon-Anruf) und vergewissere dich, dass der Schlüssel, den der Eigentümer in den Nutzer-Einstellungen für dieses Gerät sieht, mit dem folgenden Schlüssel identisch ist:",
- "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Wenn er passt, betätige den Bestätigen-Button unten. Wenn nicht, fängt jemand anderes dieses Gerät ab und du möchtest wahrscheinlich lieber den Blacklist-Button betätigen.",
+ "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Wenn er identisch ist, bitte den Bestätigen-Button unten verwenden. Falls er nicht identisch sein sollte, hat eine Fremdperson Kontrolle über dieses Gerät und es sollte gesperrt werden.",
"We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Bei der Wiederherstellung deiner letzten Sitzung ist ein Fehler aufgetreten. Um fortzufahren, musst du dich erneut anmelden. Ein zuvor verschlüsselter Chatverlauf wird in der Folge nicht mehr lesbar sein.",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Wenn du zuvor eine aktuellere Version von Riot verwendet hast, ist deine Sitzung eventuell inkompatibel mit dieser Version. Bitte schließe dieses Fenster und kehre zur aktuelleren Version zurück.",
"Blacklist": "Blockieren",
@@ -813,7 +571,7 @@
"Idle": "Untätig",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "Wir empfehlen dir, für jedes Gerät den Verifizierungsprozess durchzuführen, um sicherzustellen, dass sie tatsächlich ihrem rechtmäßigem Eigentümer gehören. Alternativ kannst du die Nachrichten auch ohne Verifizierung erneut senden.",
"Ongoing conference call%(supportedText)s.": "Laufendes Konferenzgespräch%(supportedText)s.",
- "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Du wirst jetzt auf die Website eines Drittanbieters weitergeleitet, damit du dein Konto für die Verwendung von %(integrationsUrl)s authentifizieren kannst. Möchtest du fortfahren?",
+ "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Du wirst jetzt auf die Website eines Drittanbieters weitergeleitet, damit du dein Benutzerkonto für die Verwendung von %(integrationsUrl)s authentifizieren kannst. Möchtest du fortfahren?",
"Disable URL previews for this room (affects only you)": "URL-Vorschau für diesen Raum deaktivieren (betrifft nur dich)",
"Start automatically after system login": "Nach System-Login automatisch starten",
"Desktop specific": "Desktopspezifisch",
@@ -822,7 +580,6 @@
"disabled": "deaktiviert",
"enabled": "aktiviert",
"Invited": "Eingeladen",
- "Set a Display Name": "Anzeigenamen festlegen",
"for %(amount)ss": "für %(amount)ss",
"for %(amount)sm": "seit %(amount)smin",
"for %(amount)sh": "für %(amount)sh",
@@ -839,9 +596,8 @@
"Camera": "Kamera",
"Device already verified!": "Gerät bereits verifiziert!",
"Export": "Export",
- "Failed to register as guest:": "Die Registrierung als Gast ist fehlgeschlagen:",
- "Guest access is disabled on this Home Server.": "Gastzugang ist auf diesem Heimserver deaktivert.",
- "Import": "Import",
+ "Guest access is disabled on this Home Server.": "Der Gastzugang ist auf diesem Heimserver deaktiviert.",
+ "Import": "Importieren",
"Incorrect username and/or password.": "Inkorrekter Nutzername und/oder Passwort.",
"Results from DuckDuckGo": "Ergebnisse von DuckDuckGo",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Den Signaturschlüssel den du bereitstellst stimmt mit dem Schlüssel den du von %(userId)s's Gerät %(deviceId)s empfangen hast überein. Gerät als verifiziert markiert.",
@@ -853,15 +609,13 @@
"device id: ": "Geräte-ID: ",
"Device key:": "Geräte-Schlüssel:",
"Email address (optional)": "E-Mail-Adresse (optional)",
- "Publish this room to the public in %(domain)s's room directory?": "Diesen Raum mittels Raum-Verzeichnis von %(domain)s veröffentlichen?",
+ "Publish this room to the public in %(domain)s's room directory?": "Diesen Raum im Raum-Verzeichnis von %(domain)s veröffentlichen?",
"Mobile phone number (optional)": "Mobilfunknummer (optional)",
"Password:": "Passwort:",
"Register": "Registrieren",
"Save": "Speichern",
- "Setting a user name will create a fresh account": "Die Eingabe eines Benutzernamens wird ein neues Konto erzeugen",
"Tagged as: ": "Markiert als: ",
"This Home Server does not support login using email address.": "Dieser Heimserver unterstützt den Login mittels E-Mail-Adresse nicht.",
- "There was a problem logging in.": "Beim Anmelden ist ein Problem aufgetreten.",
"Unknown (user, device) pair:": "Unbekanntes (Nutzer-/Gerät-)Paar:",
"Remote addresses for this room:": "Remote-Adressen für diesen Raum:",
"Unrecognised command:": "Unbekannter Befehl:",
@@ -872,26 +626,22 @@
"WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "WARNUNG: SCHLÜSSEL-VERIFIZIERUNG FEHLGESCHLAGEN! Der Signatur-Schlüssel für %(userId)s und das Gerät %(deviceId)s ist \"%(fprint)s\", welcher nicht mit dem bereitgestellten Schlüssel \"%(fingerprint)s\" übereinstimmt. Dies kann bedeuten, dass deine Kommunikation abgehört wird!",
"You have disabled URL previews by default.": "Du hast die URL-Vorschau standardmäßig deaktiviert.",
"You have enabled URL previews by default.": "Du hast die URL-Vorschau standardmäßig aktiviert.",
- "You have entered an invalid contact. Try using their Matrix ID or email address.": "Du hast einen ungültigen Kontakt eingegeben. Versuche es mit der Matrix-Kennung oder der E-Mail-Adresse des Kontakts.",
- "$senderDisplayName changed the room avatar to
": "$senderDisplayName hat das Raum-Bild geändert zu
",
+ "%(senderDisplayName)s changed the room avatar to
": "%(senderDisplayName)s hat das Raum-Bild geändert zu
",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s hat das Raum-Bild für %(roomName)s geändert",
"Hide removed messages": "Gelöschte Nachrichten verbergen",
"Start new chat": "Neuen Chat starten",
- "Disable markdown formatting": "Markdown-Formatierung deaktivieren",
"Add": "Hinzufügen",
- "%(count)s new messages.one": "%(count)s neue Nachricht",
- "%(count)s new messages.other": "%(count)s neue Nachrichten",
+ "%(count)s new messages|one": "%(count)s neue Nachricht",
+ "%(count)s new messages|other": "%(count)s neue Nachrichten",
"Error: Problem communicating with the given homeserver.": "Fehler: Problem bei der Kommunikation mit dem angegebenen Home-Server.",
"Failed to fetch avatar URL": "Abrufen der Avatar-URL fehlgeschlagen",
"The phone number entered looks invalid": "Die eingegebene Telefonnummer scheint ungültig zu sein",
- "This room is private or inaccessible to guests. You may be able to join if you register.": "Dieser Raum ist privat oder für Gäste nicht betretbar. Du kannst evtl. beitreten wenn du dich registrierst.",
- "Uploading %(filename)s and %(count)s others.zero": "%(filename)s wird hochgeladen",
- "Uploading %(filename)s and %(count)s others.one": "%(filename)s und %(count)s weitere Dateien werden hochgeladen",
- "Uploading %(filename)s and %(count)s others.other": "%(filename)s und %(count)s weitere Dateien werden hochgeladen",
+ "Uploading %(filename)s and %(count)s others|zero": "%(filename)s wird hochgeladen",
+ "Uploading %(filename)s and %(count)s others|one": "%(filename)s und %(count)s weitere Dateien werden hochgeladen",
+ "Uploading %(filename)s and %(count)s others|other": "%(filename)s und %(count)s weitere Dateien werden hochgeladen",
"You must register to use this functionality": "Du musst dich registrieren, um diese Funktionalität nutzen zu können",
"Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Alle erneut senden oder alle verwerfen. Du kannst auch einzelne Nachrichten erneut senden oder verwerfen.",
"Create new room": "Neuen Raum erstellen",
- "Welcome page": "Willkommensseite",
"Room directory": "Raum-Verzeichnis",
"Start chat": "Chat starten",
"New Password": "Neues Passwort",
@@ -910,10 +660,9 @@
"a room": "einen Raum",
"Accept": "Akzeptieren",
"Active call (%(roomName)s)": "Aktiver Anruf (%(roomName)s)",
- "Admin tools": "Admin-Werkzeuge",
- "And %(count)s more...": "Und %(count)s weitere...",
+ "Admin Tools": "Admin-Werkzeuge",
"Alias (optional)": "Alias (optional)",
- "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Verbindung zum Heimserver fehlgeschlagen - bitte prüfe deine Verbindung, stelle sicher, dass dem SSL-Zertifikat deines Heimservers vertraut wird und keine Browser-Erweiterung Anfragen blockiert.",
+ "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Verbindung zum Heimserver fehlgeschlagen - bitte überprüfe die Internetverbindung und stelle sicher, dass dem SSL-Zertifikat deines Heimservers vertraut wird und dass Anfragen nicht durch eine Browser-Erweiterung blockiert werden.",
"Click here to join the discussion!": "Hier klicken, um an der Diskussion teilzunehmen!",
"Close": "Schließen",
"Custom": "Erweitert",
@@ -939,17 +688,15 @@
"Room contains unknown devices": "Raum enthält unbekannte Geräte",
"%(roomName)s does not exist.": "%(roomName)s existert nicht.",
"%(roomName)s is not accessible at this time.": "%(roomName)s ist aktuell nicht zugreifbar.",
- "Searching known users": "Suche nach bekannten Nutzern",
"Seen by %(userName)s at %(dateTime)s": "Gesehen von %(userName)s um %(dateTime)s",
"Send anyway": "Trotzdem senden",
- "Set": "Setze",
"Start authentication": "Authentifizierung beginnen",
"Show Text Formatting Toolbar": "Text-Formatierungs-Werkzeugleiste anzeigen",
- "This invitation was sent to an email address which is not associated with this account:": "Diese Einledung wurde an eine E-Mail-Adresse gesendet, die nicht mit diesem Konto verknüpft ist:",
+ "This invitation was sent to an email address which is not associated with this account:": "Diese Einladung wurde an eine E-Mail-Adresse gesendet, die nicht mit diesem Benutzerkonto verknüpft ist:",
"This room": "In diesem Raum",
"To link to a room it must have an address.": "Um einen Raum zu verlinken, muss er eine Adresse haben.",
"Undecryptable": "Nicht entschlüsselbar",
- "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Kann nicht feststellen, ob die Adresse an die diese Einladung gesendet wurde mit einer übereinstimmt, die zu deinem Konto gehört.",
+ "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Es konnte nicht ermittelt werden, ob die Adresse, an die diese Einladung gesendet wurde, mit einer mit deinem Benutzerkonto verknüpften Adresse übereinstimmt.",
"Unencrypted message": "Nicht verschlüsselbare Nachricht",
"unknown caller": "Unbekannter Anrufer",
"Unnamed Room": "Unbenannter Raum",
@@ -959,12 +706,12 @@
"%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (Berechtigungslevel %(powerLevelNumber)s)",
"Verified": "Verifiziert",
"Would you like to accept or decline this invitation?": "Möchtest du diese Einladung akzeptieren oder ablehnen?",
- "You have been banned from %(roomName)s by %(userName)s.": "Du wurdest von %(userName)s dauerhaft aus dem Raum %(roomName)s ausgeschlossen.",
- "You have been kicked from %(roomName)s by %(userName)s.": "Du wurdest von %(userName)s aus dem Raum %(roomName)s entfernt.",
+ "You have been banned from %(roomName)s by %(userName)s.": "Du wurdest von %(userName)s aus dem Raum %(roomName)s verbannt.",
+ "You have been kicked from %(roomName)s by %(userName)s.": "Du wurdest von %(userName)s aus dem Raum \"%(roomName)s\" gekickt.",
"You may wish to login with a different account, or add this email to this account.": "Du möchtest dich eventuell mit einem anderen Konto anmelden oder alternativ diese E-Mail-Adresse diesem Konto hinzufügen.",
"Your home server does not support device management.": "Dein Heimserver unterstützt kein Geräte-Management.",
- "(~%(count)s results).one": "(~%(count)s Ergebnis)",
- "(~%(count)s results).other": "(~%(count)s Ergebnis)",
+ "(~%(count)s results)|one": "(~%(count)s Ergebnis)",
+ "(~%(count)s results)|other": "(~%(count)s Ergebnis)",
"Device Name": "Geräte-Name",
"(could not connect media)": "(Medienverbindung konnte nicht hergestellt werden)",
"(no answer)": "(keine Antwort)",
@@ -979,11 +726,11 @@
"You're not in any rooms yet! Press to make a room or to browse the directory": "Du bist bislang keinem Raum beigetreten! Auf klicken, um einen Raum zu erstellen, oder auf klicken, um das Raum-Verzeichnis zu durchsuchen",
"To return to your account in future you need to set a password": "Um in Zukunft auf dein Benutzerkonto zugreifen zu können, musst du ein Passwort einrichten",
"Skip": "Überspringen",
- "Start verification": "Verifikation starten",
- "Share without verifying": "Ohne Verifizierung teilen",
- "Ignore request": "Anfrage ignorieren",
- "You added a new device '%(displayName)s', which is requesting encryption keys.": "Du hast das neue Gerät '%(displayName)s' hinzugefügt, welches nun Verschlüsselungs-Schlüssel anfragt.",
- "Encryption key request": "Verschlüsselungs-Schlüssel-Anfrage",
+ "Start verification": "Verifizierung starten",
+ "Share without verifying": "Ohne Verifizierung verwenden",
+ "Ignore request": "Anforderung ignorieren",
+ "You added a new device '%(displayName)s', which is requesting encryption keys.": "Du hast das neue Gerät '%(displayName)s' hinzugefügt, welches nun Verschlüsselungs-Schlüssel anfordert.",
+ "Encryption key request": "Anforderung von Verschlüsselungs-Schlüsseln",
"Your unverified device '%(displayName)s' is requesting encryption keys.": "Dein nicht verifiziertes Gerät '%(displayName)s' fordert Verschlüsselungs-Schlüssel an.",
"Updates": "Updates",
"Check for update": "Suche nach Updates",
@@ -992,47 +739,267 @@
"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",
+ "Edit": "Editieren",
+ "Enable automatic language detection for syntax highlighting": "Automatische Spracherkennung für die Syntax-Hervorhebung aktivieren",
"Hide Apps": "Apps verbergen",
- "Hide join/leave messages (invites/kicks/bans unaffected)": "Verberge Beitritt-/Verlassen-Meldungen (nicht Einladungen/Kicks/Bannungen)",
- "Hide avatar and display name changes": "Verberge Avatar- und Anzeigenamen-Änderungen",
- "Matrix Apps": "Matrix Apps",
+ "Hide join/leave messages (invites/kicks/bans unaffected)": "Betreten-/Verlassen-Benachrichtigungen verbergen (gilt nicht für Einladungen/Kicks/Bans)",
+ "Hide avatar and display name changes": "Profilbild- und Anzeigenamen-Änderungen verbergen",
"Revoke widget access": "Ziehe Widget-Zugriff zurück",
"Sets the room topic": "Setzt das Raum-Thema",
- "Show Apps": "Zeige Apps",
+ "Show Apps": "Apps anzeigen",
"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",
+ "Unbans user with given id": "Verbannung aufheben für Benutzer 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",
+ "Autocomplete Delay (ms):": "Verzögerung bei Autovervollständigung (ms):",
"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 +example:matrix.org.": "Um einer existierenden Gruppe beizutreten, musst du ihre Gruppen-Kennung wissen. Diese sieht z.B. aus wie '+example:matrix.org'.",
"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",
+ "Automatically replace plain text Emoji": "Klartext-Emoji automatisch ersetzen",
"Failed to upload image": "Bild-Hochladen fehlgeschlagen",
- "Failed to update group": "Aktualisieren der Gruppe fehlgeschlagen",
- "Hide avatars in user and room mentions": "Verberge Profilbilder in Benutzer- und Raum-Erwähnungen",
- "AM": "am",
- "PM": "pm"
+ "Hide avatars in user and room mentions": "Profilbilder in Benutzer- und Raum-Erwähnungen verbergen",
+ "AM": "a. m.",
+ "PM": "p. m.",
+ "The maximum permitted number of widgets have already been added to this room.": "Die maximal erlaubte Anzahl an hinzufügbaren Widgets für diesen Raum wurde erreicht.",
+ "Cannot add any more widgets": "Kann keine weiteren Widgets hinzufügen",
+ "Do you want to load widget from URL:": "Möchtest du das Widget von folgender URL laden:",
+ "Integrations Error": "Integrations-Error",
+ "NOTE: Apps are not end-to-end encrypted": "BEACHTE: Apps sind nicht Ende-zu-Ende verschlüsselt",
+ "%(widgetName)s widget added by %(senderName)s": "%(senderName)s hat das Widget %(widgetName)s hinzugefügt",
+ "%(widgetName)s widget removed by %(senderName)s": "%(senderName)s hat das Widget %(widgetName)s entfernt",
+ "Robot check is currently unavailable on desktop - please use a web browser": "In der Desktop-Version kann derzeit nicht geprüft werden, ob ein Benutzer ein Roboter ist. Bitte einen Webbrowser verwenden",
+ "%(widgetName)s widget modified by %(senderName)s": "Das Widget '%(widgetName)s' wurde von %(senderName)s bearbeitet",
+ "Copied!": "Kopiert!",
+ "Failed to copy": "Kopieren fehlgeschlagen",
+ "Ignored Users": "Ignorierte Benutzer",
+ "Ignore": "Ignorieren",
+ "You are now ignoring %(userId)s": "%(userId)s wird jetzt ignoriert",
+ "You are no longer ignoring %(userId)s": "%(userId)s wird nicht mehr ignoriert",
+ "Message removed by %(userId)s": "Nachricht wurde von %(userId)s entfernt",
+ "Name or matrix ID": "Name oder Matrix-ID",
+ "Unable to leave room": "Verlassen des Raumes fehlgeschlagen",
+ "Leave": "Verlassen",
+ "Failed to invite the following users to %(groupId)s:": "Die folgenden Benutzer konnten nicht in die Gruppe %(groupId)s eingeladen werden:",
+ "Leave %(groupName)s?": "%(groupName)s verlassen?",
+ "Add a Room": "Raum hinzufügen",
+ "Add a User": "Benutzer hinzufügen",
+ "Light theme": "Helles Thema",
+ "Dark theme": "Dunkles Thema",
+ "You have entered an invalid address.": "Du hast eine ungültige Adresse eingegeben.",
+ "Matrix ID": "Matrix-ID",
+ "Advanced options": "Erweiterte Optionen",
+ "Block users on other matrix homeservers from joining this room": "Benutzer anderer Matrix-Heimserver das Betreten dieses Raumes verbieten",
+ "This setting cannot be changed later!": "Diese Einstellung kann nachträglich nicht mehr geändert werden!",
+ "Unignore": "Entignorieren",
+ "User Options": "Benutzer-Optionen",
+ "Unignored user": "Benutzer nicht mehr ignoriert",
+ "Ignored user": "Benutzer ignoriert",
+ "Stops ignoring a user, showing their messages going forward": "Beendet das Ignorieren eines Benutzers, nachfolgende Nachrichten werden wieder angezeigt",
+ "Ignores a user, hiding their messages from you": "Ignoriert einen Benutzer und verbirgt dessen Nachrichten",
+ "Disable Emoji suggestions while typing": "Emoji-Vorschläge während des Schreibens deaktivieren",
+ "Banned by %(displayName)s": "Verbannt von %(displayName)s",
+ "To send messages, you must be a": "Notwendiges Berechtigungslevel, um Nachrichten zu senden",
+ "To invite users into the room, you must be a": "Notwendiges Berechtigungslevel, um Benutzer in diesen Raum einladen zu können:",
+ "To configure the room, you must be a": "Notwendiges Berechtigungslevel, um diesen Raum zu konfigurieren:",
+ "To kick users, you must be a": "Notwendiges Berechtigungslevel, um Benutzer zu kicken:",
+ "To ban users, you must be a": "Notwendiges Berechtigungslevel, um Benutzer zu verbannen:",
+ "To remove other users' messages, you must be a": "Notwendiges Berechtigungslevel, um Nachrichten von anderen Benutzern zu löschen",
+ "To send events of type , you must be a": "Notwendiges Berechtigungslevel, um Ereignisse des Typs zu senden",
+ "To change the room's avatar, you must be a": "Notwendiges Berechtigungslevel, um das Raumbild zu ändern",
+ "To change the room's name, you must be a": "Notwendiges Berechtigungslevel, um den Raumnamen zu ändern",
+ "To change the room's main address, you must be a": "Notwendiges Berechtigungslevel, um die Hauptadresse des Raumes zu ändern",
+ "To change the room's history visibility, you must be a": "Notwendiges Berechtigungslevel, um die Sichtbarkeit des bisherigen Chatverlaufs zu ändern",
+ "To change the permissions in the room, you must be a": "Notwendiges Berechtigungslevel, um Berechtigungen in diesem Raum zu ändern",
+ "To change the topic, you must be a": "Notwendiges Berechtigungslevel, um das Thema zu ändern",
+ "To modify widgets in the room, you must be a": "Notwendiges Berechtigungslevel, um Widgets in diesem Raum zu ändern",
+ "Description": "Beschreibung",
+ "Unable to accept invite": "Einladung kann nicht akzeptiert werden",
+ "Failed to invite users to %(groupId)s": "Benutzer konnten nicht in %(groupId)s eingeladen werden",
+ "Unable to reject invite": "Einladung konnte nicht abgelehnt werden",
+ "Who would you like to add to this summary?": "Wen möchtest zu dieser Übersicht hinzufügen?",
+ "Add to summary": "Zur Übersicht hinzufügen",
+ "Failed to add the following users to the summary of %(groupId)s:": "Die folgenden Benutzer konnten nicht zur Übersicht von %(groupId)s hinzugefügt werden:",
+ "Which rooms would you like to add to this summary?": "Welche Räume möchtest du zu dieser Übersicht hinzufügen?",
+ "Room name or alias": "Raum-Name oder Alias",
+ "Failed to add the following rooms to the summary of %(groupId)s:": "Die folgenden Räume konnten nicht zur Übersicht von %(groupId)s hinzugefügt werden:",
+ "Failed to remove the room from the summary of %(groupId)s": "Der Raum konnte nicht aus der Übersicht von %(groupId)s entfernt werden",
+ "The room '%(roomName)s' could not be removed from the summary.": "Der Raum '%(roomName)s' konnte nicht aus der Übersicht entfernt werden.",
+ "Failed to remove a user from the summary of %(groupId)s": "Benutzer konnte nicht aus der Übersicht von %(groupId)s entfernt werden",
+ "The user '%(displayName)s' could not be removed from the summary.": "Der Benutzer '%(displayName)s' konnte nicht aus der Übersicht entfernt werden.",
+ "Unknown": "Unbekannt",
+ "Failed to add the following rooms to %(groupId)s:": "Die folgenden Räume konnten nicht zu %(groupId)s hinzugefügt werden:",
+ "Matrix Room ID": "Matrix-Raum-ID",
+ "email address": "E-Mail-Adresse",
+ "Try using one of the following valid address types: %(validTypesList)s.": "Bitte einen der folgenden gültigen Adresstypen verwenden: %(validTypesList)s.",
+ "Failed to remove '%(roomName)s' from %(groupId)s": "Entfernen von '%(roomName)s' aus %(groupId)s fehlgeschlagen",
+ "Are you sure you want to remove '%(roomName)s' from %(groupId)s?": "Bist du sicher, dass du '%(roomName)s' aus '%(groupId)s' entfernen möchtest?",
+ "Invites sent": "Einladungen gesendet",
+ "Remove avatar": "Profilbild entfernen",
+ "Disable big emoji in chat": "Große Emojis im Chat deaktiveren",
+ "There's no one else here! Would you like to invite others or stop warning about the empty room?": "Sonst ist hier niemand! Möchtest Du Benutzer einladen oder die Warnungen über den leeren Raum deaktivieren?",
+ "Pinned Messages": "Angeheftete Nachrichten",
+ "%(senderName)s changed the pinned messages for the room.": "%(senderName)s hat die angehefteten Nachrichten für diesen Raum geändert.",
+ "Jump to read receipt": "Zur Lesebestätigung springen",
+ "Message Pinning": "Anheften von Nachrichten",
+ "Publish this community on your profile": "Diese Community in deinem Profil veröffentlichen",
+ "Long Description (HTML)": "Lange Beschreibung (HTML)",
+ "Jump to message": "Zur Nachricht springen",
+ "No pinned messages.": "Keine angehefteten Nachrichten vorhanden.",
+ "Loading...": "Lade...",
+ "Unpin Message": "Nachricht nicht mehr anheften",
+ "Unnamed room": "Unbenannter Raum",
+ "World readable": "Lesbar für alle",
+ "Guests can join": "Gäste können beitreten",
+ "No rooms to show": "Keine anzeigbaren Räume",
+ "Community Settings": "Community-Einstellungen",
+ "Community Member Settings": "Community-Mitglieder-Einstellungen",
+ "Who would you like to add to this community?": "Wen möchtest du zu dieser Community hinzufügen?",
+ "Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Warnung: Jede Person, die du einer Community hinzufügst, wird für alle, die die Community-ID kennen, öffentlich sichtbar sein",
+ "Invite new community members": "Neue Community-Mitglieder einladen",
+ "Invite to Community": "In die Community einladen",
+ "Which rooms would you like to add to this community?": "Welche Räume möchtest du zu dieser Community hinzufügen?",
+ "Warning: any room you add to a community will be publicly visible to anyone who knows the community ID": "Warnung: Jeder Raum, den du zu einer Community hinzufügst, wird für alle, die die Community-ID kennen, öffentlich sichtbar sein",
+ "Add rooms to the community": "Räume zur Community hinzufügen",
+ "Add to community": "Zur Community hinzufügen",
+ "Your community invitations have been sent.": "Deine Community-Einladungen wurden gesendet.",
+ "Failed to invite users to community": "Benutzer konnten nicht in die Community eingeladen werden",
+ "Communities": "Communities",
+ "Invalid community ID": "Ungültige Community-ID",
+ "'%(groupId)s' is not a valid community ID": "'%(groupId)s' ist keine gültige Community-ID",
+ "Related Communities": "Verknüpfte Communities",
+ "Related communities for this room:": "Verknüpfte Communities für diesen Raum:",
+ "This room has no related communities": "Dieser Raum hat keine verknüpften Communities",
+ "New community ID (e.g. +foo:%(localDomain)s)": "Neue Community-ID (z. B. +foo:%(localDomain)s)",
+ "Remove from community": "Aus Community entfernen",
+ "Failed to remove user from community": "Entfernen des Benutzers aus der Community fehlgeschlagen",
+ "Filter community members": "Community-Mitglieder filtern",
+ "Filter community rooms": "Community-Räume filtern",
+ "Failed to remove room from community": "Entfernen des Raumes aus der Community fehlgeschlagen",
+ "Removing a room from the community will also remove it from the community page.": "Ein Entfernen eines Raumes aus der Community wird ihn auch von der Community-Seite entfernen.",
+ "Community IDs may only contain alphanumeric characters": "Community-IDs dürfen nur alphanumerische Zeichen enthalten",
+ "Create Community": "Community erstellen",
+ "Community Name": "Community-Name",
+ "Community ID": "Community-ID",
+ "example": "Beispiel",
+ "Add rooms to the community summary": "Fügt Räume zur Community-Übersicht hinzu",
+ "Add users to the community summary": "Fügt Benutzer zur Community-Übersicht hinzu",
+ "Failed to update community": "Aktualisieren der Community fehlgeschlagen",
+ "Leave Community": "Community verlassen",
+ "Add rooms to this community": "Räume zu dieser Community hinzufügen",
+ "%(inviter)s has invited you to join this community": "%(inviter)s hat dich in diese Community eingeladen",
+ "You are a member of this community": "Du bist ein Mitglied dieser Community",
+ "You are an administrator of this community": "Du bist ein Administrator dieser Community",
+ "Community %(groupId)s not found": "Community '%(groupId)s' nicht gefunden",
+ "This Home server does not support communities": "Dieser Heimserver unterstützt keine Communities",
+ "Failed to load %(groupId)s": "'%(groupId)s' konnte nicht geladen werden",
+ "Error whilst fetching joined communities": "Fehler beim Laden beigetretener Communities",
+ "Create a new community": "Neue Community erstellen",
+ "Create a community to represent your community! Define a set of rooms and your own custom homepage to mark out your space in the Matrix universe.": "Erzeuge eine Community um deine Community zu repräsentieren! Definiere eine Menge von Räumen und deine eigene angepasste Startseite um dein Revier im Matrix-Universum zu markieren.",
+ "Join an existing community": "Einer bestehenden Community beitreten",
+ "To join an existing community you'll have to know its community identifier; this will look something like +example:matrix.org.": "Um einer bereits bestehenden Community beitreten zu können, musst dir deren Community-ID bekannt sein. Diese sieht z. B. aus wie +example:matrix.org.",
+ "Your Communities": "Deine Communities",
+ "You're not currently a member of any communities.": "Du bist aktuell kein Mitglied einer Community.",
+ "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Erzeuge eine Community um Nutzer und Räume zu gruppieren! Erzeuge eine angepasste Homepage um dein Revier im Matrix-Universum zu markieren.",
+ "Something went wrong whilst creating your community": "Beim Erstellen deiner Community ist ein Fehler aufgetreten",
+ "%(names)s and %(count)s others are typing|other": "%(names)s und %(count)s weitere schreiben",
+ "And %(count)s more...|other": "Und %(count)s weitere...",
+ "Delete Widget": "Widget löschen",
+ "Message removed": "Nachricht entfernt",
+ "Mention": "Erwähnen",
+ "Invite": "Einladen",
+ "Remove this room from the community": "Diesen Raum aus der Community entfernen",
+ "Deleting a widget removes it for all users in this room. Are you sure you want to delete this widget?": "Das Löschen eines Widgets entfernt das Widget für alle Benutzer in diesem Raum. Möchtest du dieses Widget wirklich löschen?",
+ "Mirror local video feed": "Lokalen Video-Feed spiegeln",
+ "Failed to withdraw invitation": "Die Einladung konnte nicht zurückgezogen werden",
+ "Community IDs may only contain characters a-z, 0-9, or '=_-./'": "Community-IDs dürfen nur die folgenden Zeichen enthalten: a-z, 0-9, or '=_-./'",
+ "%(senderName)s sent an image": "%(senderName)s hat ein Bild gesendet",
+ "%(senderName)s sent a video": "%(senderName)s hat ein Video gesendet",
+ "%(senderName)s uploaded a file": "%(senderName)s hat eine Datei hochgeladen",
+ "You have been banned from this room by %(userName)s.": "%(userName)s hat dich aus diesem Raum verbannt.",
+ "%(nameList)s %(transitionList)s": "%(nameList)s %(transitionList)s",
+ "%(severalUsers)sjoined %(count)s times|other": "%(severalUsers)shaben den Raum %(count)s-mal betreten",
+ "%(severalUsers)sjoined %(count)s times|one": "%(severalUsers)shaben den Raum betreten",
+ "%(oneUser)sjoined %(count)s times|other": "%(oneUser)shat den Raum %(count)s-mal betreten",
+ "%(oneUser)sjoined %(count)s times|one": "%(oneUser)shat den Raum betreten",
+ "%(severalUsers)sleft %(count)s times|other": "%(severalUsers)shaben den Raum %(count)s-mal verlassen",
+ "%(severalUsers)sleft %(count)s times|one": "%(severalUsers)shaben den Raum verlassen",
+ "%(oneUser)sleft %(count)s times|other": "%(oneUser)shat den Raum %(count)s-mal verlassen",
+ "%(oneUser)sleft %(count)s times|one": "%(oneUser)shat den Raum verlassen",
+ "%(severalUsers)sjoined and left %(count)s times|other": "%(severalUsers)shaben %(count)s-mal den Raum betreten und verlassen",
+ "%(severalUsers)sjoined and left %(count)s times|one": "%(severalUsers)shaben den Raum betreten und wieder verlassen",
+ "%(oneUser)sjoined and left %(count)s times|other": "%(oneUser)shat den Raum %(count)s-mal betreten und wieder verlassen",
+ "%(oneUser)sjoined and left %(count)s times|one": "%(oneUser)shat den Raum betreten und wieder verlassen",
+ "%(severalUsers)sleft and rejoined %(count)s times|other": "%(severalUsers)shaben den Raum %(count)s-mal verlassen und wieder betreten",
+ "%(severalUsers)sleft and rejoined %(count)s times|one": "%(severalUsers)shaben den Raum verlassen und wieder betreten",
+ "%(oneUser)sleft and rejoined %(count)s times|other": "%(oneUser)shat den Raum %(count)s-mal verlassen und wieder betreten",
+ "%(oneUser)sleft and rejoined %(count)s times|one": "%(oneUser)shat den Raum verlassen und wieder betreten",
+ "%(severalUsers)srejected their invitations %(count)s times|one": "%(severalUsers)shaben ihre Einladungen abgelehnt",
+ "%(severalUsers)shad their invitations withdrawn %(count)s times|other": "%(severalUsers)swurde die Einladung %(count)s-mal wieder entzogen",
+ "%(severalUsers)shad their invitations withdrawn %(count)s times|one": "%(severalUsers)swurde die Einladung wieder entzogen",
+ "were invited %(count)s times|other": "wurden %(count)s-mal eingeladen",
+ "were invited %(count)s times|one": "wurden eingeladen",
+ "was invited %(count)s times|other": "wurde %(count)s-mal eingeladen",
+ "was invited %(count)s times|one": "wurde eingeladen",
+ "were banned %(count)s times|other": "wurden %(count)s-mal verbannt",
+ "were banned %(count)s times|one": "wurden verbannt",
+ "was banned %(count)s times|other": "wurde %(count)s-mal verbannt",
+ "was banned %(count)s times|one": "wurde verbannt",
+ "were kicked %(count)s times|other": "wurden %(count)s-mal gekickt",
+ "were kicked %(count)s times|one": "wurden gekickt",
+ "was kicked %(count)s times|other": "wurde %(count)s-mal gekickt",
+ "was kicked %(count)s times|one": "wurde gekickt",
+ "%(severalUsers)schanged their name %(count)s times|other": "%(severalUsers)shaben %(count)s-mal ihren Namen geändert",
+ "%(severalUsers)schanged their name %(count)s times|one": "%(severalUsers)shaben ihren Namen geändert",
+ "%(oneUser)schanged their name %(count)s times|other": "%(oneUser)shat %(count)s-mal den Namen geändert",
+ "%(severalUsers)schanged their avatar %(count)s times|other": "%(severalUsers)shaben das Profilbild %(count)s-mal geändert",
+ "%(severalUsers)schanged their avatar %(count)s times|one": "%(severalUsers)shaben das Profilbild geändert",
+ "%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)shat das Profilbild %(count)s-mal geändert",
+ "%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)shat das Profilbild geändert",
+ "%(names)s and %(count)s others are typing|one": "%(names)s und eine weitere Person schreiben",
+ "Disinvite this user?": "Einladung für diesen Benutzer zurückziehen?",
+ "Kick this user?": "Diesen Benutzer kicken?",
+ "Unban this user?": "Verbannung dieses Benutzers aufheben?",
+ "Ban this user?": "Diesen Benutzer verbannen?",
+ "Drop here to favourite": "Hierher ziehen, um als Favorit zu markieren",
+ "Drop here to tag direct chat": "Hierher ziehen, um als Direkt-Chat zu markieren",
+ "Drop here to restore": "Hierher ziehen zum Wiederherstellen",
+ "Drop here to demote": "Hier loslassen um zurückzustufen",
+ "You have been kicked from this room by %(userName)s.": "Du wurdest von %(userName)s aus diesem Raum gekickt.",
+ "You are trying to access a room.": "Du versuchst, auf einen Raum zuzugreifen.",
+ "Members only (since the point in time of selecting this option)": "Nur Mitglieder (ab dem Zeitpunkt, an dem diese Option ausgewählt wird)",
+ "Members only (since they were invited)": "Nur Mitglieder (ab dem Zeitpunkt, an dem sie eingeladen wurden)",
+ "Members only (since they joined)": "Nur Mitglieder (ab dem Zeitpunkt, an dem sie beigetreten sind)",
+ "An email has been sent to %(emailAddress)s": "Eine E-Mail wurde an %(emailAddress)s gesendet",
+ "A text message has been sent to %(msisdn)s": "Eine Textnachricht wurde an %(msisdn)s gesendet",
+ "Disinvite this user from community?": "Community-Einladung für diesen Benutzer zurückziehen?",
+ "Remove this user from community?": "Diesen Benutzer aus der Community entfernen?",
+ "%(severalUsers)srejected their invitations %(count)s times|other": "%(severalUsers)shaben ihre Einladungen %(count)s-mal abgelehnt",
+ "%(oneUser)srejected their invitation %(count)s times|other": "%(oneUser)shat die Einladung %(count)s-mal abgelehnt",
+ "%(oneUser)srejected their invitation %(count)s times|one": "%(oneUser)shat die Einladung abgelehnt",
+ "%(oneUser)shad their invitation withdrawn %(count)s times|other": "%(oneUser)swurde die Einladung %(count)s-mal wieder entzogen",
+ "%(oneUser)shad their invitation withdrawn %(count)s times|one": "%(oneUser)swurde die Einladung wieder entzogen",
+ "were unbanned %(count)s times|other": "wurden %(count)s-mal entbannt",
+ "were unbanned %(count)s times|one": "wurden entbannt",
+ "was unbanned %(count)s times|other": "wurde %(count)s-mal entbannt",
+ "was unbanned %(count)s times|one": "wurde entbannt",
+ "%(oneUser)schanged their name %(count)s times|one": "%(oneUser)shat den Namen geändert",
+ "%(items)s and %(count)s others|other": "%(items)s und %(count)s andere",
+ "%(items)s and %(count)s others|one": "%(items)s und ein anderer",
+ "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "Eine E-Mail wurde an %(emailAddress)s gesendet. Folge dem in der E-Mail enthaltenen Link und klicke dann unten.",
+ "The visibility of '%(roomName)s' in %(groupId)s could not be updated.": "Die Sichtbarkeit von '%(roomName)s' in %(groupId)s konnte nicht aktualisiert werden.",
+ "Visibility in Room List": "Sichtbarkeit in Raum-Liste",
+ "Visible to everyone": "Für jeden sichtbar",
+ "Only visible to community members": "Nur für Community-Mitglieder sichtbar",
+ "Community Invites": "Community-Einladungen",
+ "Notify the whole room": "Den gesamten Raum benachrichtigen",
+ "Room Notification": "Raum-Benachrichtigung",
+ "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "Diese Räume werden Community-Mitgliedern auf der Community-Seite angezeigt. Community-Mitglieder können diesen Räumen beitreten, indem sie auf diese klicken.",
+ "Show these rooms to non-members on the community page and room list?": "Sollen diese Räume Nicht-Mitgliedern auf der Community-Seite und Raum-Liste gezeigt werden?",
+ "HTML for your community's page
\n\n Use the long description to introduce new members to the community, or distribute\n some important links\n
\n\n You can even use 'img' tags\n
\n": "HTML für deine Community-Seite
\n\n Nutze die lange Beschreibung um neuen Mitgliedern diese Community zu beschreiben\n oder um einige wichtige Informationen oder Links festzuhalten.\n
\n\n Du kannst auch 'img'-Tags (HTML) verwenden\n
\n",
+ "Your community hasn't got a Long Description, a HTML page to show to community members.
Click here to open settings and give it one!": "Deine Community hat noch keine lange Beschreibung oder eine HTML-Seite die Community-Mitgliedern gezeigt wird.
Klicke hier um die Einstellungen zu öffnen und ihr eine zu geben!"
}
diff --git a/src/i18n/strings/el.json b/src/i18n/strings/el.json
index 3ea83a322c..e8362b5181 100644
--- a/src/i18n/strings/el.json
+++ b/src/i18n/strings/el.json
@@ -1,34 +1,13 @@
{
- "af": "Αφρικάνικα",
"Error": "Σφάλμα",
"Failed to forget room %(errCode)s": "Δεν ήταν δυνατή η διαγραφή του δωματίου (%(errCode)s)",
- "Failed to join the room": "Δεν ήταν δυνατή η σύνδεση στο δωμάτιο",
"Mute": "Σίγαση",
"Notifications": "Ειδοποιήσεις",
"Operation failed": "Η λειτουργία απέτυχε",
- "Please Register": "Παρακαλούμε εγγραφείτε",
"Remove": "Αφαίρεση",
"Search": "Αναζήτηση",
"Settings": "Ρυθμίσεις",
"unknown error code": "άγνωστος κωδικός σφάλματος",
- "Sunday": "Κυριακή",
- "ar-ae": "Αραβικά (Η.Α.Ε)",
- "ar-bh": "Αραβικά (Μπαχρέιν)",
- "ar-dz": "Αραβικά (Αλγερία)",
- "ar-eg": "Αραβικά (Αίγυπτος)",
- "ar-iq": "Αραβικά (Ιράκ)",
- "ar-jo": "Αραβικά (Ιορδανία)",
- "ar-kw": "Αραβικά (Κουβέιτ)",
- "ar-lb": "Αραβικά (Λίβανος)",
- "ar-ly": "Αραβικά (Λιβύη)",
- "ar-ma": "Αραβικά (Μαρόκο)",
- "ar-om": "Αραβικά (Ομάν)",
- "ar-qa": "Αραβικά (Κατάρ)",
- "ar-sa": "Αραβικά (Σαουδική Αραβία)",
- "ar-sy": "Αραβικά (Συρία)",
- "ar-tn": "Αραβικά (Τυνισία)",
- "ar-ye": "Αραβικά (Υεμένη)",
- "accept": "αποδοχή",
"%(targetName)s accepted an invitation.": "%(targetName)s δέχτηκε την πρόσκληση.",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s δέχτηκες την πρόσκληση για %(displayName)s.",
"Account": "Λογαριασμός",
@@ -46,7 +25,6 @@
"Algorithm": "Αλγόριθμος",
"Hide removed messages": "Απόκρυψη διαγραμμένων μηνυμάτων",
"Authentication": "Πιστοποίηση",
- "and": "και",
"An email has been sent to": "Ένα email στάλθηκε σε",
"A new password must be entered.": "Ο νέος κωδικός πρόσβασης πρέπει να εισαχθεί.",
"%(senderName)s answered the call.": "Ο χρήστης %(senderName)s απάντησε την κλήση.",
@@ -60,128 +38,17 @@
"%(senderName)s banned %(targetName)s.": "Ο χρήστης %(senderName)s έδιωξε τον χρήστη %(targetName)s.",
"Autoplay GIFs and videos": "Αυτόματη αναπαραγωγή GIFs και βίντεο",
"Bug Report": "Αναφορά σφάλματος",
- "anyone": "οποιοσδήποτε",
"Anyone who knows the room's link, apart from guests": "Oποιοσδήποτε",
- "all room members, from the point they joined": "όλα τα μέλη, από τη στιγμή που συνδέθηκαν",
"%(items)s and %(lastItem)s": "%(items)s %(lastItem)s",
- "be": "Λευκορώσικα",
- "bg": "Βουλγάρικα",
- "ca": "Καταλανικά",
- "cs": "Τσέχικα",
- "da": "Δανέζικα",
- "de-at": "Γερμανικά (Αυστρία)",
- "de-ch": "Γερμανικά (Ελβετία)",
- "de": "Γερμανικά",
- "de-li": "Γερμανικά (Λιχτενστάιν)",
- "de-lu": "Γερμανικά (Λουξεμβούργο)",
- "el": "Ελληνικά",
- "en-au": "Αγγλικά (Αυστραλία)",
- "en-bz": "Αγγλικά (Μπελίζε)",
- "en-ca": "Αγγλικά (Καναδάς)",
- "en": "Αγγλικά",
- "en-gb": "Αγγλικά (Ηνωμένο Βασίλειο)",
- "en-ie": "Αγγλικά (Ιρλανδία)",
- "en-jm": "Αγγλικά (Τζαμάικα)",
- "en-nz": "Αγγλικά (Νέα Ζηλανδία)",
- "en-tt": "Αγγλικά (Τρινιντάντ)",
- "en-us": "Αγγλικά (Ηνωμένες Πολιτείες)",
- "en-za": "Αγγλικά (Νότια Αφρική)",
- "es-ar": "Ισπανικά (Αργεντινή)",
- "es-bo": "Ισπανικά (Βολιβία)",
- "es-cl": "Ισπανικά (Χιλή)",
- "es-co": "Ισπανικά (Κολομβία)",
- "es-cr": "Ισπανικά (Κόστα Ρίκα)",
- "es-do": "Ισπανικά (Δομινικανή Δημοκρατία)",
- "es-ec": "Ισπανικά (Ισημερινός)",
- "es-gt": "Ισπανικά (Γουατεμάλα)",
- "es-hn": "Ισπανικά (Ονδούρα)",
- "es-mx": "Ισπανικά (Μεξικό)",
- "es-ni": "Ισπανικά (Νικαράγουα)",
- "es-pa": "Ισπανικά (Παναμάς)",
- "es-pe": "Ισπανικά (Περού)",
- "es-pr": "Ισπανικά (Πουέρτο Ρίκο)",
- "es-py": "Ισπανικά (Παραγουάη)",
- "es": "Ισπανικά (Ισπανία)",
- "es-sv": "Ισπανικά (Ελ Σαλβαδόρ)",
- "es-uy": "Ισπανικά (Ουρουγουάη)",
- "es-ve": "Ισπανικά (Βενεζουέλα)",
- "et": "Εσθονικά",
- "eu": "Βασκική (Βασκική)",
- "fa": "Φάρσι",
- "fi": "Φινλανδικά",
- "fo": "Φαρόε",
- "fr-be": "Γαλλικά (Βέλγιο)",
- "fr-ca": "Γαλλικά (Καναδάς)",
- "fr-ch": "Γαλλικά (Ελβετία)",
- "fr": "Γαλλικά",
- "fr-lu": "Γαλλικά (Λουξεμβούργο)",
- "ga": "Ιρλανδικά",
- "gd": "Γαελική (Σκωτία)",
- "he": "Εβραϊκά",
- "hi": "Χίντι",
- "hr": "Κροατικά",
- "hu": "Ουγγρικά",
- "is": "Ισλανδικά",
- "it-ch": "Ιταλικά (Ελβετία)",
- "it": "Ιταλικά",
- "ja": "Ιαπωνικά",
- "ji": "Γίντις",
- "ko": "Κορεάτικα",
- "lt": "Λιθουανικά",
- "mk": "Μακεδονική (ΠΓΔΜ)",
- "ms": "Μαλαισίας",
- "mt": "Μαλτέζικα",
- "nl-be": "Ολλανδικά (Βέλγιο)",
- "nl": "Ολλανδικά",
- "no": "Νορβηγικά",
- "pl": "Πολωνέζικα",
- "pt-br": "Πορτογαλικά Βραζιλίας",
- "pt": "Πορτογαλικά",
- "rm": "Ραιτορωμαϊκά",
- "ro-mo": "Ρουμάνικα (Δημοκρατία της Μολδαβίας)",
- "ro": "Ρουμάνικα",
- "ru-mo": "Ρώσικα (Δημοκρατία της Μολδαβίας)",
- "ru": "Ρώσικα",
- "sb": "Σορβικά",
- "sk": "Σλοβάκικα",
- "sl": "Σλοβενικά",
- "sq": "Αλβανικά",
- "sr": "Σερβικά",
- "sv-fi": "Σουηδικά (Φινλανδία)",
- "sv": "Σουηδικά",
- "sx": "Σούτου",
- "sz": "Σάμη (Λαπωνικά)",
- "th": "Ταϊλανδέζικα",
- "tn": "Τσουάνα",
- "tr": "Τουρκικά",
- "ts": "Τσονγκά",
- "uk": "Ουκρανικά",
- "ur": "Ουρντού",
- "ve": "Venda",
- "vi": "Βιετναμέζικα",
- "xh": "Ξόσα",
- "zh-cn": "Κινέζικα (ΛΔΚ)",
- "zh-hk": "Κινέζικα (ΕΔΠ Χονγκ Κονγκ)",
- "zh-sg": "Κινέζικα (Σιγκαπούρη)",
- "zh-tw": "Κινέζικα (Ταϊβάν)",
- "zu": "Ζουλού",
- "id": "Ινδονησιακά",
- "lv": "Λετονικά",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Ένα μήνυμα στάλθηκε στο +%(msisdn)s. Παρακαλώ γράψε τον κωδικό επαλήθευσης που περιέχει",
"Access Token:": "Κωδικός πρόσβασης:",
"Always show message timestamps": "Εμφάνιση πάντα της ένδειξης ώρας στα μηνύματα",
- "all room members": "όλα τα μέλη",
- "all room members, from the point they are invited": "όλα τα μέλη, από τη στιγμή που προσκλήθηκαν",
- "an address": "μία διεύθηνση",
"%(items)s and %(remaining)s others": "%(items)s και %(remaining)s ακόμα",
"%(items)s and one other": "%(items)s και ένας ακόμα",
- "and %(count)s others...": {
- "other": "και %(count)s άλλοι...",
- "one": "και ένας ακόμα..."
- },
+ "and %(count)s others...|one": "και ένας ακόμα...",
+ "and %(count)s others...|other": "και %(count)s άλλοι...",
"%(names)s and %(lastPerson)s are typing": "%(names)s και %(lastPerson)s γράφουν",
"%(names)s and one other are typing": "%(names)s και ένας ακόμα γράφουν",
- "%(names)s and %(count)s others are typing": "%(names)s και %(count)s άλλοι γράφουν",
"Anyone who knows the room's link, including guests": "Οποιοσδήποτε γνωρίζει τον σύνδεσμο του δωματίου, συμπεριλαμβανομένων των επισκεπτών",
"Blacklisted": "Στη μαύρη λίστα",
"Can't load user settings": "Δεν είναι δυνατή η φόρτωση των ρυθμίσεων χρήστη",
@@ -195,7 +62,6 @@
"Bans user with given id": "Αποκλεισμός χρήστη με το συγκεκριμένο αναγνωριστικό",
"%(senderDisplayName)s removed the room name.": "Ο %(senderDisplayName)s διέγραψε το όνομα του δωματίου.",
"Changes your display nickname": "Αλλάζει το ψευδώνυμο χρήστη",
- "Click here": "Κάνε κλικ εδώ",
"Drop here %(toAction)s": "Αποθέστε εδώ %(toAction)s",
"Conference call failed.": "Η κλήση συνδιάσκεψης απέτυχε.",
"powered by Matrix": "βασισμένο στο πρωτόκολλο Matrix",
@@ -211,7 +77,6 @@
"/ddg is not a command": "/ddg δεν αναγνωρίζεται ως εντολή",
"Deactivate Account": "Απενεργοποίηση λογαριασμού",
"Deactivate my account": "Απενεργοποίηση του λογαριασμού μου",
- "decline": "απόρριψη",
"Decrypt %(text)s": "Αποκρυπτογράφηση %(text)s",
"Decryption error": "Σφάλμα αποκρυπτογράφησης",
"Delete": "Διαγραφή",
@@ -222,7 +87,6 @@
"device id: ": "αναγνωριστικό συσκευής: ",
"Device key:": "Κλειδί συσκευής:",
"Devices": "Συσκευές",
- "Direct Chat": "Απευθείας συνομιλία",
"Direct chats": "Απευθείας συνομιλίες",
"disabled": "ανενεργό",
"Disinvite": "Ανάκληση πρόσκλησης",
@@ -249,14 +113,12 @@
"Failed to join room": "Δεν ήταν δυνατή η σύνδεση στο δωμάτιο",
"Failed to leave room": "Δεν ήταν δυνατή η αποχώρηση από το δωμάτιο",
"Failed to mute user": "Δεν ήταν δυνατή η σίγαση του χρήστη",
- "Failed to register as guest:": "Δεν ήταν δυνατή η εγγραφή ως επισκέπτης:",
"Failed to reject invite": "Δεν ήταν δυνατή η απόρριψη της πρόσκλησης",
"Failed to reject invitation": "Δεν ήταν δυνατή η απόρριψη της πρόσκλησης",
"Failed to save settings": "Δεν ήταν δυνατή η αποθήκευση των ρυθμίσεων",
"Failed to send email": "Δεν ήταν δυνατή η αποστολή ηλ. αλληλογραφίας",
"Failed to verify email address: make sure you clicked the link in the email": "Δεν ήταν δυνατή η επιβεβαίωση του μηνύματος ηλεκτρονικής αλληλογραφίας βεβαιωθείτε οτι κάνατε κλικ στον σύνδεσμο που σας στάλθηκε",
"Favourite": "Αγαπημένο",
- "favourite": "αγαπημένο",
"Favourites": "Αγαπημένα",
"Fill screen": "Γέμισε την οθόνη",
"Filter room members": "Φιλτράρισμα μελών",
@@ -265,8 +127,6 @@
"For security, this session has been signed out. Please sign in again.": "Για λόγους ασφαλείας, αυτή η συνεδρία έχει τερματιστεί. Παρακαλούμε συνδεθείτε ξανά.",
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "Για λόγους ασφαλείας, τα κλειδιά κρυπτογράφησης θα διαγράφονται από τον περιηγητή κατά την αποσύνδεση σας. Εάν επιθυμείτε να αποκρυπτογραφήσετε τις συνομιλίες σας στο μέλλον, εξάγετε τα κλειδιά σας και κρατήστε τα ασφαλή.",
"Found a bug?": "Βρήκατε κάποιο πρόβλημα;",
- "Guest users can't upload files. Please register to upload.": "Οι επισκέπτες δεν μπορούν να ανεβάσουν αρχεία. Παρακαλώ εγγραφείτε πρώτα.",
- "had": "είχε",
"Hangup": "Κλείσιμο",
"Historical": "Ιστορικό",
"Homeserver is": "Ο διακομιστής είναι",
@@ -281,11 +141,8 @@
"Invite new room members": "Προσκαλέστε νέα μέλη",
"Invited": "Προσκλήθηκε",
"Invites": "Προσκλήσεις",
- "is a": "είναι ένα",
"%(displayName)s is typing": "Ο χρήστης %(displayName)s γράφει",
"Sign in with": "Συνδεθείτε με",
- "joined and left": "συνδέθηκε και έφυγε",
- "joined": "συνδέθηκε",
"%(targetName)s joined the room.": "ο %(targetName)s συνδέθηκε στο δωμάτιο.",
"Jump to first unread message.": "Πηγαίνετε στο πρώτο μη αναγνωσμένο μήνυμα.",
"%(senderName)s kicked %(targetName)s.": "Ο %(senderName)s έδιωξε τον χρήστη %(targetName)s.",
@@ -293,10 +150,7 @@
"Kicks user with given id": "Διώχνει χρήστες με το συγκεκριμένο id",
"Labs": "Πειραματικά",
"Leave room": "Αποχώρηση από το δωμάτιο",
- "left and rejoined": "έφυγε και ξανασυνδέθηκε",
- "left": "έφυγε",
"%(targetName)s left the room.": "Ο χρήστης %(targetName)s έφυγε από το δωμάτιο.",
- "Level": "Επίπεδο",
"Local addresses for this room:": "Τοπική διεύθυνση για το δωμάτιο:",
"Logged in as:": "Συνδεθήκατε ως:",
"Login as guest": "Σύνδεση ως επισκέπτης",
@@ -318,7 +172,6 @@
"Failure to create room": "Δεν ήταν δυνατή η δημιουργία δωματίου",
"Join Room": "Είσοδος σε δωμάτιο",
"Moderator": "Συντονιστής",
- "my Matrix ID": "το Matrix ID μου",
"Name": "Όνομα",
"New address (e.g. #foo:%(localDomain)s)": "Νέα διεύθυνση (e.g. #όνομα:%(localDomain)s)",
"New password": "Νέος κωδικός πρόσβασης",
@@ -360,16 +213,8 @@
"Success": "Επιτυχία",
"Start Chat": "Συνομιλία",
"Cancel": "Ακύρωση",
- "cancel all": "ακύρωση όλων",
- "or": "ή",
"Custom Server Options": "Προσαρμοσμένες ρυθμίσεις διακομιστή",
"Dismiss": "Απόρριψη",
- "Monday": "Δευτέρα",
- "Tuesday": "Τρίτη",
- "Wednesday": "Τετάρτη",
- "Thursday": "Πέμπτη",
- "Friday": "Παρασκευή",
- "Saturday": "Σάββατο",
"bold": "έντονα",
"italic": "πλάγια",
"underline": "υπογράμμιση",
@@ -386,13 +231,11 @@
"Create new room": "Δημιουργία νέου δωματίου",
"Room directory": "Ευρετήριο",
"Start chat": "Έναρξη συνομιλίας",
- "Welcome page": "Αρχική σελίδα",
"a room": "ένα δωμάτιο",
"Accept": "Αποδοχή",
"Active call (%(roomName)s)": "Ενεργή κλήση (%(roomName)s)",
"Add": "Προσθήκη",
- "Admin tools": "Εργαλεία διαχειριστή",
- "And %(count)s more...": "Και %(count)s περισσότερα...",
+ "Admin Tools": "Εργαλεία διαχειριστή",
"No media permissions": "Χωρίς δικαιώματα πολυμέσων",
"Alias (optional)": "Ψευδώνυμο (προαιρετικό)",
"Ban": "Αποκλεισμός",
@@ -405,12 +248,11 @@
"click to reveal": "κάντε κλικ για εμφάνιση",
"Click to unmute video": "Κάντε κλικ για άρση σίγασης του βίντεο",
"Click to unmute audio": "Κάντε κλικ για άρση σίγασης του ήχου",
- "%(count)s new messages.one": "%(count)s νέο μήνυμα",
- "%(count)s new messages.other": "%(count)s νέα μηνύματα",
+ "%(count)s new messages|one": "%(count)s νέο μήνυμα",
+ "%(count)s new messages|other": "%(count)s νέα μηνύματα",
"Custom": "Προσαρμοσμένο",
"Decline": "Απόρριψη",
"Disable Notifications": "Απενεργοποίηση ειδοποιήσεων",
- "Disable markdown formatting": "Απενεργοποίηση μορφοποίησης markdown",
"Drop File Here": "Αποθέστε εδώ το αρχείο",
"Enable Notifications": "Ενεργοποίηση ειδοποιήσεων",
"Encryption is enabled in this room": "Η κρυπτογράφηση είναι ενεργοποιημένη σε αυτό το δωμάτιο",
@@ -439,22 +281,18 @@
"Reason": "Αιτία",
"Reason: %(reasonText)s": "Αιτία: %(reasonText)s",
"Revoke Moderator": "Ανάκληση συντονιστή",
- "Registration required": "Απαιτείται εγγραφή",
- "rejected": "απορρίφθηκε",
"%(targetName)s rejected the invitation.": "Ο %(targetName)s απέρριψε την πρόσκληση.",
"Reject invitation": "Απόρριψη πρόσκλησης",
"Remote addresses for this room:": "Απομακρυσμένες διευθύνσεις για το δωμάτιο:",
"Remove Contact Information?": "Αφαίρεση πληροφοριών επαφής;",
"Remove %(threePid)s?": "Αφαίρεση %(threePid)s;",
"Report it": "Αναφορά",
- "restore": "επαναφορά",
"Results from DuckDuckGo": "Αποτελέσματα από DuckDuckGo",
"Return to app": "Επιστροφή στην εφαρμογή",
"Return to login screen": "Επιστροφή στην οθόνη σύνδεσης",
"Room %(roomId)s not visible": "Το δωμάτιο %(roomId)s δεν είναι ορατό",
"%(roomName)s does not exist.": "Το %(roomName)s δεν υπάρχει.",
"Searches DuckDuckGo for results": "Γίνεται αναζήτηση στο DuckDuckGo για αποτελέσματα",
- "Searching known users": "Αναζήτηση γνωστών χρηστών",
"Seen by %(userName)s at %(dateTime)s": "Διαβάστηκε από %(userName)s στις %(dateTime)s",
"Send anyway": "Αποστολή ούτως ή άλλως",
"Send Invites": "Αποστολή προσκλήσεων",
@@ -463,7 +301,6 @@
"Server may be unavailable or overloaded": "Ο διακομιστής μπορεί να είναι μη διαθέσιμος ή υπερφορτωμένος",
"Session ID": "Αναγνωριστικό συνεδρίας",
"%(senderName)s set a profile picture.": "Ο %(senderName)s όρισε τη φωτογραφία του προφίλ του.",
- "Set": "Ορισμός",
"Start authentication": "Έναρξη πιστοποίησης",
"Submit": "Υποβολή",
"Tagged as: ": "Με ετικέτα: ",
@@ -471,26 +308,16 @@
"The main address for this room is": "Η κύρια διεύθυνση για το δωμάτιο είναι",
"%(actionVerb)s this person?": "%(actionVerb)s αυτού του ατόμου;",
"The file '%(fileName)s' failed to upload": "Απέτυχε η αποστολή του αρχείου '%(fileName)s'",
- "There was a problem logging in.": "Υπήρξε ένα πρόβλημα κατά την σύνδεση.",
"This room has no local addresses": "Αυτό το δωμάτιο δεν έχει τοπικές διευθύνσεις",
"This doesn't appear to be a valid email address": "Δεν μοιάζει με μια έγκυρη διεύθυνση ηλεκτρονικής αλληλογραφίας",
"This phone number is already in use": "Αυτός ο αριθμός τηλεφώνου είναι ήδη σε χρήση",
"This room": "Αυτό το δωμάτιο",
"This room's internal ID is": "Το εσωτερικό αναγνωριστικό του δωματίου είναι",
- "times": "φορές",
- "To ban users": "Για αποκλεισμό χρηστών",
- "to browse the directory": "για περιήγηση στο ευρετήριο",
- "To configure the room": "Για ρύθμιση του δωματίου",
- "To invite users into the room": "Για πρόσκληση χρηστών στο δωμάτιο",
- "To remove other users' messages": "Για αφαίρεση μηνυμάτων άλλων χρηστών",
"to restore": "για επαναφορά",
- "To send events of type": "Για αποστολή συμβάντων τύπου",
- "To send messages": "Για αποστολή μηνυμάτων",
"Turn Markdown off": "Απενεργοποίηση Markdown",
"Turn Markdown on": "Ενεργοποίηση Markdown",
"Unable to add email address": "Αδυναμία προσθήκης διεύθυνσης ηλ. αλληλογραφίας",
"Unable to remove contact information": "Αδυναμία αφαίρεσης πληροφοριών επαφής",
- "Unable to restore previous session": "Αδυναμία επαναφοράς της προηγούμενης συνεδρίας",
"Unable to verify email address.": "Αδυναμία επιβεβαίωσης διεύθυνσης ηλεκτρονικής αλληλογραφίας.",
"Unban": "Άρση αποκλεισμού",
"%(senderName)s unbanned %(targetName)s.": "Ο χρήστης %(senderName)s έδιωξε τον χρήστη %(targetName)s.",
@@ -502,7 +329,6 @@
"unknown caller": "άγνωστος καλών",
"unknown device": "άγνωστη συσκευή",
"Unknown room %(roomId)s": "Άγνωστο δωμάτιο %(roomId)s",
- "unknown": "άγνωστο",
"Unmute": "Άρση σίγασης",
"Unnamed Room": "Ανώνυμο δωμάτιο",
"Unrecognised command:": "Μη αναγνωρίσιμη εντολή:",
@@ -528,7 +354,6 @@
"Who would you like to communicate with?": "Με ποιον θα θέλατε να επικοινωνήσετε;",
"You are already in a call.": "Είστε ήδη σε μια κλήση.",
"You have no visible notifications": "Δεν έχετε ορατές ειδοποιήσεις",
- "you must be a": "πρέπει να είστε",
"You must register to use this functionality": "Πρέπει να εγγραφείτε για να χρησιμοποιήσετε αυτή την λειτουργία",
"You need to be logged in.": "Πρέπει να είστε συνδεδεμένος.",
"You need to enter a user name.": "Πρέπει να εισάγετε ένα όνομα χρήστη.",
@@ -555,7 +380,6 @@
"%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s, %(day)s %(monthName)s %(time)s",
"%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
"Set a display name:": "Ορισμός ονόματος εμφάνισης:",
- "Set a Display Name": "Ορισμός ονόματος εμφάνισης",
"Upload an avatar:": "Αποστολή προσωπικής εικόνας:",
"This server does not support authentication with a phone number.": "Αυτός ο διακομιστής δεν υποστηρίζει πιστοποίηση με αριθμό τηλεφώνου.",
"Missing password.": "Λείπει ο κωδικός πρόσβασης.",
@@ -568,9 +392,8 @@
"Make Moderator": "Ορισμός συντονιστή",
"Encrypt room": "Κρυπτογράφηση δωματίου",
"Room": "Δωμάτιο",
- "Auto-complete": "Αυτόματη συμπλήρωση",
- "(~%(count)s results).one": "(~%(count)s αποτέλεσμα)",
- "(~%(count)s results).other": "(~%(count)s αποτελέσματα)",
+ "(~%(count)s results)|one": "(~%(count)s αποτέλεσμα)",
+ "(~%(count)s results)|other": "(~%(count)s αποτελέσματα)",
"Active call": "Ενεργή κλήση",
"strike": "επιγράμμιση",
"bullet": "κουκκίδα",
@@ -594,7 +417,6 @@
"Import room keys": "Εισαγωγή κλειδιών δωματίου",
"File to import": "Αρχείο για εισαγωγή",
"Start new chat": "Έναρξη νέας συνομιλίας",
- "Guest users can't invite users. Please register.": "Οι επισκέπτες δεν έχουν τη δυνατότητα να προσκαλέσουν άλλους χρήστες. Παρακαλούμε εγγραφείτε πρώτα.",
"Confirm Removal": "Επιβεβαίωση αφαίρεσης",
"Unknown error": "Άγνωστο σφάλμα",
"Incorrect password": "Λανθασμένος κωδικός πρόσβασης",
@@ -658,9 +480,6 @@
"Failed to unban": "Δεν ήταν δυνατή η άρση του αποκλεισμού",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s από %(fromPowerLevel)s σε %(toPowerLevel)s",
"Guest access is disabled on this Home Server.": "Έχει απενεργοποιηθεί η πρόσβαση στους επισκέπτες σε αυτόν τον διακομιστή.",
- "Guests can't set avatars. Please register.": "Οι επισκέπτες δεν μπορούν να ορίσουν προσωπικές εικόνες. Παρακαλούμε εγγραφείτε.",
- "Guest users can't create new rooms. Please register to create room and start a chat.": "Οι επισκέπτες δεν μπορούν να δημιουργήσουν νέα δωμάτια. Παρακαλούμε εγγραφείτε για να δημιουργήσετε ένα δωμάτιο και να ξεκινήσετε μια συνομιλία.",
- "Guests can't use labs features. Please register.": "Οι επισκέπτες δεν μπορούν να χρησιμοποιήσουν τα πειραματικά χαρακτηριστικά. Παρακαλούμε εγγραφείτε.",
"Guests cannot join this room even if explicitly invited.": "Οι επισκέπτες δεν μπορούν να συνδεθούν στο δωμάτιο ακόμη και αν έχουν καλεστεί.",
"Hide Text Formatting Toolbar": "Απόκρυψη εργαλειοθήκης μορφοποίησης κειμένου",
"Incoming call from %(name)s": "Εισερχόμενη κλήση από %(name)s",
@@ -673,14 +492,16 @@
"Invites user with given id to current room": "Προσκαλεί τον χρήστη με το δοσμένο αναγνωριστικό στο τρέχον δωμάτιο",
"'%(alias)s' is not a valid format for an address": "Το '%(alias)s' δεν είναι μια έγκυρη μορφή διεύθυνσης",
"'%(alias)s' is not a valid format for an alias": "Το '%(alias)s' δεν είναι μια έγκυρη μορφή ψευδώνυμου",
- "%(senderName)s made future room history visible to": "Ο %(senderName)s έκανε το μελλοντικό ιστορικό του δωματίου δημόσιο",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "Ο %(senderName)s έκανε το μελλοντικό ιστορικό του δωματίου δημόσιο όλα τα μέλη, από τη στιγμή που προσκλήθηκαν.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "Ο %(senderName)s έκανε το μελλοντικό ιστορικό του δωματίου δημόσιο όλα τα μέλη, από τη στιγμή που συνδέθηκαν.",
+ "%(senderName)s made future room history visible to all room members.": "Ο %(senderName)s έκανε το μελλοντικό ιστορικό του δωματίου δημόσιο όλα τα μέλη.",
+ "%(senderName)s made future room history visible to anyone.": "Ο %(senderName)s έκανε το μελλοντικό ιστορικό του δωματίου δημόσιο οποιοσδήποτε.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "Ο %(senderName)s έκανε το μελλοντικό ιστορικό του δωματίου δημόσιο άγνωστο (%(visibility)s).",
"Missing user_id in request": "Λείπει το user_id στο αίτημα",
"Mobile phone number (optional)": "Αριθμός κινητού τηλεφώνου (προαιρετικό)",
"Must be viewing a room": "Πρέπει να βλέπετε ένα δωμάτιο",
"Never send encrypted messages to unverified devices from this device": "Να μη γίνει ποτέ αποστολή κρυπτογραφημένων μηνυμάτων σε ανεπιβεβαίωτες συσκευές από αυτή τη συσκευή",
- "Never send encrypted messages to unverified devices in this room": "Να μη γίνει ποτέ αποστολή κρυπτογραφημένων μηνυμάτων σε ανεπιβεβαίωτες συσκευές σε αυτό το δωμάτιο",
"Never send encrypted messages to unverified devices in this room from this device": "Να μη γίνει ποτέ αποστολή κρυπτογραφημένων μηνυμάτων σε ανεπιβεβαίωτες συσκευές, σε αυτό το δωμάτιο, από αυτή τη συσκευή",
- "New Composer & Autocomplete": "Νέος επεξεργαστής κειμένου και αυτόματη συμπλήρωση",
"not set": "δεν έχει οριστεί",
"not specified": "μη καθορισμένο",
"NOT verified": "ΧΩΡΙΣ επαλήθευση",
@@ -688,12 +509,11 @@
"No display name": "Χωρίς όνομα",
"No users have specific privileges in this room": "Κανένας χρήστης δεν έχει συγκεκριμένα δικαιώματα σε αυτό το δωμάτιο",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "Μόλις ενεργοποιηθεί η κρυπτογράφηση για ένα δωμάτιο, δεν μπορεί να απενεργοποιηθεί ξανά (για τώρα)",
- "Once you've followed the link it contains, click below": "Μόλις ακολουθήσετε τον σύνδεσμο που περιέχει, κάντε κλικ παρακάτω",
+ "Once you've followed the link it contains, click below": "Μόλις ακολουθήσετε τον σύνδεσμο που περιέχει, κάντε κλικ παρακάτω",
"Only people who have been invited": "Μόνο άτομα που έχουν προσκληθεί",
"Otherwise, click here to send a bug report.": "Διαφορετικά, κάντε κλικ εδώ για να αποστείλετε μια αναφορά σφάλματος.",
"%(senderName)s placed a %(callType)s call.": "Ο %(senderName)s πραγματοποίησε μια %(callType)s κλήση.",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Παρακαλούμε ελέγξτε την ηλεκτρονική σας αλληλογραφία και κάντε κλικ στον σύνδεσμο που περιέχει. Μόλις γίνει αυτό, κάντε κλίκ στο κουμπί συνέχεια.",
- "Press": "Πατήστε",
"Refer a friend to Riot:": "Πείτε για το Riot σε έναν φίλο σας:",
"Rejoin": "Επανασύνδεση",
"%(senderName)s removed their profile picture.": "Ο %(senderName)s αφαίρεσε τη φωτογραφία του προφίλ του.",
@@ -714,13 +534,10 @@
"Some of your messages have not been sent.": "Μερικά από τα μηνύματα σας δεν έχουν αποσταλεί.",
"This room is not recognised.": "Αυτό το δωμάτιο δεν αναγνωρίζεται.",
"to favourite": "στα αγαπημένα",
- "To kick users": "Για να διώξετε χρήστες",
- "to make a room or": "για δημιουργία ενός δωματίου ή",
- "to start a chat with someone": "για να ξεκινήσετε μια συνομιλία με κάποιον",
"Unable to capture screen": "Αδυναμία σύλληψης οθόνης",
"Unknown (user, device) pair:": "Άγνωστο ζεύγος (χρήστη, συσκευής):",
- "Uploading %(filename)s and %(count)s others.zero": "Γίνεται αποστολή του %(filename)s",
- "Uploading %(filename)s and %(count)s others.other": "Γίνεται αποστολή του %(filename)s και %(count)s υπολοίπων",
+ "Uploading %(filename)s and %(count)s others|zero": "Γίνεται αποστολή του %(filename)s",
+ "Uploading %(filename)s and %(count)s others|other": "Γίνεται αποστολή του %(filename)s και %(count)s υπολοίπων",
"uploaded a file": "ανέβασε ένα αρχείο",
"%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (δύναμη %(powerLevelNumber)s)",
"Verification Pending": "Εκκρεμεί επιβεβαίωση",
@@ -737,7 +554,6 @@
"Who can read history?": "Ποιος μπορεί να διαβάσει το ιστορικό;",
"Who would you like to add to this room?": "Ποιον θέλετε να προσθέσετε σε αυτό το δωμάτιο;",
"%(senderName)s withdrew %(targetName)s's invitation.": "Ο %(senderName)s ανακάλεσε την πρόσκληση του %(targetName)s.",
- "You're not in any rooms yet! Press": "Δεν είστε ακόμη σε κάνενα δωμάτιο! Πατήστε",
"You cannot place a call with yourself.": "Δεν μπορείτε να καλέσετε τον ευατό σας.",
"You cannot place VoIP calls in this browser.": "Δεν μπορείτε να πραγματοποιήσετε κλήσεις VoIP με αυτόν τον περιηγητή.",
"You do not have permission to post to this room": "Δεν έχετε δικαιώματα για να δημοσιεύσετε σε αυτό το δωμάτιο",
@@ -787,7 +603,7 @@
"Disable URL previews by default for participants in this room": "Απενεργοποίηση της προεπισκόπησης συνδέσμων για όλους τους συμμετέχοντες στο δωμάτιο",
"Disable URL previews for this room (affects only you)": "Απενεργοποίηση της προεπισκόπησης συνδέσμων για αυτό το δωμάτιο (επηρεάζει μόνο εσάς)",
" (unsupported)": " (μη υποστηριζόμενο)",
- "$senderDisplayName changed the room avatar to
": "Ο $senderDisplayName άλλαξε την εικόνα του δωματίου σε
",
+ "%(senderDisplayName)s changed the room avatar to
": "Ο %(senderDisplayName)s άλλαξε την εικόνα του δωματίου σε
",
"Missing Media Permissions, click here to request.": "Λείπουν τα δικαιώματα πολύμεσων, κάντε κλικ για να ζητήσετε.",
"You may need to manually permit Riot to access your microphone/webcam": "Μπορεί να χρειαστεί να ορίσετε χειροκίνητα την πρόσβαση του Riot στο μικρόφωνο/κάμερα",
"Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Δεν είναι δυνατή η σύνδεση στον διακομιστή - παρακαλούμε ελέγξτε την συνδεσιμότητα, βεβαιωθείτε ότι το πιστοποιητικό SSL του διακομιστή είναι έμπιστο και ότι κάποιο πρόσθετο περιηγητή δεν αποτρέπει τα αιτήματα.",
@@ -801,10 +617,7 @@
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "Ο %(senderName)s έστειλε μια πρόσκληση στον %(targetDisplayName)s για να συνδεθεί στο δωμάτιο.",
"%(senderName)s set their display name to %(displayName)s.": "Ο %(senderName)s όρισε το όνομα του σε %(displayName)s.",
"Sorry, this homeserver is using a login which is not recognised ": "Συγγνώμη, ο διακομιστής χρησιμοποιεί έναν τρόπο σύνδεσης που δεν αναγνωρίζεται ",
- "tag as %(tagName)s": "ετικέτα ως %(tagName)s",
- "tag direct chat": "προσθήκη ετικέτας στην απευθείας συνομιλία",
"The phone number entered looks invalid": "Ο αριθμός που καταχωρίσατε δεν είναι έγκυρος",
- "This action cannot be performed by a guest user. Please register to be able to do this.": "Αυτή η ενέργεια δεν μπορεί να εκτελεστεί από έναν επισκέπτη. Παρακαλούμε εγγραφείτε για να μπορέσετε να το κάνετε.",
"The email address linked to your account must be entered.": "Πρέπει να εισηχθεί η διεύθυνση ηλ. αλληλογραφίας που είναι συνδεδεμένη με τον λογαριασμό σας.",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "Το αρχείο '%(fileName)s' υπερβαίνει το όριο μεγέθους του διακομιστή για αποστολές",
"The remote side failed to pick up": "Η απομακρυσμένη πλευρά απέτυχε να συλλέξει",
@@ -816,11 +629,10 @@
"This room is not accessible by remote Matrix servers": "Αυτό το δωμάτιο δεν είναι προσβάσιμο από απομακρυσμένους διακομιστές Matrix",
"to demote": "για υποβίβαση",
"To reset your password, enter the email address linked to your account": "Για να επαναφέρετε τον κωδικό πρόσβασης σας, πληκτρολογήστε τη διεύθυνση ηλ. αλληλογραφίας όπου είναι συνδεδεμένη με τον λογαριασμό σας",
- "to tag as %(tagName)s": "για να οριστεί ετικέτα ως %(tagName)s",
"to tag direct chat": "για να οριστεί ετικέτα σε απευθείας συνομιλία",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "Ο %(senderName)s ενεργοποίησε την από άκρο σε άκρο κρυπτογράφηση (algorithm %(algorithm)s).",
"Undecryptable": "Μη αποκρυπτογραφημένο",
- "Uploading %(filename)s and %(count)s others.one": "Γίνεται αποστολή του %(filename)s και %(count)s υπολοίπα",
+ "Uploading %(filename)s and %(count)s others|one": "Γίνεται αποστολή του %(filename)s και %(count)s υπολοίπα",
"Would you like to accept or decline this invitation?": "Θα θέλατε να δεχθείτε ή να απορρίψετε την πρόσκληση;",
"You already have existing direct chats with this user:": "Έχετε ήδη απευθείας συνομιλίες με τον χρήστη:",
"You are trying to access %(roomName)s.": "Προσπαθείτε να έχετε πρόσβαση στο %(roomName)s.",
@@ -828,7 +640,6 @@
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Έχετε αποσυνδεθεί από όλες τις συσκευές και δεν θα λαμβάνετε πλέον ειδοποιήσεις push. Για να ενεργοποιήσετε τις ειδοποιήσεις, συνδεθείτε ξανά σε κάθε συσκευή",
"You have disabled URL previews by default.": "Έχετε απενεργοποιημένη από προεπιλογή την προεπισκόπηση συνδέσμων.",
"You have enabled URL previews by default.": "Έχετε ενεργοποιημένη από προεπιλογή την προεπισκόπηση συνδέσμων.",
- "You have entered an invalid contact. Try using their Matrix ID or email address.": "Έχετε πληκτρολογήσει μια άκυρη επαφή. Χρησιμοποιήστε το Matrix ID ή την ηλεκτρονική διεύθυνση αλληλογραφίας τους.",
"You may wish to login with a different account, or add this email to this account.": "Μπορεί να θέλετε να συνδεθείτε με διαφορετικό λογαριασμό, ή να προσθέσετε αυτή τη διεύθυνση ηλεκτρονικής αλληλογραφίας σε αυτόν τον λογαριασμό.",
"You need to be able to invite users to do that.": "Για να το κάνετε αυτό πρέπει να έχετε τη δυνατότητα να προσκαλέσετε χρήστες.",
"You seem to be uploading files, are you sure you want to quit?": "Φαίνεται ότι αποστέλετε αρχεία, είστε βέβαιοι ότι θέλετε να αποχωρήσετε;",
@@ -849,14 +660,11 @@
"You must join the room to see its files": "Πρέπει να συνδεθείτε στο δωμάτιο για να δείτε τα αρχεία του",
"Reject all %(invitedRooms)s invites": "Απόρριψη όλων των προσκλήσεων %(invitedRooms)s",
"Failed to invite the following users to the %(roomName)s room:": "Δεν ήταν δυνατή η πρόσκληση των χρηστών στο δωμάτιο %(roomName)s:",
- "changing room on a RoomView is not supported": "Δεν υποστηρίζεται η αλλαγή δωματίου σε RoomView",
- "demote": "υποβίβαση",
"Deops user with given id": "Deop χρήστη με το συγκεκριμένο αναγνωριστικό",
"Disable inline URL previews by default": "Απενεργοποίηση προεπισκόπησης συνδέσμων από προεπιλογή",
"Drop here to tag %(section)s": "Απόθεση εδώ για ορισμό ετικέτας στο %(section)s",
"Join as voice or video.": "Συμμετάσχετε με φωνή ή βίντεο.",
"Joins room with given alias": "Συνδέεστε στο δωμάτιο με δοσμένο ψευδώνυμο",
- "Setting a user name will create a fresh account": "Ορίζοντας ένα όνομα χρήστη θα δημιουργήσει ένα νέο λογαριασμό",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Εμφάνιση χρονικών σημάνσεων σε 12ωρη μορφή ώρας (π.χ. 2:30 μ.μ.)",
"since the point in time of selecting this option": "από το χρονικό σημείο επιλογής αυτής της ρύθμισης",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Το κλειδί υπογραφής που δώσατε αντιστοιχεί στο κλειδί υπογραφής που λάβατε από τη συσκευή %(userId)s %(deviceId)s. Η συσκευή έχει επισημανθεί ως επιβεβαιωμένη.",
@@ -870,7 +678,6 @@
"This allows you to use this app with an existing Matrix account on a different home server.": "Αυτό σας επιτρέπει να χρησιμοποιήσετε την εφαρμογή με έναν υπάρχον λογαριασμό Matrix σε έναν διαφορετικό διακομιστή.",
"You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Μπορείτε επίσης να ορίσετε έναν προσαρμοσμένο διακομιστή ταυτοποίησης, αλλά αυτό συνήθως θα αποτρέψει την αλληλεπίδραση με τους χρήστες που βασίζονται στην ηλεκτρονική διεύθυνση αλληλογραφίας.",
"URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "Η προεπισκόπηση συνδέσμων είναι %(globalDisableUrlPreview)s από προεπιλογή για τους συμμετέχοντες του δωματίου.",
- "Ongoing conference call%(supportedText)s. %(joinText)s": "Κλήση συνδιάσκεψης σε εξέλιξη %(supportedText)s. %(joinText)s",
"This will be your account name on the homeserver, or you can pick a different server.": "Αυτό θα είναι το όνομα του λογαριασμού σας στον διακομιστή , ή μπορείτε να επιλέξετε διαφορετικό διακομιστή.",
"If you already have a Matrix account you can log in instead.": "Αν έχετε ήδη λογαριασμό Matrix μπορείτε να συνδεθείτε.",
"Failed to load timeline position": "Δεν ήταν δυνατή η φόρτωση της θέσης του χρονολόγιου",
@@ -903,7 +710,6 @@
"If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Εάν ταιριάζει, πατήστε το κουμπί επιβεβαίωσης παρακάτω. Εάν όχι, τότε κάποιος άλλος παρακολουθεί αυτή τη συσκευή και ίσως θέλετε να πατήσετε το κουμπί της μαύρης λίστας.",
"We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Παρουσιάστηκε ένα σφάλμα κατά την προσπάθεια επαναφοράς της προηγούμενης συνεδρίας. Αν συνεχίσετε, θα χρειαστεί να συνδεθείτε ξανά και το κρυπτογραφημένο ιστορικό συνομιλιών θα είναι μη αναγνώσιμο.",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Αν χρησιμοποιούσατε προηγουμένως μια πιο πρόσφατη έκδοση του Riot, η συνεδρία σας ίσως είναι μη συμβατή με αυτήν την έκδοση. Κλείστε αυτό το παράθυρο και επιστρέψτε στην πιο πρόσφατη έκδοση.",
- "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Το εμφανιζόμενο όνομα είναι το πως θα εμφανιστείτε σε άλλους όταν μιλάτε σε δωμάτια. Τι θα θέλατε να είναι;",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Αυτήν τη στιγμή βάζετε σε μαύρη λίστα μη επιβαιωμένες συσκευές. Για να στείλετε μηνύματα σε αυτές τις συσκευές, πρέπει να τις επιβεβαιώσετε.",
"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.": "Σας συνιστούμε να ολοκληρώσετε τη διαδικασία επαλήθευσης για κάθε συσκευή και να επιβεβαιώσετε ότι ανήκουν στον νόμιμο κάτοχό της, αλλά εάν προτιμάτε μπορείτε να στείλετε ξανά το μήνυμα χωρίς επαλήθευση.",
"You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Θα μεταφερθείτε σε έναν ιστότοπου τρίτου για να πραγματοποιηθεί η πιστοποίηση του λογαριασμού σας με το %(integrationsUrl)s. Θα θέλατε να συνεχίσετε;",
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index c1ba1d0c74..f28322398c 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -1,708 +1,31 @@
{
- "Add a widget": "Add a widget",
- "af": "Afrikaans",
- "ar-ae": "Arabic (U.A.E.)",
- "ar-bh": "Arabic (Bahrain)",
- "ar-dz": "Arabic (Algeria)",
- "ar-eg": "Arabic (Egypt)",
- "ar-iq": "Arabic (Iraq)",
- "ar-jo": "Arabic (Jordan)",
- "ar-kw": "Arabic (Kuwait)",
- "ar-lb": "Arabic (Lebanon)",
- "ar-ly": "Arabic (Libya)",
- "ar-ma": "Arabic (Morocco)",
- "ar-om": "Arabic (Oman)",
- "ar-qa": "Arabic (Qatar)",
- "ar-sa": "Arabic (Saudi Arabia)",
- "ar-sy": "Arabic (Syria)",
- "ar-tn": "Arabic (Tunisia)",
- "ar-ye": "Arabic (Yemen)",
- "be": "Belarusian",
- "bg": "Bulgarian",
- "ca": "Catalan",
- "cs": "Czech",
- "da": "Danish",
- "de-at": "German (Austria)",
- "de-ch": "German (Switzerland)",
- "de": "German",
- "de-li": "German (Liechtenstein)",
- "de-lu": "German (Luxembourg)",
- "el": "Greek",
- "en-au": "English (Australia)",
- "en-bz": "English (Belize)",
- "en-ca": "English (Canada)",
- "en": "English",
- "en-gb": "English (United Kingdom)",
- "en-ie": "English (Ireland)",
- "en-jm": "English (Jamaica)",
- "en-nz": "English (New Zealand)",
- "en-tt": "English (Trinidad)",
- "en-us": "English (United States)",
- "en-za": "English (South Africa)",
- "es-ar": "Spanish (Argentina)",
- "es-bo": "Spanish (Bolivia)",
- "es-cl": "Spanish (Chile)",
- "es-co": "Spanish (Colombia)",
- "es-cr": "Spanish (Costa Rica)",
- "es-do": "Spanish (Dominican Republic)",
- "es-ec": "Spanish (Ecuador)",
- "es-gt": "Spanish (Guatemala)",
- "es-hn": "Spanish (Honduras)",
- "es-mx": "Spanish (Mexico)",
- "es-ni": "Spanish (Nicaragua)",
- "es-pa": "Spanish (Panama)",
- "es-pe": "Spanish (Peru)",
- "es-pr": "Spanish (Puerto Rico)",
- "es-py": "Spanish (Paraguay)",
- "es": "Spanish (Spain)",
- "es-sv": "Spanish (El Salvador)",
- "es-uy": "Spanish (Uruguay)",
- "es-ve": "Spanish (Venezuela)",
- "et": "Estonian",
- "eu": "Basque (Basque)",
- "fa": "Farsi",
- "fi": "Finnish",
- "fo": "Faeroese",
- "fr-be": "French (Belgium)",
- "fr-ca": "French (Canada)",
- "fr-ch": "French (Switzerland)",
- "fr": "French",
- "fr-lu": "French (Luxembourg)",
- "ga": "Irish",
- "gd": "Gaelic (Scotland)",
- "he": "Hebrew",
- "hi": "Hindi",
- "hr": "Croatian",
- "hu": "Hungarian",
- "id": "Indonesian",
- "is": "Icelandic",
- "it-ch": "Italian (Switzerland)",
- "it": "Italian",
- "ja": "Japanese",
- "ji": "Yiddish",
- "ko": "Korean",
- "lt": "Lithuanian",
- "lv": "Latvian",
- "mk": "Macedonian (FYROM)",
- "ms": "Malaysian",
- "mt": "Maltese",
- "nl-be": "Dutch (Belgium)",
- "nl": "Dutch",
- "no": "Norwegian",
- "pl": "Polish",
- "pt-br": "Brazilian Portuguese",
- "pt": "Portuguese",
- "rm": "Rhaeto-Romanic",
- "ro-mo": "Romanian (Republic of Moldova)",
- "ro": "Romanian",
- "ru-mo": "Russian (Republic of Moldova)",
- "ru": "Russian",
- "sb": "Sorbian",
- "sk": "Slovak",
- "sl": "Slovenian",
- "sq": "Albanian",
- "sr": "Serbian",
- "sv-fi": "Swedish (Finland)",
- "sv": "Swedish",
- "sx": "Sutu",
- "sz": "Sami (Lappish)",
- "th": "Thai",
- "tn": "Tswana",
- "tr": "Turkish",
- "ts": "Tsonga",
- "uk": "Ukrainian",
- "ur": "Urdu",
- "ve": "Venda",
- "vi": "Vietnamese",
- "xh": "Xhosa",
- "zh-cn": "Chinese (PRC)",
- "zh-hk": "Chinese (Hong Kong SAR)",
- "zh-sg": "Chinese (Singapore)",
- "zh-tw": "Chinese (Taiwan)",
- "zu": "Zulu",
- "a room": "a room",
- "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains",
- "Accept": "Accept",
- "%(targetName)s accepted an invitation.": "%(targetName)s accepted an invitation.",
- "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s accepted the invitation for %(displayName)s.",
- "Account": "Account",
- "Access Token:": "Access Token:",
- "Active call (%(roomName)s)": "Active call (%(roomName)s)",
- "Add": "Add",
- "Add a topic": "Add a topic",
- "Add email address": "Add email address",
- "Add phone number": "Add phone number",
- "Admin": "Admin",
- "Admin tools": "Admin tools",
- "Allow": "Allow",
- "And %(count)s more...": "And %(count)s more...",
- "VoIP": "VoIP",
- "Missing Media Permissions, click here to request.": "Missing Media Permissions, click here to request.",
- "No Microphones detected": "No Microphones detected",
- "No Webcams detected": "No Webcams detected",
- "No media permissions": "No media permissions",
- "You may need to manually permit Riot to access your microphone/webcam": "You may need to manually permit Riot to access your microphone/webcam",
- "Default Device": "Default Device",
- "Microphone": "Microphone",
- "Camera": "Camera",
- "Advanced": "Advanced",
- "Algorithm": "Algorithm",
- "Hide removed messages": "Hide removed messages",
- "Always show message timestamps": "Always show message timestamps",
- "Authentication": "Authentication",
- "Alias (optional)": "Alias (optional)",
- "all room members": "all room members",
- "all room members, from the point they are invited": "all room members, from the point they are invited",
- "all room members, from the point they joined": "all room members, from the point they joined",
- "and": "and",
- "%(items)s and %(remaining)s others": "%(items)s and %(remaining)s others",
- "%(items)s and one other": "%(items)s and one other",
- "%(items)s and %(lastItem)s": "%(items)s and %(lastItem)s",
- "and %(count)s others...": {
- "other": "and %(count)s others...",
- "one": "and one other..."
- },
- "%(names)s and %(lastPerson)s are typing": "%(names)s and %(lastPerson)s are typing",
- "%(names)s and one other are typing": "%(names)s and one other are typing",
- "%(names)s and %(count)s others are typing": "%(names)s and %(count)s others are typing",
- "An email has been sent to": "An email has been sent to",
- "A new password must be entered.": "A new password must be entered.",
- "%(senderName)s answered the call.": "%(senderName)s answered the call.",
- "anyone": "anyone",
- "An error has occurred.": "An error has occurred.",
- "Anyone": "Anyone",
- "Anyone who knows the room's link, apart from guests": "Anyone who knows the room's link, apart from guests",
- "Anyone who knows the room's link, including guests": "Anyone who knows the room's link, including guests",
- "Are you sure?": "Are you sure?",
- "Are you sure you want to leave the room '%(roomName)s'?": "Are you sure you want to leave the room '%(roomName)s'?",
- "Are you sure you want to reject the invitation?": "Are you sure you want to reject the invitation?",
- "Are you sure you want to upload the following files?": "Are you sure you want to upload the following files?",
- "Attachment": "Attachment",
- "Autoplay GIFs and videos": "Autoplay GIFs and videos",
- "%(senderName)s banned %(targetName)s.": "%(senderName)s banned %(targetName)s.",
- "Ban": "Ban",
- "Banned users": "Banned users",
- "Bans user with given id": "Bans user with given id",
- "Blacklisted": "Blacklisted",
- "Bug Report": "Bug Report",
- "Bulk Options": "Bulk Options",
- "Call Timeout": "Call Timeout",
- "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.",
- "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.",
- "Can't load user settings": "Can't load user settings",
- "Cannot add any more widgets": "Cannot add any more widgets",
- "Change Password": "Change Password",
- "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.",
- "%(senderName)s changed their profile picture.": "%(senderName)s changed their profile picture.",
- "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s changed the power level of %(powerLevelDiffText)s.",
- "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s changed the room name to %(roomName)s.",
- "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s removed the room name.",
- "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s changed the topic to \"%(topic)s\".",
- "Changes to who can read history will only apply to future messages in this room": "Changes to who can read history will only apply to future messages in this room",
- "Changes your display nickname": "Changes your display nickname",
- "Changes colour scheme of current room": "Changes colour scheme of current room",
- "changing room on a RoomView is not supported": "changing room on a RoomView is not supported",
- "Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.",
- "Claimed Ed25519 fingerprint key": "Claimed Ed25519 fingerprint key",
- "Clear Cache and Reload": "Clear Cache and Reload",
- "Clear Cache": "Clear Cache",
- "Click here to join the discussion!": "Click here to join the discussion!",
- "Click here to fix": "Click here to fix",
- "Click to mute audio": "Click to mute audio",
- "Click to mute video": "Click to mute video",
- "click to reveal": "click to reveal",
- "Click to unmute video": "Click to unmute video",
- "Click to unmute audio": "Click to unmute audio",
- "Close": "Close",
- "Command error": "Command error",
- "Commands": "Commands",
- "Conference call failed.": "Conference call failed.",
- "Conference calling is in development and may not be reliable.": "Conference calling is in development and may not be reliable.",
- "Conference calls are not supported in encrypted rooms": "Conference calls are not supported in encrypted rooms",
- "Conference calls are not supported in this client": "Conference calls are not supported in this client",
- "Confirm password": "Confirm password",
- "Confirm your new password": "Confirm your new password",
- "Continue": "Continue",
- "Could not connect to the integration server": "Could not connect to the integration server",
- "%(count)s new messages": {
- "one": "%(count)s new message",
- "other": "%(count)s new messages"
- },
- "Create a new chat or reuse an existing one": "Create a new chat or reuse an existing one",
- "Create an account": "Create an account",
- "Create Room": "Create Room",
- "Cryptography": "Cryptography",
- "Current password": "Current password",
- "Curve25519 identity key": "Curve25519 identity key",
- "Custom": "Custom",
- "Custom level": "Custom level",
- "/ddg is not a command": "/ddg is not a command",
- "Deactivate Account": "Deactivate Account",
- "Deactivate my account": "Deactivate my account",
- "Decline": "Decline",
- "Decrypt %(text)s": "Decrypt %(text)s",
- "Decryption error": "Decryption error",
- "Delete": "Delete",
- "Delete widget": "Delete widget",
- "demote": "demote",
- "Deops user with given id": "Deops user with given id",
- "Default": "Default",
- "Define the power level of a user": "Define the power level of a user",
- "Device already verified!": "Device already verified!",
- "Device ID": "Device ID",
- "Device ID:": "Device ID:",
- "device id: ": "device id: ",
- "Device key:": "Device key:",
- "Devices": "Devices",
- "Devices will not yet be able to decrypt history from before they joined the room": "Devices will not yet be able to decrypt history from before they joined the room",
- "Direct Chat": "Direct Chat",
- "Direct chats": "Direct chats",
- "Disable Notifications": "Disable Notifications",
- "disabled": "disabled",
- "Disable inline URL previews by default": "Disable inline URL previews by default",
- "Disable markdown formatting": "Disable markdown formatting",
- "Disinvite": "Disinvite",
- "Display name": "Display name",
- "Displays action": "Displays action",
- "Do you want to load widget from URL:": "Do you want to load widget from URL:",
- "Don't send typing notifications": "Don't send typing notifications",
- "Download %(text)s": "Download %(text)s",
- "Drop File Here": "Drop File Here",
- "Drop here %(toAction)s": "Drop here %(toAction)s",
- "Drop here to tag %(section)s": "Drop here to tag %(section)s",
- "Ed25519 fingerprint": "Ed25519 fingerprint",
- "Edit": "Edit",
- "Email": "Email",
- "Email address": "Email address",
- "Email address (optional)": "Email address (optional)",
- "Email, name or matrix ID": "Email, name or matrix ID",
- "Emoji": "Emoji",
- "Enable automatic language detection for syntax highlighting": "Enable automatic language detection for syntax highlighting",
- "Enable encryption": "Enable encryption",
- "Enable Notifications": "Enable Notifications",
- "enabled": "enabled",
- "Encrypted by a verified device": "Encrypted by a verified device",
- "Encrypted by an unverified device": "Encrypted by an unverified device",
- "Encrypted messages will not be visible on clients that do not yet implement encryption": "Encrypted messages will not be visible on clients that do not yet implement encryption",
- "Encrypted room": "Encrypted room",
- "Encryption is enabled in this room": "Encryption is enabled in this room",
- "Encryption is not enabled in this room": "Encryption is not enabled in this room",
- "%(senderName)s ended the call.": "%(senderName)s ended the call.",
- "End-to-end encryption information": "End-to-end encryption information",
- "End-to-end encryption is in beta and may not be reliable": "End-to-end encryption is in beta and may not be reliable",
- "Enter Code": "Enter Code",
- "Enter passphrase": "Enter passphrase",
- "Error": "Error",
- "Error decrypting attachment": "Error decrypting attachment",
- "Error: Problem communicating with the given homeserver.": "Error: Problem communicating with the given homeserver.",
- "Event information": "Event information",
- "Existing Call": "Existing Call",
- "Export": "Export",
- "Export E2E room keys": "Export E2E room keys",
- "Failed to ban user": "Failed to ban user",
- "Failed to change password. Is your password correct?": "Failed to change password. Is your password correct?",
- "Failed to change power level": "Failed to change power level",
- "Failed to delete device": "Failed to delete device",
- "Failed to fetch avatar URL": "Failed to fetch avatar URL",
- "Failed to forget room %(errCode)s": "Failed to forget room %(errCode)s",
- "Failed to join room": "Failed to join room",
- "Failed to join the room": "Failed to join the room",
- "Failed to kick": "Failed to kick",
- "Failed to leave room": "Failed to leave room",
- "Failed to load timeline position": "Failed to load timeline position",
- "Failed to lookup current room": "Failed to lookup current room",
- "Failed to mute user": "Failed to mute user",
- "Failed to register as guest:": "Failed to register as guest:",
- "Failed to reject invite": "Failed to reject invite",
- "Failed to reject invitation": "Failed to reject invitation",
- "Failed to save settings": "Failed to save settings",
- "Failed to send email": "Failed to send email",
- "Failed to send request.": "Failed to send request.",
- "Failed to set avatar.": "Failed to set avatar.",
- "Failed to set display name": "Failed to set display name",
- "Failed to set up conference call": "Failed to set up conference call",
- "Failed to toggle moderator status": "Failed to toggle moderator status",
- "Failed to unban": "Failed to unban",
- "Failed to upload file": "Failed to upload file",
- "Failed to upload profile picture!": "Failed to upload profile picture!",
- "Failed to verify email address: make sure you clicked the link in the email": "Failed to verify email address: make sure you clicked the link in the email",
- "Failure to create room": "Failure to create room",
- "Favourite": "Favourite",
- "favourite": "favourite",
- "Favourites": "Favourites",
- "Fill screen": "Fill screen",
- "Filter room members": "Filter room members",
- "Forget room": "Forget room",
- "Forgot your password?": "Forgot your password?",
- "For security, this session has been signed out. Please sign in again.": "For security, this session has been signed out. Please sign in again.",
- "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.",
- "Found a bug?": "Found a bug?",
- "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s",
- "Guest access is disabled on this Home Server.": "Guest access is disabled on this Home Server.",
- "Guests can't set avatars. Please register.": "Guests can't set avatars. Please register.",
- "Guest users can't create new rooms. Please register to create room and start a chat.": "Guest users can't create new rooms. Please register to create room and start a chat.",
- "Guest users can't upload files. Please register to upload.": "Guest users can't upload files. Please register to upload.",
- "Guests can't use labs features. Please register.": "Guests can't use labs features. Please register.",
- "Guests cannot join this room even if explicitly invited.": "Guests cannot join this room even if explicitly invited.",
- "had": "had",
- "Hangup": "Hangup",
- "Hide Apps": "Hide Apps",
- "Hide join/leave messages (invites/kicks/bans unaffected)": "Hide join/leave messages (invites/kicks/bans unaffected)",
- "Hide avatar and display name changes": "Hide avatar and display name changes",
- "Hide read receipts": "Hide read receipts",
- "Hide Text Formatting Toolbar": "Hide Text Formatting Toolbar",
- "Historical": "Historical",
- "Home": "Home",
- "Homeserver is": "Homeserver is",
- "Identity Server is": "Identity Server is",
- "I have verified my email address": "I have verified my email address",
- "Import": "Import",
- "Import E2E room keys": "Import E2E room keys",
- "Incoming call from %(name)s": "Incoming call from %(name)s",
- "Incoming video call from %(name)s": "Incoming video call from %(name)s",
- "Incoming voice call from %(name)s": "Incoming voice call from %(name)s",
- "Incorrect username and/or password.": "Incorrect username and/or password.",
- "Incorrect verification code": "Incorrect verification code",
- "Integrations Error": "Integrations Error",
- "Interface Language": "Interface Language",
- "Invalid alias format": "Invalid alias format",
- "Invalid address format": "Invalid address format",
- "Invalid Email Address": "Invalid Email Address",
- "Invalid file%(extra)s": "Invalid file%(extra)s",
- "%(senderName)s invited %(targetName)s.": "%(senderName)s invited %(targetName)s.",
- "Invite new room members": "Invite new room members",
- "Invited": "Invited",
- "Invites": "Invites",
- "Invites user with given id to current room": "Invites user with given id to current room",
- "'%(alias)s' is not a valid format for an address": "'%(alias)s' is not a valid format for an address",
- "'%(alias)s' is not a valid format for an alias": "'%(alias)s' is not a valid format for an alias",
- "%(displayName)s is typing": "%(displayName)s is typing",
- "Sign in with": "Sign in with",
- "Join as voice or video.": "Join as voice or video.",
- "Join Room": "Join Room",
- "joined and left": "joined and left",
- "joined": "joined",
- "%(targetName)s joined the room.": "%(targetName)s joined the room.",
- "Joins room with given alias": "Joins room with given alias",
- "Jump to first unread message.": "Jump to first unread message.",
- "%(senderName)s kicked %(targetName)s.": "%(senderName)s kicked %(targetName)s.",
- "Kick": "Kick",
- "Kicks user with given id": "Kicks user with given id",
- "Labs": "Labs",
- "Last seen": "Last seen",
- "Leave room": "Leave room",
- "left and rejoined": "left and rejoined",
- "left": "left",
- "%(targetName)s left the room.": "%(targetName)s left the room.",
- "Level:": "Level:",
- "Publish this room to the public in %(domain)s's room directory?": "Publish this room to the public in %(domain)s's room directory?",
- "Local addresses for this room:": "Local addresses for this room:",
- "Logged in as:": "Logged in as:",
- "Login as guest": "Login as guest",
- "Logout": "Logout",
- "Low priority": "Low priority",
- "%(senderName)s made future room history visible to": "%(senderName)s made future room history visible to",
- "Manage Integrations": "Manage Integrations",
- "Markdown is disabled": "Markdown is disabled",
- "Markdown is enabled": "Markdown is enabled",
- "matrix-react-sdk version:": "matrix-react-sdk version:",
- "Matrix Apps": "Matrix Apps",
- "Members only": "Members only",
- "Message not sent due to unknown devices being present": "Message not sent due to unknown devices being present",
- "Missing room_id in request": "Missing room_id in request",
- "Missing user_id in request": "Missing user_id in request",
- "Mobile phone number": "Mobile phone number",
- "Mobile phone number (optional)": "Mobile phone number (optional)",
- "Moderator": "Moderator",
- "Must be viewing a room": "Must be viewing a room",
- "Mute": "Mute",
- "my Matrix ID": "my Matrix ID",
- "Name": "Name",
- "Never send encrypted messages to unverified devices from this device": "Never send encrypted messages to unverified devices from this device",
- "Never send encrypted messages to unverified devices in this room": "Never send encrypted messages to unverified devices in this room",
- "Never send encrypted messages to unverified devices in this room from this device": "Never send encrypted messages to unverified devices in this room from this device",
- "New address (e.g. #foo:%(localDomain)s)": "New address (e.g. #foo:%(localDomain)s)",
- "New Composer & Autocomplete": "New Composer & Autocomplete",
- "New password": "New password",
- "New passwords don't match": "New passwords don't match",
- "New passwords must match each other.": "New passwords must match each other.",
- "none": "none",
- "not set": "not set",
- "not specified": "not specified",
- "Notifications": "Notifications",
- "(not supported by this browser)": "(not supported by this browser)",
- "": "",
- "AM": "AM",
- "PM": "PM",
- "NOT verified": "NOT verified",
- "NOTE: Apps are not end-to-end encrypted": "NOTE: Apps are not end-to-end encrypted",
- "No devices with registered encryption keys": "No devices with registered encryption keys",
- "No display name": "No display name",
- "No more results": "No more results",
- "No results": "No results",
- "No users have specific privileges in this room": "No users have specific privileges in this room",
- "OK": "OK",
- "olm version:": "olm version:",
- "Once encryption is enabled for a room it cannot be turned off again (for now)": "Once encryption is enabled for a room it cannot be turned off again (for now)",
- "Once you've followed the link it contains, click below": "Once you've followed the link it contains, click below",
- "Only people who have been invited": "Only people who have been invited",
- "Operation failed": "Operation failed",
- "Otherwise, click here to send a bug report.": "Otherwise, click here to send a bug report.",
- "Password": "Password",
- "Password:": "Password:",
- "Passwords can't be empty": "Passwords can't be empty",
- "People": "People",
- "Permissions": "Permissions",
- "Phone": "Phone",
- "%(senderName)s placed a %(callType)s call.": "%(senderName)s placed a %(callType)s call.",
- "Please check your email and click on the link it contains. Once this is done, click continue.": "Please check your email and click on the link it contains. Once this is done, click continue.",
- "Please Register": "Please Register",
- "Power level must be positive integer.": "Power level must be positive integer.",
- "Press": "Press",
- "Press to start a chat with someone": "Press to start a chat with someone",
- "Privacy warning": "Privacy warning",
- "Private Chat": "Private Chat",
- "Privileged Users": "Privileged Users",
- "Profile": "Profile",
- "Public Chat": "Public Chat",
- "Reason": "Reason",
- "Reason: %(reasonText)s": "Reason: %(reasonText)s",
- "Revoke Moderator": "Revoke Moderator",
- "Revoke widget access": "Revoke widget access",
- "Refer a friend to Riot:": "Refer a friend to Riot:",
- "Register": "Register",
- "rejected": "rejected",
- "%(targetName)s rejected the invitation.": "%(targetName)s rejected the invitation.",
- "Reject invitation": "Reject invitation",
- "Rejoin": "Rejoin",
- "Remote addresses for this room:": "Remote addresses for this room:",
- "Remove Contact Information?": "Remove Contact Information?",
- "%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s removed their display name (%(oldDisplayName)s).",
- "%(senderName)s removed their profile picture.": "%(senderName)s removed their profile picture.",
- "Remove": "Remove",
- "Remove %(threePid)s?": "Remove %(threePid)s?",
- "%(senderName)s requested a VoIP conference.": "%(senderName)s requested a VoIP conference.",
- "Report it": "Report it",
- "Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.",
- "restore": "restore",
- "Results from DuckDuckGo": "Results from DuckDuckGo",
- "Return to app": "Return to app",
- "Return to login screen": "Return to login screen",
- "Riot does not have permission to send you notifications - please check your browser settings": "Riot does not have permission to send you notifications - please check your browser settings",
- "Riot was not given permission to send notifications - please try again": "Riot was not given permission to send notifications - please try again",
- "riot-web version:": "riot-web version:",
- "Room %(roomId)s not visible": "Room %(roomId)s not visible",
- "Room Colour": "Room Colour",
- "Room contains unknown devices": "Room contains unknown devices",
- "Room name (optional)": "Room name (optional)",
- "%(roomName)s does not exist.": "%(roomName)s does not exist.",
- "%(roomName)s is not accessible at this time.": "%(roomName)s is not accessible at this time.",
- "Rooms": "Rooms",
- "Save": "Save",
- "Scroll to bottom of page": "Scroll to bottom of page",
- "Scroll to unread messages": "Scroll to unread messages",
- "Search": "Search",
- "Search failed": "Search failed",
- "Searches DuckDuckGo for results": "Searches DuckDuckGo for results",
- "Searching known users": "Searching known users",
- "Seen by %(userName)s at %(dateTime)s": "Seen by %(userName)s at %(dateTime)s",
- "Send a message (unencrypted)": "Send a message (unencrypted)",
- "Send an encrypted message": "Send an encrypted message",
- "Send anyway": "Send anyway",
- "Sender device information": "Sender device information",
- "Send Invites": "Send Invites",
- "Send Reset Email": "Send Reset Email",
- "sent an image": "sent an image",
- "%(senderDisplayName)s sent an image.": "%(senderDisplayName)s sent an image.",
- "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.",
- "sent a video": "sent a video",
- "Server error": "Server error",
- "Server may be unavailable or overloaded": "Server may be unavailable or overloaded",
- "Server may be unavailable, overloaded, or search timed out :(": "Server may be unavailable, overloaded, or search timed out :(",
- "Server may be unavailable, overloaded, or the file too big": "Server may be unavailable, overloaded, or the file too big",
- "Server may be unavailable, overloaded, or you hit a bug.": "Server may be unavailable, overloaded, or you hit a bug.",
- "Server unavailable, overloaded, or something else went wrong.": "Server unavailable, overloaded, or something else went wrong.",
- "Session ID": "Session ID",
- "%(senderName)s set a profile picture.": "%(senderName)s set a profile picture.",
- "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s set their display name to %(displayName)s.",
- "Set": "Set",
- "Settings": "Settings",
- "Sets the room topic": "Sets the room topic",
- "Show Apps": "Show Apps",
- "Show panel": "Show panel",
- "Show Text Formatting Toolbar": "Show Text Formatting Toolbar",
- "Show timestamps in 12 hour format (e.g. 2:30pm)": "Show timestamps in 12 hour format (e.g. 2:30pm)",
- "Signed Out": "Signed Out",
- "Sign in": "Sign in",
- "Sign out": "Sign out",
- "since the point in time of selecting this option": "since the point in time of selecting this option",
- "since they joined": "since they joined",
- "since they were invited": "since they were invited",
- "Some of your messages have not been sent.": "Some of your messages have not been sent.",
- "Someone": "Someone",
- "Sorry, this homeserver is using a login which is not recognised ": "Sorry, this homeserver is using a login which is not recognised ",
- "Start a chat": "Start a chat",
- "Start authentication": "Start authentication",
- "Start Chat": "Start Chat",
- "Submit": "Submit",
- "Success": "Success",
- "tag as %(tagName)s": "tag as %(tagName)s",
- "tag direct chat": "tag direct chat",
- "Tagged as: ": "Tagged as: ",
- "The default role for new room members is": "The default role for new room members is",
- "The main address for this room is": "The main address for this room is",
- "The maximum permitted number of widgets have already been added to this room.": "The maximum permitted number of widgets have already been added to this room.",
- "The phone number entered looks invalid": "The phone number entered looks invalid",
- "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.",
- "This action cannot be performed by a guest user. Please register to be able to do this.": "This action cannot be performed by a guest user. Please register to be able to do this.",
"This email address is already in use": "This email address is already in use",
- "This email address was not found": "This email address was not found",
- "%(actionVerb)s this person?": "%(actionVerb)s this person?",
- "The email address linked to your account must be entered.": "The email address linked to your account must be entered.",
- "The file '%(fileName)s' exceeds this home server's size limit for uploads": "The file '%(fileName)s' exceeds this home server's size limit for uploads",
- "The file '%(fileName)s' failed to upload": "The file '%(fileName)s' failed to upload",
- "The remote side failed to pick up": "The remote side failed to pick up",
- "This Home Server does not support login using email address.": "This Home Server does not support login using email address.",
- "This invitation was sent to an email address which is not associated with this account:": "This invitation was sent to an email address which is not associated with this account:",
- "There was a problem logging in.": "There was a problem logging in.",
- "This room has no local addresses": "This room has no local addresses",
- "This room is not recognised.": "This room is not recognised.",
- "These are experimental features that may break in unexpected ways": "These are experimental features that may break in unexpected ways",
- "The visibility of existing history will be unchanged": "The visibility of existing history will be unchanged",
- "This doesn't appear to be a valid email address": "This doesn't appear to be a valid email address",
- "This is a preview of this room. Room interactions have been disabled": "This is a preview of this room. Room interactions have been disabled",
"This phone number is already in use": "This phone number is already in use",
- "This room": "This room",
- "This room is not accessible by remote Matrix servers": "This room is not accessible by remote Matrix servers",
- "This room's internal ID is": "This room's internal ID is",
- "times": "times",
- "To ban users": "To ban users",
- "to browse the directory": "to browse the directory",
- "To configure the room": "To configure the room",
- "to demote": "to demote",
- "to favourite": "to favourite",
- "To get started, please pick a username!": "To get started, please pick a username!",
- "To invite users into the room": "To invite users into the room",
- "To kick users": "To kick users",
- "To link to a room it must have an address.": "To link to a room it must have an address.",
- "to make a room or": "to make a room or",
- "To remove other users' messages": "To remove other users' messages",
- "To reset your password, enter the email address linked to your account": "To reset your password, enter the email address linked to your account",
- "to restore": "to restore",
- "To send events of type": "To send events of type",
- "To send messages": "To send messages",
- "to start a chat with someone": "to start a chat with someone",
- "to tag as %(tagName)s": "to tag as %(tagName)s",
- "to tag direct chat": "to tag direct chat",
- "To use it, just wait for autocomplete results to load and tab through them.": "To use it, just wait for autocomplete results to load and tab through them.",
- "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.",
- "Tried to load a specific point in this room's timeline, but was unable to find it.": "Tried to load a specific point in this room's timeline, but was unable to find it.",
- "Turn Markdown off": "Turn Markdown off",
- "Turn Markdown on": "Turn Markdown on",
- "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).",
- "Unable to add email address": "Unable to add email address",
- "Unable to create widget.": "Unable to create widget.",
- "Unable to remove contact information": "Unable to remove contact information",
- "Unable to restore previous session": "Unable to restore previous session",
- "Unable to verify email address.": "Unable to verify email address.",
- "Unban": "Unban",
- "Unbans user with given id": "Unbans user with given id",
- "%(senderName)s unbanned %(targetName)s.": "%(senderName)s unbanned %(targetName)s.",
- "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Unable to ascertain that the address this invite was sent to matches one associated with your account.",
+ "Failed to verify email address: make sure you clicked the link in the email": "Failed to verify email address: make sure you clicked the link in the email",
+ "Call Failed": "Call Failed",
+ "There are unknown devices in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "There are unknown devices in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.",
+ "Review Devices": "Review Devices",
+ "Call Anyway": "Call Anyway",
+ "Answer Anyway": "Answer Anyway",
+ "Call": "Call",
+ "Answer": "Answer",
+ "Call Timeout": "Call Timeout",
+ "The remote side failed to pick up": "The remote side failed to pick up",
"Unable to capture screen": "Unable to capture screen",
- "Unable to enable Notifications": "Unable to enable Notifications",
- "Unable to load device list": "Unable to load device list",
- "Undecryptable": "Undecryptable",
- "Unencrypted room": "Unencrypted room",
- "unencrypted": "unencrypted",
- "Unencrypted message": "Unencrypted message",
- "unknown caller": "unknown caller",
- "unknown device": "unknown device",
- "unknown error code": "unknown error code",
- "Unknown room %(roomId)s": "Unknown room %(roomId)s",
- "Unknown (user, device) pair:": "Unknown (user, device) pair:",
- "unknown": "unknown",
- "Unmute": "Unmute",
- "Unnamed Room": "Unnamed Room",
- "Unrecognised command:": "Unrecognised command:",
- "Unrecognised room alias:": "Unrecognised room alias:",
- "Unverified": "Unverified",
- "Uploading %(filename)s and %(count)s others": {
- "zero": "Uploading %(filename)s",
- "one": "Uploading %(filename)s and %(count)s other",
- "other": "Uploading %(filename)s and %(count)s others"
- },
- "uploaded a file": "uploaded a file",
- "Upload avatar": "Upload avatar",
- "Upload Failed": "Upload Failed",
- "Upload Files": "Upload Files",
- "Upload file": "Upload file",
- "Upload new:": "Upload new:",
- "Usage": "Usage",
- "Use compact timeline layout": "Use compact timeline layout",
- "Use with caution": "Use with caution",
- "User ID": "User ID",
- "User Interface": "User Interface",
- "%(user)s is a": "%(user)s is a",
- "User name": "User name",
- "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (power %(powerLevelNumber)s)",
- "Username invalid: %(errMessage)s": "Username invalid: %(errMessage)s",
- "Users": "Users",
- "User": "User",
- "Verification Pending": "Verification Pending",
- "Verification": "Verification",
- "verified": "verified",
- "Verified": "Verified",
- "Verified key": "Verified key",
- "Video call": "Video call",
- "Voice call": "Voice call",
- "VoIP conference finished.": "VoIP conference finished.",
- "VoIP conference started.": "VoIP conference started.",
- "VoIP is unsupported": "VoIP is unsupported",
- "(could not connect media)": "(could not connect media)",
- "(no answer)": "(no answer)",
- "(unknown failure: %(reason)s)": "(unknown failure: %(reason)s)",
- "(warning: cannot be disabled again!)": "(warning: cannot be disabled again!)",
- "Warning!": "Warning!",
- "WARNING: Device already verified, but keys do NOT MATCH!": "WARNING: Device already verified, but keys do NOT MATCH!",
- "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!",
- "Who can access this room?": "Who can access this room?",
- "Who can read history?": "Who can read history?",
- "Who would you like to add to this room?": "Who would you like to add to this room?",
- "Who would you like to communicate with?": "Who would you like to communicate with?",
- "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s withdrew %(targetName)s's invitation.",
- "Would you like to accept or decline this invitation?": "Would you like to accept or decline this invitation?",
- "You already have existing direct chats with this user:": "You already have existing direct chats with this user:",
+ "Existing Call": "Existing Call",
"You are already in a call.": "You are already in a call.",
- "You are not in this room.": "You are not in this room.",
- "You do not have permission to do that in this room.": "You do not have permission to do that in this room.",
- "You're not in any rooms yet! Press to make a room or to browse the directory": "You're not in any rooms yet! Press to make a room or to browse the directory",
- "You are trying to access %(roomName)s.": "You are trying to access %(roomName)s.",
- "You cannot place a call with yourself.": "You cannot place a call with yourself.",
+ "VoIP is unsupported": "VoIP is unsupported",
"You cannot place VoIP calls in this browser.": "You cannot place VoIP calls in this browser.",
- "You do not have permission to post to this room": "You do not have permission to post to this room",
- "You have been banned from %(roomName)s by %(userName)s.": "You have been banned from %(roomName)s by %(userName)s.",
- "You have been invited to join this room by %(inviterName)s": "You have been invited to join this room by %(inviterName)s",
- "You have been kicked from %(roomName)s by %(userName)s.": "You have been kicked from %(roomName)s by %(userName)s.",
- "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device",
- "You have disabled URL previews by default.": "You have disabled URL previews by default.",
- "You have enabled URL previews by default.": "You have enabled URL previews by default.",
- "You have entered an invalid contact. Try using their Matrix ID or email address.": "You have entered an invalid contact. Try using their Matrix ID or email address.",
- "You have no visible notifications": "You have no visible notifications",
- "You may wish to login with a different account, or add this email to this account.": "You may wish to login with a different account, or add this email to this account.",
- "you must be a": "you must be a",
- "You must register to use this functionality": "You must register to use this functionality",
- "You need to be able to invite users to do that.": "You need to be able to invite users to do that.",
- "You need to be logged in.": "You need to be logged in.",
- "You need to enter a user name.": "You need to enter a user name.",
- "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Your email address does not appear to be associated with a Matrix ID on this Homeserver.",
- "Your password has been reset": "Your password has been reset",
- "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them",
- "You seem to be in a call, are you sure you want to quit?": "You seem to be in a call, are you sure you want to quit?",
- "You seem to be uploading files, are you sure you want to quit?": "You seem to be uploading files, are you sure you want to quit?",
- "You should not yet trust it to secure data": "You should not yet trust it to secure data",
- "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.",
- "Your home server does not support device management.": "Your home server does not support device management.",
+ "You cannot place a call with yourself.": "You cannot place a call with yourself.",
+ "Conference calls are not supported in this client": "Conference calls are not supported in this client",
+ "Conference calls are not supported in encrypted rooms": "Conference calls are not supported in encrypted rooms",
+ "Warning!": "Warning!",
+ "Conference calling is in development and may not be reliable.": "Conference calling is in development and may not be reliable.",
+ "Failed to set up conference call": "Failed to set up conference call",
+ "Conference call failed.": "Conference call failed.",
+ "The file '%(fileName)s' failed to upload": "The file '%(fileName)s' failed to upload",
+ "The file '%(fileName)s' exceeds this home server's size limit for uploads": "The file '%(fileName)s' exceeds this home server's size limit for uploads",
+ "Upload Failed": "Upload Failed",
"Sun": "Sun",
"Mon": "Mon",
"Tue": "Tue",
@@ -722,47 +45,276 @@
"Oct": "Oct",
"Nov": "Nov",
"Dec": "Dec",
+ "PM": "PM",
+ "AM": "AM",
+ "%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
"%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(time)s",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s",
- "%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
- "Set a display name:": "Set a display name:",
- "Set a Display Name": "Set a Display Name",
- "Upload an avatar:": "Upload an avatar:",
- "This server does not support authentication with a phone number.": "This server does not support authentication with a phone number.",
- "Missing password.": "Missing password.",
- "Passwords don't match.": "Passwords don't match.",
- "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Password too short (min %(MIN_PASSWORD_LENGTH)s).",
- "This doesn't look like a valid email address.": "This doesn't look like a valid email address.",
- "This doesn't look like a valid phone number.": "This doesn't look like a valid phone number.",
- "User names may only contain letters, numbers, dots, hyphens and underscores.": "User names may only contain letters, numbers, dots, hyphens and underscores.",
- "An unknown error occurred.": "An unknown error occurred.",
- "I already have an account": "I already have an account",
- "An error occurred: %(error_string)s": "An error occurred: %(error_string)s",
- "Topic": "Topic",
+ "Who would you like to add to this community?": "Who would you like to add to this community?",
+ "Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Warning: any person you add to a community will be publicly visible to anyone who knows the community ID",
+ "Invite new community members": "Invite new community members",
+ "Name or matrix ID": "Name or matrix ID",
+ "Invite to Community": "Invite to Community",
+ "Which rooms would you like to add to this community?": "Which rooms would you like to add to this community?",
+ "Show these rooms to non-members on the community page and room list?": "Show these rooms to non-members on the community page and room list?",
+ "Add rooms to the community": "Add rooms to the community",
+ "Room name or alias": "Room name or alias",
+ "Add to community": "Add to community",
+ "Failed to invite the following users to %(groupId)s:": "Failed to invite the following users to %(groupId)s:",
+ "Failed to invite users to community": "Failed to invite users to community",
+ "Failed to invite users to %(groupId)s": "Failed to invite users to %(groupId)s",
+ "Failed to add the following rooms to %(groupId)s:": "Failed to add the following rooms to %(groupId)s:",
+ "Riot does not have permission to send you notifications - please check your browser settings": "Riot does not have permission to send you notifications - please check your browser settings",
+ "Riot was not given permission to send notifications - please try again": "Riot was not given permission to send notifications - please try again",
+ "Unable to enable Notifications": "Unable to enable Notifications",
+ "This email address was not found": "This email address was not found",
+ "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Your email address does not appear to be associated with a Matrix ID on this Homeserver.",
+ "Default": "Default",
+ "Restricted": "Restricted",
+ "Moderator": "Moderator",
+ "Admin": "Admin",
+ "Start a chat": "Start a chat",
+ "Who would you like to communicate with?": "Who would you like to communicate with?",
+ "Email, name or matrix ID": "Email, name or matrix ID",
+ "Start Chat": "Start Chat",
+ "Invite new room members": "Invite new room members",
+ "Who would you like to add to this room?": "Who would you like to add to this room?",
+ "Send Invites": "Send Invites",
+ "Failed to invite user": "Failed to invite user",
+ "Operation failed": "Operation failed",
+ "Failed to invite": "Failed to invite",
+ "Failed to invite the following users to the %(roomName)s room:": "Failed to invite the following users to the %(roomName)s room:",
+ "You need to be logged in.": "You need to be logged in.",
+ "You need to be able to invite users to do that.": "You need to be able to invite users to do that.",
+ "Unable to create widget.": "Unable to create widget.",
+ "Failed to send request.": "Failed to send request.",
+ "This room is not recognised.": "This room is not recognised.",
+ "Power level must be positive integer.": "Power level must be positive integer.",
+ "You are not in this room.": "You are not in this room.",
+ "You do not have permission to do that in this room.": "You do not have permission to do that in this room.",
+ "Missing room_id in request": "Missing room_id in request",
+ "Must be viewing a room": "Must be viewing a room",
+ "Room %(roomId)s not visible": "Room %(roomId)s not visible",
+ "Missing user_id in request": "Missing user_id in request",
+ "Failed to lookup current room": "Failed to lookup current room",
+ "Usage": "Usage",
+ "/ddg is not a command": "/ddg is not a command",
+ "To use it, just wait for autocomplete results to load and tab through them.": "To use it, just wait for autocomplete results to load and tab through them.",
+ "Unrecognised room alias:": "Unrecognised room alias:",
+ "Ignored user": "Ignored user",
+ "You are now ignoring %(userId)s": "You are now ignoring %(userId)s",
+ "Unignored user": "Unignored user",
+ "You are no longer ignoring %(userId)s": "You are no longer ignoring %(userId)s",
+ "Unknown (user, device) pair:": "Unknown (user, device) pair:",
+ "Device already verified!": "Device already verified!",
+ "WARNING: Device already verified, but keys do NOT MATCH!": "WARNING: Device already verified, but keys do NOT MATCH!",
+ "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!",
+ "Verified key": "Verified key",
+ "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.",
+ "Unrecognised command:": "Unrecognised command:",
+ "Reason": "Reason",
+ "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s accepted the invitation for %(displayName)s.",
+ "%(targetName)s accepted an invitation.": "%(targetName)s accepted an invitation.",
+ "%(senderName)s requested a VoIP conference.": "%(senderName)s requested a VoIP conference.",
+ "%(senderName)s invited %(targetName)s.": "%(senderName)s invited %(targetName)s.",
+ "%(senderName)s banned %(targetName)s.": "%(senderName)s banned %(targetName)s.",
+ "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.",
+ "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s set their display name to %(displayName)s.",
+ "%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s removed their display name (%(oldDisplayName)s).",
+ "%(senderName)s removed their profile picture.": "%(senderName)s removed their profile picture.",
+ "%(senderName)s changed their profile picture.": "%(senderName)s changed their profile picture.",
+ "%(senderName)s set a profile picture.": "%(senderName)s set a profile picture.",
+ "VoIP conference started.": "VoIP conference started.",
+ "%(targetName)s joined the room.": "%(targetName)s joined the room.",
+ "VoIP conference finished.": "VoIP conference finished.",
+ "%(targetName)s rejected the invitation.": "%(targetName)s rejected the invitation.",
+ "%(targetName)s left the room.": "%(targetName)s left the room.",
+ "%(senderName)s unbanned %(targetName)s.": "%(senderName)s unbanned %(targetName)s.",
+ "%(senderName)s kicked %(targetName)s.": "%(senderName)s kicked %(targetName)s.",
+ "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s withdrew %(targetName)s's invitation.",
+ "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s changed the topic to \"%(topic)s\".",
+ "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s removed the room name.",
+ "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s changed the room name to %(roomName)s.",
+ "%(senderDisplayName)s sent an image.": "%(senderDisplayName)s sent an image.",
+ "Someone": "Someone",
+ "(not supported by this browser)": "(not supported by this browser)",
+ "%(senderName)s answered the call.": "%(senderName)s answered the call.",
+ "(could not connect media)": "(could not connect media)",
+ "(no answer)": "(no answer)",
+ "(unknown failure: %(reason)s)": "(unknown failure: %(reason)s)",
+ "%(senderName)s ended the call.": "%(senderName)s ended the call.",
+ "%(senderName)s placed a %(callType)s call.": "%(senderName)s placed a %(callType)s call.",
+ "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s made future room history visible to all room members, from the point they are invited.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s made future room history visible to all room members, from the point they joined.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s made future room history visible to all room members.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s made future room history visible to anyone.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s made future room history visible to unknown (%(visibility)s).",
+ "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).",
+ "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s",
+ "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s changed the power level of %(powerLevelDiffText)s.",
+ "%(senderName)s changed the pinned messages for the room.": "%(senderName)s changed the pinned messages for the room.",
+ "%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s widget modified by %(senderName)s",
+ "%(widgetName)s widget added by %(senderName)s": "%(widgetName)s widget added by %(senderName)s",
+ "%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s widget removed by %(senderName)s",
+ "%(displayName)s is typing": "%(displayName)s is typing",
+ "%(names)s and %(count)s others are typing|other": "%(names)s and %(count)s others are typing",
+ "%(names)s and %(count)s others are typing|one": "%(names)s and one other is typing",
+ "%(names)s and %(lastPerson)s are typing": "%(names)s and %(lastPerson)s are typing",
+ "Failure to create room": "Failure to create room",
+ "Server may be unavailable, overloaded, or you hit a bug.": "Server may be unavailable, overloaded, or you hit a bug.",
+ "Send anyway": "Send anyway",
+ "Send": "Send",
+ "Unnamed Room": "Unnamed Room",
+ "Your browser does not support the required cryptography extensions": "Your browser does not support the required cryptography extensions",
+ "Not a valid Riot keyfile": "Not a valid Riot keyfile",
+ "Authentication check failed: incorrect password?": "Authentication check failed: incorrect password?",
+ "Failed to join room": "Failed to join room",
+ "Message Pinning": "Message Pinning",
+ "Presence Management": "Presence Management",
+ "Tag Panel": "Tag Panel",
+ "Disable Emoji suggestions while typing": "Disable Emoji suggestions while typing",
+ "Use compact timeline layout": "Use compact timeline layout",
+ "Hide removed messages": "Hide removed messages",
+ "Hide join/leave messages (invites/kicks/bans unaffected)": "Hide join/leave messages (invites/kicks/bans unaffected)",
+ "Hide avatar changes": "Hide avatar changes",
+ "Hide display name changes": "Hide display name changes",
+ "Hide read receipts": "Hide read receipts",
+ "Show timestamps in 12 hour format (e.g. 2:30pm)": "Show timestamps in 12 hour format (e.g. 2:30pm)",
+ "Always show message timestamps": "Always show message timestamps",
+ "Autoplay GIFs and videos": "Autoplay GIFs and videos",
+ "Enable automatic language detection for syntax highlighting": "Enable automatic language detection for syntax highlighting",
+ "Hide avatars in user and room mentions": "Hide avatars in user and room mentions",
+ "Disable big emoji in chat": "Disable big emoji in chat",
+ "Don't send typing notifications": "Don't send typing notifications",
+ "Automatically replace plain text Emoji": "Automatically replace plain text Emoji",
+ "Mirror local video feed": "Mirror local video feed",
+ "Disable Peer-to-Peer for 1:1 calls": "Disable Peer-to-Peer for 1:1 calls",
+ "Opt out of analytics": "Opt out of analytics",
+ "Never send encrypted messages to unverified devices from this device": "Never send encrypted messages to unverified devices from this device",
+ "Never send encrypted messages to unverified devices in this room from this device": "Never send encrypted messages to unverified devices in this room from this device",
+ "Enable inline URL previews by default": "Enable inline URL previews by default",
+ "Enable URL previews for this room (only affects you)": "Enable URL previews for this room (only affects you)",
+ "Enable URL previews by default for participants in this room": "Enable URL previews by default for participants in this room",
+ "Room Colour": "Room Colour",
+ "Active call (%(roomName)s)": "Active call (%(roomName)s)",
+ "unknown caller": "unknown caller",
+ "Incoming voice call from %(name)s": "Incoming voice call from %(name)s",
+ "Incoming video call from %(name)s": "Incoming video call from %(name)s",
+ "Incoming call from %(name)s": "Incoming call from %(name)s",
+ "Decline": "Decline",
+ "Accept": "Accept",
+ "Error": "Error",
+ "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains",
+ "Incorrect verification code": "Incorrect verification code",
+ "Enter Code": "Enter Code",
+ "Submit": "Submit",
+ "Phone": "Phone",
+ "Add phone number": "Add phone number",
+ "Add": "Add",
+ "Failed to upload profile picture!": "Failed to upload profile picture!",
+ "Upload new:": "Upload new:",
+ "No display name": "No display name",
+ "New passwords don't match": "New passwords don't match",
+ "Passwords can't be empty": "Passwords can't be empty",
+ "Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.",
+ "Continue": "Continue",
+ "Export E2E room keys": "Export E2E room keys",
+ "Do you want to set an email address?": "Do you want to set an email address?",
+ "Current password": "Current password",
+ "Password": "Password",
+ "New Password": "New Password",
+ "Confirm password": "Confirm password",
+ "Change Password": "Change Password",
+ "Your home server does not support device management.": "Your home server does not support device management.",
+ "Unable to load device list": "Unable to load device list",
+ "Authentication": "Authentication",
+ "Delete %(count)s devices|other": "Delete %(count)s devices",
+ "Delete %(count)s devices|one": "Delete device",
+ "Device ID": "Device ID",
+ "Device Name": "Device Name",
+ "Last seen": "Last seen",
+ "Select devices": "Select devices",
+ "Failed to set display name": "Failed to set display name",
+ "Disable Notifications": "Disable Notifications",
+ "Enable Notifications": "Enable Notifications",
+ "Cannot add any more widgets": "Cannot add any more widgets",
+ "The maximum permitted number of widgets have already been added to this room.": "The maximum permitted number of widgets have already been added to this room.",
+ "Add a widget": "Add a widget",
+ "Drop File Here": "Drop File Here",
+ "Drop file here to upload": "Drop file here to upload",
+ " (unsupported)": " (unsupported)",
+ "Join as voice or video.": "Join as voice or video.",
+ "Ongoing conference call%(supportedText)s.": "Ongoing conference call%(supportedText)s.",
+ "%(senderName)s sent an image": "%(senderName)s sent an image",
+ "%(senderName)s sent a video": "%(senderName)s sent a video",
+ "%(senderName)s uploaded a file": "%(senderName)s uploaded a file",
+ "Options": "Options",
+ "Undecryptable": "Undecryptable",
+ "Encrypted by a verified device": "Encrypted by a verified device",
+ "Encrypted by an unverified device": "Encrypted by an unverified device",
+ "Unencrypted message": "Unencrypted message",
+ "Please select the destination room for this message": "Please select the destination room for this message",
+ "Blacklisted": "Blacklisted",
+ "Verified": "Verified",
+ "Unverified": "Unverified",
+ "device id: ": "device id: ",
+ "Disinvite": "Disinvite",
+ "Kick": "Kick",
+ "Disinvite this user?": "Disinvite this user?",
+ "Kick this user?": "Kick this user?",
+ "Failed to kick": "Failed to kick",
+ "Unban": "Unban",
+ "Ban": "Ban",
+ "Unban this user?": "Unban this user?",
+ "Ban this user?": "Ban this user?",
+ "Failed to ban user": "Failed to ban user",
+ "Failed to mute user": "Failed to mute user",
+ "Failed to toggle moderator status": "Failed to toggle moderator status",
+ "Failed to change power level": "Failed to change power level",
+ "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.",
+ "Are you sure?": "Are you sure?",
+ "No devices with registered encryption keys": "No devices with registered encryption keys",
+ "Devices": "Devices",
+ "Unignore": "Unignore",
+ "Ignore": "Ignore",
+ "Jump to read receipt": "Jump to read receipt",
+ "Mention": "Mention",
+ "Invite": "Invite",
+ "User Options": "User Options",
+ "Direct chats": "Direct chats",
+ "Unmute": "Unmute",
+ "Mute": "Mute",
+ "Revoke Moderator": "Revoke Moderator",
"Make Moderator": "Make Moderator",
- "Make this room private": "Make this room private",
- "Share message history with new users": "Share message history with new users",
- "Encrypt room": "Encrypt room",
- "There are no visible files in this room": "There are no visible files in this room",
- "Room": "Room",
- "Connectivity to the server has been lost.": "Connectivity to the server has been lost.",
- "Sent messages will be stored until your connection has returned.": "Sent messages will be stored until your connection has returned.",
- "Auto-complete": "Auto-complete",
- "Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Resend all or cancel all now. You can also select individual messages to resend or cancel.",
- "(~%(count)s results)": {
- "one": "(~%(count)s result)",
- "other": "(~%(count)s results)"
- },
- "Cancel": "Cancel",
- "or": "or",
- "Active call": "Active call",
- "Monday": "Monday",
- "Tuesday": "Tuesday",
- "Wednesday": "Wednesday",
- "Thursday": "Thursday",
- "Friday": "Friday",
- "Saturday": "Saturday",
- "Sunday": "Sunday",
+ "Admin Tools": "Admin Tools",
+ "Level:": "Level:",
+ "and %(count)s others...|other": "and %(count)s others...",
+ "and %(count)s others...|one": "and one other...",
+ "Invited": "Invited",
+ "Filter room members": "Filter room members",
+ "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (power %(powerLevelNumber)s)",
+ "Attachment": "Attachment",
+ "Upload Files": "Upload Files",
+ "Are you sure you want to upload the following files?": "Are you sure you want to upload the following files?",
+ "Encrypted room": "Encrypted room",
+ "Unencrypted room": "Unencrypted room",
+ "Hangup": "Hangup",
+ "Voice call": "Voice call",
+ "Video call": "Video call",
+ "Hide Apps": "Hide Apps",
+ "Show Apps": "Show Apps",
+ "Upload file": "Upload file",
+ "Show Text Formatting Toolbar": "Show Text Formatting Toolbar",
+ "Send an encrypted message": "Send an encrypted message",
+ "Send a message (unencrypted)": "Send a message (unencrypted)",
+ "You do not have permission to post to this room": "You do not have permission to post to this room",
+ "Turn Markdown on": "Turn Markdown on",
+ "Turn Markdown off": "Turn Markdown off",
+ "Hide Text Formatting Toolbar": "Hide Text Formatting Toolbar",
+ "Server error": "Server error",
+ "Server unavailable, overloaded, or something else went wrong.": "Server unavailable, overloaded, or something else went wrong.",
+ "Command error": "Command error",
"bold": "bold",
"italic": "italic",
"strike": "strike",
@@ -771,115 +323,176 @@
"quote": "quote",
"bullet": "bullet",
"numbullet": "numbullet",
- "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)sjoined %(repeats)s times",
- "%(oneUser)sjoined %(repeats)s times": "%(oneUser)sjoined %(repeats)s times",
- "%(severalUsers)sjoined": "%(severalUsers)sjoined",
- "%(oneUser)sjoined": "%(oneUser)sjoined",
- "%(severalUsers)sleft %(repeats)s times": "%(severalUsers)sleft %(repeats)s times",
- "%(oneUser)sleft %(repeats)s times": "%(oneUser)sleft %(repeats)s times",
- "%(severalUsers)sleft": "%(severalUsers)sleft",
- "%(oneUser)sleft": "%(oneUser)sleft",
- "%(severalUsers)sjoined and left %(repeats)s times": "%(severalUsers)sjoined and left %(repeats)s times",
- "%(oneUser)sjoined and left %(repeats)s times": "%(oneUser)sjoined and left %(repeats)s times",
- "%(severalUsers)sjoined and left": "%(severalUsers)sjoined and left",
- "%(oneUser)sjoined and left": "%(oneUser)sjoined and left",
- "%(severalUsers)sleft and rejoined %(repeats)s times": "%(severalUsers)sleft and rejoined %(repeats)s times",
- "%(oneUser)sleft and rejoined %(repeats)s times": "%(oneUser)sleft and rejoined %(repeats)s times",
- "%(severalUsers)sleft and rejoined": "%(severalUsers)sleft and rejoined",
- "%(oneUser)sleft and rejoined": "%(oneUser)sleft and rejoined",
- "%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)srejected their invitations %(repeats)s times",
- "%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)srejected their invitation %(repeats)s times",
- "%(severalUsers)srejected their invitations": "%(severalUsers)srejected their invitations",
- "%(oneUser)srejected their invitation": "%(oneUser)srejected their invitation",
- "%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)shad their invitations withdrawn %(repeats)s times",
- "%(oneUser)shad their invitation withdrawn %(repeats)s times": "%(oneUser)shad their invitation withdrawn %(repeats)s times",
- "%(severalUsers)shad their invitations withdrawn": "%(severalUsers)shad their invitations withdrawn",
- "%(oneUser)shad their invitation withdrawn": "%(oneUser)shad their invitation withdrawn",
- "were invited %(repeats)s times": "were invited %(repeats)s times",
- "was invited %(repeats)s times": "was invited %(repeats)s times",
- "were invited": "were invited",
- "was invited": "was invited",
- "were banned %(repeats)s times": "were banned %(repeats)s times",
- "was banned %(repeats)s times": "was banned %(repeats)s times",
- "were banned": "were banned",
- "was banned": "was banned",
- "were unbanned %(repeats)s times": "were unbanned %(repeats)s times",
- "was unbanned %(repeats)s times": "was unbanned %(repeats)s times",
- "were unbanned": "were unbanned",
- "was unbanned": "was unbanned",
- "were kicked %(repeats)s times": "were kicked %(repeats)s times",
- "was kicked %(repeats)s times": "was kicked %(repeats)s times",
- "were kicked": "were kicked",
- "was kicked": "was kicked",
- "%(severalUsers)schanged their name %(repeats)s times": "%(severalUsers)schanged their name %(repeats)s times",
- "%(oneUser)schanged their name %(repeats)s times": "%(oneUser)schanged their name %(repeats)s times",
- "%(severalUsers)schanged their name": "%(severalUsers)schanged their name",
- "%(oneUser)schanged their name": "%(oneUser)schanged their name",
- "%(severalUsers)schanged their avatar %(repeats)s times": "%(severalUsers)schanged their avatar %(repeats)s times",
- "%(oneUser)schanged their avatar %(repeats)s times": "%(oneUser)schanged their avatar %(repeats)s times",
- "%(severalUsers)schanged their avatar": "%(severalUsers)schanged their avatar",
- "%(oneUser)schanged their avatar": "%(oneUser)schanged their avatar",
- "Please select the destination room for this message": "Please select the destination room for this message",
- "Create new room": "Create new room",
- "Welcome page": "Welcome page",
- "Room directory": "Room directory",
- "Start chat": "Start chat",
- "New Password": "New Password",
- "Start automatically after system login": "Start automatically after system login",
- "Desktop specific": "Desktop specific",
- "Analytics": "Analytics",
- "Opt out of analytics": "Opt out of analytics",
- "Options": "Options",
- "Riot collects anonymous analytics to allow us to improve the application.": "Riot collects anonymous analytics to allow us to improve the application.",
- "Passphrases must match": "Passphrases must match",
- "Passphrase must not be empty": "Passphrase must not be empty",
- "Export room keys": "Export room keys",
- "Confirm passphrase": "Confirm passphrase",
- "Import room keys": "Import room keys",
- "File to import": "File to import",
- "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.",
- "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.",
- "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.",
- "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.",
- "You must join the room to see its files": "You must join the room to see its files",
- "Reject all %(invitedRooms)s invites": "Reject all %(invitedRooms)s invites",
- "Start new chat": "Start new chat",
- "Guest users can't invite users. Please register.": "Guest users can't invite users. Please register.",
- "Failed to invite": "Failed to invite",
- "Failed to invite user": "Failed to invite user",
- "Failed to invite the following users to the %(roomName)s room:": "Failed to invite the following users to the %(roomName)s room:",
- "Confirm Removal": "Confirm Removal",
- "Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.",
- "Unknown error": "Unknown error",
- "Incorrect password": "Incorrect password",
- "This will make your account permanently unusable. You will not be able to re-register the same user ID.": "This will make your account permanently unusable. You will not be able to re-register the same user ID.",
- "This action is irreversible.": "This action is irreversible.",
- "To continue, please enter your password.": "To continue, please enter your password.",
- "To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:",
- "Device name": "Device name",
- "Device Name": "Device Name",
- "Device key": "Device key",
- "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.",
- "In future this verification process will be more sophisticated.": "In future this verification process will be more sophisticated.",
- "Verify device": "Verify device",
- "Verifies a user, device, and pubkey tuple": "Verifies a user, device, and pubkey tuple",
- "I verify that the keys match": "I verify that the keys match",
- "We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.",
- "Unable to restore session": "Unable to restore session",
- "If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.",
- "Continue anyway": "Continue anyway",
- "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?",
- "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.",
- "We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.",
- "\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contains devices that you haven't seen before.",
- "Unknown devices": "Unknown devices",
- "Unknown Address": "Unknown Address",
- "Unblacklist": "Unblacklist",
- "Blacklist": "Blacklist",
- "Unverify": "Unverify",
- "Verify...": "Verify...",
- "ex. @bob:example.com": "ex. @bob:example.com",
- "Add User": "Add User",
+ "Markdown is disabled": "Markdown is disabled",
+ "Markdown is enabled": "Markdown is enabled",
+ "Unpin Message": "Unpin Message",
+ "Jump to message": "Jump to message",
+ "No pinned messages.": "No pinned messages.",
+ "Loading...": "Loading...",
+ "Pinned Messages": "Pinned Messages",
+ "%(duration)ss": "%(duration)ss",
+ "%(duration)sm": "%(duration)sm",
+ "%(duration)sh": "%(duration)sh",
+ "%(duration)sd": "%(duration)sd",
+ "Online for %(duration)s": "Online for %(duration)s",
+ "Idle for %(duration)s": "Idle for %(duration)s",
+ "Offline for %(duration)s": "Offline for %(duration)s",
+ "Unknown for %(duration)s": "Unknown for %(duration)s",
+ "Online": "Online",
+ "Idle": "Idle",
+ "Offline": "Offline",
+ "Unknown": "Unknown",
+ "Seen by %(userName)s at %(dateTime)s": "Seen by %(userName)s at %(dateTime)s",
+ "Unnamed room": "Unnamed room",
+ "World readable": "World readable",
+ "Guests can join": "Guests can join",
+ "No rooms to show": "No rooms to show",
+ "Failed to set avatar.": "Failed to set avatar.",
+ "Save": "Save",
+ "(~%(count)s results)|other": "(~%(count)s results)",
+ "(~%(count)s results)|one": "(~%(count)s result)",
+ "Join Room": "Join Room",
+ "Upload avatar": "Upload avatar",
+ "Remove avatar": "Remove avatar",
+ "Settings": "Settings",
+ "Forget room": "Forget room",
+ "Search": "Search",
+ "Show panel": "Show panel",
+ "Drop here to favourite": "Drop here to favourite",
+ "Drop here to tag direct chat": "Drop here to tag direct chat",
+ "Drop here to restore": "Drop here to restore",
+ "Drop here to demote": "Drop here to demote",
+ "Drop here to tag %(section)s": "Drop here to tag %(section)s",
+ "Press to start a chat with someone": "Press to start a chat with someone",
+ "You're not in any rooms yet! Press to make a room or to browse the directory": "You're not in any rooms yet! Press to make a room or to browse the directory",
+ "Community Invites": "Community Invites",
+ "Invites": "Invites",
+ "Favourites": "Favourites",
+ "People": "People",
+ "Rooms": "Rooms",
+ "Low priority": "Low priority",
+ "Historical": "Historical",
+ "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Unable to ascertain that the address this invite was sent to matches one associated with your account.",
+ "This invitation was sent to an email address which is not associated with this account:": "This invitation was sent to an email address which is not associated with this account:",
+ "You may wish to login with a different account, or add this email to this account.": "You may wish to login with a different account, or add this email to this account.",
+ "You have been invited to join this room by %(inviterName)s": "You have been invited to join this room by %(inviterName)s",
+ "Would you like to accept or decline this invitation?": "Would you like to accept or decline this invitation?",
+ "Reason: %(reasonText)s": "Reason: %(reasonText)s",
+ "Rejoin": "Rejoin",
+ "You have been kicked from %(roomName)s by %(userName)s.": "You have been kicked from %(roomName)s by %(userName)s.",
+ "You have been kicked from this room by %(userName)s.": "You have been kicked from this room by %(userName)s.",
+ "You have been banned from %(roomName)s by %(userName)s.": "You have been banned from %(roomName)s by %(userName)s.",
+ "You have been banned from this room by %(userName)s.": "You have been banned from this room by %(userName)s.",
+ "This room": "This room",
+ "%(roomName)s does not exist.": "%(roomName)s does not exist.",
+ "%(roomName)s is not accessible at this time.": "%(roomName)s is not accessible at this time.",
+ "You are trying to access %(roomName)s.": "You are trying to access %(roomName)s.",
+ "You are trying to access a room.": "You are trying to access a room.",
+ "Click here to join the discussion!": "Click here to join the discussion!",
+ "This is a preview of this room. Room interactions have been disabled": "This is a preview of this room. Room interactions have been disabled",
+ "To change the room's avatar, you must be a": "To change the room's avatar, you must be a",
+ "To change the room's name, you must be a": "To change the room's name, you must be a",
+ "To change the room's main address, you must be a": "To change the room's main address, you must be a",
+ "To change the room's history visibility, you must be a": "To change the room's history visibility, you must be a",
+ "To change the permissions in the room, you must be a": "To change the permissions in the room, you must be a",
+ "To change the topic, you must be a": "To change the topic, you must be a",
+ "To modify widgets in the room, you must be a": "To modify widgets in the room, you must be a",
+ "Failed to unban": "Failed to unban",
+ "Banned by %(displayName)s": "Banned by %(displayName)s",
+ "Privacy warning": "Privacy warning",
+ "Changes to who can read history will only apply to future messages in this room": "Changes to who can read history will only apply to future messages in this room",
+ "The visibility of existing history will be unchanged": "The visibility of existing history will be unchanged",
+ "unknown error code": "unknown error code",
+ "Failed to forget room %(errCode)s": "Failed to forget room %(errCode)s",
+ "End-to-end encryption is in beta and may not be reliable": "End-to-end encryption is in beta and may not be reliable",
+ "You should not yet trust it to secure data": "You should not yet trust it to secure data",
+ "Devices will not yet be able to decrypt history from before they joined the room": "Devices will not yet be able to decrypt history from before they joined the room",
+ "Once encryption is enabled for a room it cannot be turned off again (for now)": "Once encryption is enabled for a room it cannot be turned off again (for now)",
+ "Encrypted messages will not be visible on clients that do not yet implement encryption": "Encrypted messages will not be visible on clients that do not yet implement encryption",
+ "Enable encryption": "Enable encryption",
+ "(warning: cannot be disabled again!)": "(warning: cannot be disabled again!)",
+ "Encryption is enabled in this room": "Encryption is enabled in this room",
+ "Encryption is not enabled in this room": "Encryption is not enabled in this room",
+ "Privileged Users": "Privileged Users",
+ "%(user)s is a": "%(user)s is a",
+ "No users have specific privileges in this room": "No users have specific privileges in this room",
+ "Banned users": "Banned users",
+ "This room is not accessible by remote Matrix servers": "This room is not accessible by remote Matrix servers",
+ "Leave room": "Leave room",
+ "Favourite": "Favourite",
+ "Tagged as: ": "Tagged as: ",
+ "To link to a room it must have an address.": "To link to a room it must have an address.",
+ "Guests cannot join this room even if explicitly invited.": "Guests cannot join this room even if explicitly invited.",
+ "Click here to fix": "Click here to fix",
+ "Who can access this room?": "Who can access this room?",
+ "Only people who have been invited": "Only people who have been invited",
+ "Anyone who knows the room's link, apart from guests": "Anyone who knows the room's link, apart from guests",
+ "Anyone who knows the room's link, including guests": "Anyone who knows the room's link, including guests",
+ "Publish this room to the public in %(domain)s's room directory?": "Publish this room to the public in %(domain)s's room directory?",
+ "Who can read history?": "Who can read history?",
+ "Anyone": "Anyone",
+ "Members only (since the point in time of selecting this option)": "Members only (since the point in time of selecting this option)",
+ "Members only (since they were invited)": "Members only (since they were invited)",
+ "Members only (since they joined)": "Members only (since they joined)",
+ "Permissions": "Permissions",
+ "The default role for new room members is": "The default role for new room members is",
+ "To send messages, you must be a": "To send messages, you must be a",
+ "To invite users into the room, you must be a": "To invite users into the room, you must be a",
+ "To configure the room, you must be a": "To configure the room, you must be a",
+ "To kick users, you must be a": "To kick users, you must be a",
+ "To ban users, you must be a": "To ban users, you must be a",
+ "To remove other users' messages, you must be a": "To remove other users' messages, you must be a",
+ "To send events of type , you must be a": "To send events of type , you must be a",
+ "Advanced": "Advanced",
+ "This room's internal ID is": "This room's internal ID is",
+ "Add a topic": "Add a topic",
+ "Cancel": "Cancel",
+ "Scroll to unread messages": "Scroll to unread messages",
+ "Jump to first unread message.": "Jump to first unread message.",
+ "Close": "Close",
+ "Invalid alias format": "Invalid alias format",
+ "'%(alias)s' is not a valid format for an alias": "'%(alias)s' is not a valid format for an alias",
+ "Invalid address format": "Invalid address format",
+ "'%(alias)s' is not a valid format for an address": "'%(alias)s' is not a valid format for an address",
+ "not specified": "not specified",
+ "not set": "not set",
+ "Remote addresses for this room:": "Remote addresses for this room:",
+ "Addresses": "Addresses",
+ "The main address for this room is": "The main address for this room is",
+ "Local addresses for this room:": "Local addresses for this room:",
+ "This room has no local addresses": "This room has no local addresses",
+ "New address (e.g. #foo:%(localDomain)s)": "New address (e.g. #foo:%(localDomain)s)",
+ "Invalid community ID": "Invalid community ID",
+ "'%(groupId)s' is not a valid community ID": "'%(groupId)s' is not a valid community ID",
+ "Flair": "Flair",
+ "Showing flair for these communities:": "Showing flair for these communities:",
+ "This room is not showing flair for any communities": "This room is not showing flair for any communities",
+ "New community ID (e.g. +foo:%(localDomain)s)": "New community ID (e.g. +foo:%(localDomain)s)",
+ "You have enabled URL previews by default.": "You have enabled URL previews by default.",
+ "You have disabled URL previews by default.": "You have disabled URL previews by default.",
+ "URL previews are enabled by default for participants in this room.": "URL previews are enabled by default for participants in this room.",
+ "URL previews are disabled by default for participants in this room.": "URL previews are disabled by default for participants in this room.",
+ "URL Previews": "URL Previews",
+ "Error decrypting audio": "Error decrypting audio",
+ "Error decrypting attachment": "Error decrypting attachment",
+ "Decrypt %(text)s": "Decrypt %(text)s",
+ "Download %(text)s": "Download %(text)s",
+ "Invalid file%(extra)s": "Invalid file%(extra)s",
+ "Error decrypting image": "Error decrypting image",
+ "Image '%(Body)s' cannot be displayed.": "Image '%(Body)s' cannot be displayed.",
+ "This image cannot be displayed.": "This image cannot be displayed.",
+ "Error decrypting video": "Error decrypting video",
+ "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s changed the avatar for %(roomName)s",
+ "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s removed the room avatar.",
+ "%(senderDisplayName)s changed the room avatar to
": "%(senderDisplayName)s changed the room avatar to
",
+ "Copied!": "Copied!",
+ "Failed to copy": "Failed to copy",
+ "Add an Integration": "Add an Integration",
+ "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?",
+ "Removed or unknown message type": "Removed or unknown message type",
+ "Message removed by %(userId)s": "Message removed by %(userId)s",
+ "Message removed": "Message removed",
+ "Robot check is currently unavailable on desktop - please use a web browser": "Robot check is currently unavailable on desktop - please use a web browser",
"This Home Server would like to make sure you are not a robot": "This Home Server would like to make sure you are not a robot",
"Sign in with CAS": "Sign in with CAS",
"Custom Server Options": "Custom Server Options",
@@ -887,95 +500,461 @@
"This allows you to use this app with an existing Matrix account on a different home server.": "This allows you to use this app with an existing Matrix account on a different home server.",
"You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "You can also set a custom identity server but this will typically prevent interaction with users based on email address.",
"Dismiss": "Dismiss",
+ "To continue, please enter your password.": "To continue, please enter your password.",
+ "Password:": "Password:",
+ "An email has been sent to %(emailAddress)s": "An email has been sent to %(emailAddress)s",
"Please check your email to continue registration.": "Please check your email to continue registration.",
"Token incorrect": "Token incorrect",
- "A text message has been sent to": "A text message has been sent to",
+ "A text message has been sent to %(msisdn)s": "A text message has been sent to %(msisdn)s",
"Please enter the code it contains:": "Please enter the code it contains:",
+ "Start authentication": "Start authentication",
"powered by Matrix": "powered by Matrix",
+ "Username on %(hs)s": "Username on %(hs)s",
+ "User name": "User name",
+ "Mobile phone number": "Mobile phone number",
+ "Forgot your password?": "Forgot your password?",
+ "%(serverName)s Matrix ID": "%(serverName)s Matrix ID",
+ "Sign in with": "Sign in with",
+ "Email address": "Email address",
+ "Sign in": "Sign in",
"If you don't specify an email address, you won't be able to reset your password. Are you sure?": "If you don't specify an email address, you won't be able to reset your password. Are you sure?",
+ "Email address (optional)": "Email address (optional)",
"You are registering with %(SelectedTeamName)s": "You are registering with %(SelectedTeamName)s",
+ "Mobile phone number (optional)": "Mobile phone number (optional)",
+ "Register": "Register",
"Default server": "Default server",
"Custom server": "Custom server",
"Home server URL": "Home server URL",
"Identity server URL": "Identity server URL",
"What does this mean?": "What does this mean?",
- "Error decrypting audio": "Error decrypting audio",
- "Error decrypting image": "Error decrypting image",
- "Image '%(Body)s' cannot be displayed.": "Image '%(Body)s' cannot be displayed.",
- "This image cannot be displayed.": "This image cannot be displayed.",
- "Error decrypting video": "Error decrypting video",
- "Add an Integration": "Add an Integration",
- "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?",
- "Removed or unknown message type": "Removed or unknown message type",
- "Disable URL previews by default for participants in this room": "Disable URL previews by default for participants in this room",
- "Disable URL previews for this room (affects only you)": "Disable URL previews for this room (affects only you)",
- "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.",
- "URL Previews": "URL Previews",
- "Enable URL previews for this room (affects only you)": "Enable URL previews for this room (affects only you)",
- "Drop file here to upload": "Drop file here to upload",
- " (unsupported)": " (unsupported)",
- "Ongoing conference call%(supportedText)s.": "Ongoing conference call%(supportedText)s.",
- "for %(amount)ss": "for %(amount)ss",
- "for %(amount)sm": "for %(amount)sm",
- "for %(amount)sh": "for %(amount)sh",
- "for %(amount)sd": "for %(amount)sd",
- "Online": "Online",
- "Idle": "Idle",
- "Offline": "Offline",
- "Updates": "Updates",
- "Check for update": "Check for update",
- "Start chatting": "Start chatting",
- "Start Chatting": "Start Chatting",
- "Click on the button below to start chatting!": "Click on the button below to start chatting!",
- "$senderDisplayName changed the room avatar to
": "$senderDisplayName changed the room avatar to
",
- "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s removed the room avatar.",
- "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s changed the avatar for %(roomName)s",
- "Username available": "Username available",
- "Username not available": "Username not available",
+ "Remove from community": "Remove from community",
+ "Disinvite this user from community?": "Disinvite this user from community?",
+ "Remove this user from community?": "Remove this user from community?",
+ "Failed to withdraw invitation": "Failed to withdraw invitation",
+ "Failed to remove user from community": "Failed to remove user from community",
+ "Filter community members": "Filter community members",
+ "Flair will appear if enabled in room settings": "Flair will appear if enabled in room settings",
+ "Flair will not appear": "Flair will not appear",
+ "Are you sure you want to remove '%(roomName)s' from %(groupId)s?": "Are you sure you want to remove '%(roomName)s' from %(groupId)s?",
+ "Removing a room from the community will also remove it from the community page.": "Removing a room from the community will also remove it from the community page.",
+ "Remove": "Remove",
+ "Failed to remove room from community": "Failed to remove room from community",
+ "Failed to remove '%(roomName)s' from %(groupId)s": "Failed to remove '%(roomName)s' from %(groupId)s",
"Something went wrong!": "Something went wrong!",
- "This will be your account name on the homeserver, or you can pick a different server.": "This will be your account name on the homeserver, or you can pick a different server.",
- "If you already have a Matrix account you can log in instead.": "If you already have a Matrix account you can log in instead.",
- "Your browser does not support the required cryptography extensions": "Your browser does not support the required cryptography extensions",
- "Not a valid Riot keyfile": "Not a valid Riot keyfile",
- "Authentication check failed: incorrect password?": "Authentication check failed: incorrect password?",
- "Disable Peer-to-Peer for 1:1 calls": "Disable Peer-to-Peer for 1:1 calls",
- "Do you want to set an email address?": "Do you want to set an email address?",
- "This will allow you to reset your password and receive notifications.": "This will allow you to reset your password and receive notifications.",
- "To return to your account in future you need to set a password": "To return to your account in future you need to set a password",
- "Skip": "Skip",
+ "The visibility of '%(roomName)s' in %(groupId)s could not be updated.": "The visibility of '%(roomName)s' in %(groupId)s could not be updated.",
+ "Visibility in Room List": "Visibility in Room List",
+ "Visible to everyone": "Visible to everyone",
+ "Only visible to community members": "Only visible to community members",
+ "Filter community rooms": "Filter community rooms",
+ "Something went wrong when trying to get your communities.": "Something went wrong when trying to get your communities.",
+ "Display your community flair in rooms configured to show it.": "Display your community flair in rooms configured to show it.",
+ "You're not currently a member of any communities.": "You're not currently a member of any communities.",
+ "Unknown Address": "Unknown Address",
+ "NOTE: Apps are not end-to-end encrypted": "NOTE: Apps are not end-to-end encrypted",
+ "Do you want to load widget from URL:": "Do you want to load widget from URL:",
+ "Allow": "Allow",
+ "Delete Widget": "Delete Widget",
+ "Deleting a widget removes it for all users in this room. Are you sure you want to delete this widget?": "Deleting a widget removes it for all users in this room. Are you sure you want to delete this widget?",
+ "Delete widget": "Delete widget",
+ "Revoke widget access": "Revoke widget access",
+ "Edit": "Edit",
+ "Create new room": "Create new room",
+ "Unblacklist": "Unblacklist",
+ "Blacklist": "Blacklist",
+ "Unverify": "Unverify",
+ "Verify...": "Verify...",
+ "No results": "No results",
+ "Delete": "Delete",
+ "Communities": "Communities",
+ "Home": "Home",
+ "Integrations Error": "Integrations Error",
+ "Could not connect to the integration server": "Could not connect to the integration server",
+ "Manage Integrations": "Manage Integrations",
+ "%(nameList)s %(transitionList)s": "%(nameList)s %(transitionList)s",
+ "%(severalUsers)sjoined %(count)s times|other": "%(severalUsers)sjoined %(count)s times",
+ "%(severalUsers)sjoined %(count)s times|one": "%(severalUsers)sjoined",
+ "%(oneUser)sjoined %(count)s times|other": "%(oneUser)sjoined %(count)s times",
+ "%(oneUser)sjoined %(count)s times|one": "%(oneUser)sjoined",
+ "%(severalUsers)sleft %(count)s times|other": "%(severalUsers)sleft %(count)s times",
+ "%(severalUsers)sleft %(count)s times|one": "%(severalUsers)sleft",
+ "%(oneUser)sleft %(count)s times|other": "%(oneUser)sleft %(count)s times",
+ "%(oneUser)sleft %(count)s times|one": "%(oneUser)sleft",
+ "%(severalUsers)sjoined and left %(count)s times|other": "%(severalUsers)sjoined and left %(count)s times",
+ "%(severalUsers)sjoined and left %(count)s times|one": "%(severalUsers)sjoined and left",
+ "%(oneUser)sjoined and left %(count)s times|other": "%(oneUser)sjoined and left %(count)s times",
+ "%(oneUser)sjoined and left %(count)s times|one": "%(oneUser)sjoined and left",
+ "%(severalUsers)sleft and rejoined %(count)s times|other": "%(severalUsers)sleft and rejoined %(count)s times",
+ "%(severalUsers)sleft and rejoined %(count)s times|one": "%(severalUsers)sleft and rejoined",
+ "%(oneUser)sleft and rejoined %(count)s times|other": "%(oneUser)sleft and rejoined %(count)s times",
+ "%(oneUser)sleft and rejoined %(count)s times|one": "%(oneUser)sleft and rejoined",
+ "%(severalUsers)srejected their invitations %(count)s times|other": "%(severalUsers)srejected their invitations %(count)s times",
+ "%(severalUsers)srejected their invitations %(count)s times|one": "%(severalUsers)srejected their invitations",
+ "%(oneUser)srejected their invitation %(count)s times|other": "%(oneUser)srejected their invitation %(count)s times",
+ "%(oneUser)srejected their invitation %(count)s times|one": "%(oneUser)srejected their invitation",
+ "%(severalUsers)shad their invitations withdrawn %(count)s times|other": "%(severalUsers)shad their invitations withdrawn %(count)s times",
+ "%(severalUsers)shad their invitations withdrawn %(count)s times|one": "%(severalUsers)shad their invitations withdrawn",
+ "%(oneUser)shad their invitation withdrawn %(count)s times|other": "%(oneUser)shad their invitation withdrawn %(count)s times",
+ "%(oneUser)shad their invitation withdrawn %(count)s times|one": "%(oneUser)shad their invitation withdrawn",
+ "were invited %(count)s times|other": "were invited %(count)s times",
+ "were invited %(count)s times|one": "were invited",
+ "was invited %(count)s times|other": "was invited %(count)s times",
+ "was invited %(count)s times|one": "was invited",
+ "were banned %(count)s times|other": "were banned %(count)s times",
+ "were banned %(count)s times|one": "were banned",
+ "was banned %(count)s times|other": "was banned %(count)s times",
+ "was banned %(count)s times|one": "was banned",
+ "were unbanned %(count)s times|other": "were unbanned %(count)s times",
+ "were unbanned %(count)s times|one": "were unbanned",
+ "was unbanned %(count)s times|other": "was unbanned %(count)s times",
+ "was unbanned %(count)s times|one": "was unbanned",
+ "were kicked %(count)s times|other": "were kicked %(count)s times",
+ "were kicked %(count)s times|one": "were kicked",
+ "was kicked %(count)s times|other": "was kicked %(count)s times",
+ "was kicked %(count)s times|one": "was kicked",
+ "%(severalUsers)schanged their name %(count)s times|other": "%(severalUsers)schanged their name %(count)s times",
+ "%(severalUsers)schanged their name %(count)s times|one": "%(severalUsers)schanged their name",
+ "%(oneUser)schanged their name %(count)s times|other": "%(oneUser)schanged their name %(count)s times",
+ "%(oneUser)schanged their name %(count)s times|one": "%(oneUser)schanged their name",
+ "%(severalUsers)schanged their avatar %(count)s times|other": "%(severalUsers)schanged their avatar %(count)s times",
+ "%(severalUsers)schanged their avatar %(count)s times|one": "%(severalUsers)schanged their avatar",
+ "%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)schanged their avatar %(count)s times",
+ "%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)schanged their avatar",
+ "%(items)s and %(count)s others|other": "%(items)s and %(count)s others",
+ "%(items)s and %(count)s others|one": "%(items)s and one other",
+ "%(items)s and %(lastItem)s": "%(items)s and %(lastItem)s",
+ "collapse": "collapse",
+ "expand": "expand",
+ "Custom of %(powerLevel)s": "Custom of %(powerLevel)s",
+ "Custom level": "Custom level",
+ "Room directory": "Room directory",
+ "Start chat": "Start chat",
+ "And %(count)s more...|other": "And %(count)s more...",
+ "ex. @bob:example.com": "ex. @bob:example.com",
+ "Add User": "Add User",
+ "Matrix ID": "Matrix ID",
+ "Matrix Room ID": "Matrix Room ID",
+ "email address": "email address",
+ "Try using one of the following valid address types: %(validTypesList)s.": "Try using one of the following valid address types: %(validTypesList)s.",
+ "You have entered an invalid address.": "You have entered an invalid address.",
+ "Create a new chat or reuse an existing one": "Create a new chat or reuse an existing one",
+ "Start new chat": "Start new chat",
+ "You already have existing direct chats with this user:": "You already have existing direct chats with this user:",
+ "Start chatting": "Start chatting",
+ "Click on the button below to start chatting!": "Click on the button below to start chatting!",
+ "Start Chatting": "Start Chatting",
+ "Confirm Removal": "Confirm Removal",
+ "Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.",
+ "Community IDs may only contain characters a-z, 0-9, or '=_-./'": "Community IDs may only contain characters a-z, 0-9, or '=_-./'",
+ "Something went wrong whilst creating your community": "Something went wrong whilst creating your community",
+ "Create Community": "Create Community",
+ "Community Name": "Community Name",
+ "Example": "Example",
+ "Community ID": "Community ID",
+ "example": "example",
+ "Create": "Create",
+ "Create Room": "Create Room",
+ "Room name (optional)": "Room name (optional)",
+ "Advanced options": "Advanced options",
+ "Block users on other matrix homeservers from joining this room": "Block users on other matrix homeservers from joining this room",
+ "This setting cannot be changed later!": "This setting cannot be changed later!",
+ "Unknown error": "Unknown error",
+ "Incorrect password": "Incorrect password",
+ "Deactivate Account": "Deactivate Account",
+ "This will make your account permanently unusable. You will not be able to re-register the same user ID.": "This will make your account permanently unusable. You will not be able to re-register the same user ID.",
+ "This action is irreversible.": "This action is irreversible.",
+ "To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:",
+ "Device name": "Device name",
+ "Device key": "Device key",
+ "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.",
+ "In future this verification process will be more sophisticated.": "In future this verification process will be more sophisticated.",
+ "Verify device": "Verify device",
+ "I verify that the keys match": "I verify that the keys match",
+ "An error has occurred.": "An error has occurred.",
+ "OK": "OK",
+ "You added a new device '%(displayName)s', which is requesting encryption keys.": "You added a new device '%(displayName)s', which is requesting encryption keys.",
+ "Your unverified device '%(displayName)s' is requesting encryption keys.": "Your unverified device '%(displayName)s' is requesting encryption keys.",
"Start verification": "Start verification",
"Share without verifying": "Share without verifying",
"Ignore request": "Ignore request",
- "You added a new device '%(displayName)s', which is requesting encryption keys.": "You added a new device '%(displayName)s', which is requesting encryption keys.",
- "Your unverified device '%(displayName)s' is requesting encryption keys.": "Your unverified device '%(displayName)s' is requesting encryption keys.",
- "Encryption key request": "Encryption key request",
- "Autocomplete Delay (ms):": "Autocomplete Delay (ms):",
- "This Home server does not support groups": "This Home server does not support groups",
"Loading device info...": "Loading device info...",
- "Groups": "Groups",
- "Create a new group": "Create a new group",
- "Create Group": "Create Group",
- "Group Name": "Group Name",
- "Example": "Example",
- "Create": "Create",
- "Group ID": "Group ID",
- "+example:%(domain)s": "+example:%(domain)s",
- "Group IDs must be of the form +localpart:%(domain)s": "Group IDs must be of the form +localpart:%(domain)s",
- "It is currently only possible to create groups on your own home server: use a group ID ending with %(domain)s": "It is currently only possible to create groups on your own home server: use a group ID ending with %(domain)s",
- "Room creation failed": "Room creation failed",
- "You are a member of these groups:": "You are a member of these groups:",
- "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.": "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.",
- "Join an existing group": "Join an existing group",
- "To join an exisitng group you'll have to know its group identifier; this will look something like +example:matrix.org.": "To join an exisitng group you'll have to know its group identifier; this will look something like +example:matrix.org.",
- "Featured Rooms:": "Featured Rooms:",
- "Error whilst fetching joined groups": "Error whilst fetching joined groups",
- "Featured Users:": "Featured Users:",
- "Edit Group": "Edit Group",
- "Automatically replace plain text Emoji": "Automatically replace plain text Emoji",
+ "Encryption key request": "Encryption key request",
+ "Otherwise, click here to send a bug report.": "Otherwise, click here to send a bug report.",
+ "Unable to restore session": "Unable to restore session",
+ "We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.",
+ "If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.",
+ "Continue anyway": "Continue anyway",
+ "Invalid Email Address": "Invalid Email Address",
+ "This doesn't appear to be a valid email address": "This doesn't appear to be a valid email address",
+ "Verification Pending": "Verification Pending",
+ "Please check your email and click on the link it contains. Once this is done, click continue.": "Please check your email and click on the link it contains. Once this is done, click continue.",
+ "Unable to add email address": "Unable to add email address",
+ "Unable to verify email address.": "Unable to verify email address.",
+ "This will allow you to reset your password and receive notifications.": "This will allow you to reset your password and receive notifications.",
+ "Skip": "Skip",
+ "User names may only contain letters, numbers, dots, hyphens and underscores.": "User names may only contain letters, numbers, dots, hyphens and underscores.",
+ "Username not available": "Username not available",
+ "Username invalid: %(errMessage)s": "Username invalid: %(errMessage)s",
+ "An error occurred: %(error_string)s": "An error occurred: %(error_string)s",
+ "Username available": "Username available",
+ "To get started, please pick a username!": "To get started, please pick a username!",
+ "This will be your account name on the homeserver, or you can pick a different server.": "This will be your account name on the homeserver, or you can pick a different server.",
+ "If you already have a Matrix account you can log in instead.": "If you already have a Matrix account you can log in instead.",
+ "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.",
+ "We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.",
+ "Room contains unknown devices": "Room contains unknown devices",
+ "\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contains devices that you haven't seen before.",
+ "Unknown devices": "Unknown devices",
+ "Private Chat": "Private Chat",
+ "Public Chat": "Public Chat",
+ "Custom": "Custom",
+ "Alias (optional)": "Alias (optional)",
+ "Name": "Name",
+ "Topic": "Topic",
+ "Make this room private": "Make this room private",
+ "Share message history with new users": "Share message history with new users",
+ "Encrypt room": "Encrypt room",
+ "You must register to use this functionality": "You must register to use this functionality",
+ "You must join the room to see its files": "You must join the room to see its files",
+ "There are no visible files in this room": "There are no visible files in this room",
+ "HTML for your community's page
\n\n Use the long description to introduce new members to the community, or distribute\n some important links\n
\n\n You can even use 'img' tags\n
\n": "HTML for your community's page
\n\n Use the long description to introduce new members to the community, or distribute\n some important links\n
\n\n You can even use 'img' tags\n
\n",
+ "Add rooms to the community summary": "Add rooms to the community summary",
+ "Which rooms would you like to add to this summary?": "Which rooms would you like to add to this summary?",
+ "Add to summary": "Add to summary",
+ "Failed to add the following rooms to the summary of %(groupId)s:": "Failed to add the following rooms to the summary of %(groupId)s:",
+ "Add a Room": "Add a Room",
+ "Failed to remove the room from the summary of %(groupId)s": "Failed to remove the room from the summary of %(groupId)s",
+ "The room '%(roomName)s' could not be removed from the summary.": "The room '%(roomName)s' could not be removed from the summary.",
+ "Add users to the community summary": "Add users to the community summary",
+ "Who would you like to add to this summary?": "Who would you like to add to this summary?",
+ "Failed to add the following users to the summary of %(groupId)s:": "Failed to add the following users to the summary of %(groupId)s:",
+ "Add a User": "Add a User",
+ "Failed to remove a user from the summary of %(groupId)s": "Failed to remove a user from the summary of %(groupId)s",
+ "The user '%(displayName)s' could not be removed from the summary.": "The user '%(displayName)s' could not be removed from the summary.",
"Failed to upload image": "Failed to upload image",
- "Failed to update group": "Failed to update group",
- "Hide avatars in user and room mentions": "Hide avatars in user and room mentions",
- "%(widgetName)s widget added by %(senderName)s": "%(widgetName)s widget added by %(senderName)s",
- "%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s widget removed by %(senderName)s",
- "Robot check is currently unavailable on desktop - please use a web browser": "Robot check is currently unavailable on desktop - please use a web browser"
+ "Failed to update community": "Failed to update community",
+ "Unable to accept invite": "Unable to accept invite",
+ "Unable to reject invite": "Unable to reject invite",
+ "Leave Community": "Leave Community",
+ "Leave %(groupName)s?": "Leave %(groupName)s?",
+ "Leave": "Leave",
+ "Unable to leave room": "Unable to leave room",
+ "Community Settings": "Community Settings",
+ "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.",
+ "Add rooms to this community": "Add rooms to this community",
+ "Featured Rooms:": "Featured Rooms:",
+ "Featured Users:": "Featured Users:",
+ "%(inviter)s has invited you to join this community": "%(inviter)s has invited you to join this community",
+ "You are an administrator of this community": "You are an administrator of this community",
+ "You are a member of this community": "You are a member of this community",
+ "Your community hasn't got a Long Description, a HTML page to show to community members.
Click here to open settings and give it one!": "Your community hasn't got a Long Description, a HTML page to show to community members.
Click here to open settings and give it one!",
+ "Long Description (HTML)": "Long Description (HTML)",
+ "Description": "Description",
+ "Community %(groupId)s not found": "Community %(groupId)s not found",
+ "This Home server does not support communities": "This Home server does not support communities",
+ "Failed to load %(groupId)s": "Failed to load %(groupId)s",
+ "Reject invitation": "Reject invitation",
+ "Are you sure you want to reject the invitation?": "Are you sure you want to reject the invitation?",
+ "Failed to reject invitation": "Failed to reject invitation",
+ "Are you sure you want to leave the room '%(roomName)s'?": "Are you sure you want to leave the room '%(roomName)s'?",
+ "Failed to leave room": "Failed to leave room",
+ "Signed Out": "Signed Out",
+ "For security, this session has been signed out. Please sign in again.": "For security, this session has been signed out. Please sign in again.",
+ "Cryptography data migrated": "Cryptography data migrated",
+ "A one-off migration of cryptography data has been performed. End-to-end encryption will not work if you go back to an older version of Riot. If you need to use end-to-end cryptography on an older version, log out of Riot first. To retain message history, export and re-import your keys.": "A one-off migration of cryptography data has been performed. End-to-end encryption will not work if you go back to an older version of Riot. If you need to use end-to-end cryptography on an older version, log out of Riot first. To retain message history, export and re-import your keys.",
+ "Old cryptography data detected": "Old cryptography data detected",
+ "Data from an older version of Riot has been detected. This will have caused end-to-end cryptography to malfunction in the older version. End-to-end encrypted messages exchanged recently whilst using the older version may not be decryptable in this version. This may also cause messages exchanged with this version to fail. If you experience problems, log out and back in again. To retain message history, export and re-import your keys.": "Data from an older version of Riot has been detected. This will have caused end-to-end cryptography to malfunction in the older version. End-to-end encrypted messages exchanged recently whilst using the older version may not be decryptable in this version. This may also cause messages exchanged with this version to fail. If you experience problems, log out and back in again. To retain message history, export and re-import your keys.",
+ "Logout": "Logout",
+ "Your Communities": "Your Communities",
+ "Error whilst fetching joined communities": "Error whilst fetching joined communities",
+ "Create a new community": "Create a new community",
+ "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.",
+ "Join an existing community": "Join an existing community",
+ "To join an existing community you'll have to know its community identifier; this will look something like +example:matrix.org.": "To join an existing community you'll have to know its community identifier; this will look something like +example:matrix.org.",
+ "You have no visible notifications": "You have no visible notifications",
+ "Scroll to bottom of page": "Scroll to bottom of page",
+ "Message not sent due to unknown devices being present": "Message not sent due to unknown devices being present",
+ "Show devices or cancel all.": "Show devices or cancel all.",
+ "Some of your messages have not been sent.": "Some of your messages have not been sent.",
+ "Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Resend all or cancel all now. You can also select individual messages to resend or cancel.",
+ "Warning": "Warning",
+ "Connectivity to the server has been lost.": "Connectivity to the server has been lost.",
+ "Sent messages will be stored until your connection has returned.": "Sent messages will be stored until your connection has returned.",
+ "%(count)s new messages|other": "%(count)s new messages",
+ "%(count)s new messages|one": "%(count)s new message",
+ "Active call": "Active call",
+ "There's no one else here! Would you like to invite others or stop warning about the empty room?": "There's no one else here! Would you like to invite others or stop warning about the empty room?",
+ "You seem to be uploading files, are you sure you want to quit?": "You seem to be uploading files, are you sure you want to quit?",
+ "You seem to be in a call, are you sure you want to quit?": "You seem to be in a call, are you sure you want to quit?",
+ "Failed to upload file": "Failed to upload file",
+ "Server may be unavailable, overloaded, or the file too big": "Server may be unavailable, overloaded, or the file too big",
+ "Search failed": "Search failed",
+ "Server may be unavailable, overloaded, or search timed out :(": "Server may be unavailable, overloaded, or search timed out :(",
+ "No more results": "No more results",
+ "Unknown room %(roomId)s": "Unknown room %(roomId)s",
+ "Room": "Room",
+ "Failed to save settings": "Failed to save settings",
+ "Failed to reject invite": "Failed to reject invite",
+ "Fill screen": "Fill screen",
+ "Click to unmute video": "Click to unmute video",
+ "Click to mute video": "Click to mute video",
+ "Click to unmute audio": "Click to unmute audio",
+ "Click to mute audio": "Click to mute audio",
+ "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.",
+ "Tried to load a specific point in this room's timeline, but was unable to find it.": "Tried to load a specific point in this room's timeline, but was unable to find it.",
+ "Failed to load timeline position": "Failed to load timeline position",
+ "Uploading %(filename)s and %(count)s others|other": "Uploading %(filename)s and %(count)s others",
+ "Uploading %(filename)s and %(count)s others|zero": "Uploading %(filename)s",
+ "Uploading %(filename)s and %(count)s others|one": "Uploading %(filename)s and %(count)s other",
+ "Light theme": "Light theme",
+ "Dark theme": "Dark theme",
+ "Status.im theme": "Status.im theme",
+ "Can't load user settings": "Can't load user settings",
+ "Server may be unavailable or overloaded": "Server may be unavailable or overloaded",
+ "Sign out": "Sign out",
+ "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.",
+ "Failed to change password. Is your password correct?": "Failed to change password. Is your password correct?",
+ "Success": "Success",
+ "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them",
+ "Remove Contact Information?": "Remove Contact Information?",
+ "Remove %(threePid)s?": "Remove %(threePid)s?",
+ "Unable to remove contact information": "Unable to remove contact information",
+ "Refer a friend to Riot:": "Refer a friend to Riot:",
+ "Interface Language": "Interface Language",
+ "User Interface": "User Interface",
+ "Autocomplete Delay (ms):": "Autocomplete Delay (ms):",
+ "": "",
+ "Import E2E room keys": "Import E2E room keys",
+ "Cryptography": "Cryptography",
+ "Device ID:": "Device ID:",
+ "Device key:": "Device key:",
+ "Ignored Users": "Ignored Users",
+ "Bug Report": "Bug Report",
+ "Found a bug?": "Found a bug?",
+ "Report it": "Report it",
+ "Analytics": "Analytics",
+ "Riot collects anonymous analytics to allow us to improve the application.": "Riot collects anonymous analytics to allow us to improve the application.",
+ "Labs": "Labs",
+ "These are experimental features that may break in unexpected ways": "These are experimental features that may break in unexpected ways",
+ "Use with caution": "Use with caution",
+ "Deactivate my account": "Deactivate my account",
+ "Clear Cache": "Clear Cache",
+ "Clear Cache and Reload": "Clear Cache and Reload",
+ "Updates": "Updates",
+ "Check for update": "Check for update",
+ "Reject all %(invitedRooms)s invites": "Reject all %(invitedRooms)s invites",
+ "Bulk Options": "Bulk Options",
+ "Desktop specific": "Desktop specific",
+ "Start automatically after system login": "Start automatically after system login",
+ "No media permissions": "No media permissions",
+ "You may need to manually permit Riot to access your microphone/webcam": "You may need to manually permit Riot to access your microphone/webcam",
+ "Missing Media Permissions, click here to request.": "Missing Media Permissions, click here to request.",
+ "No Microphones detected": "No Microphones detected",
+ "No Webcams detected": "No Webcams detected",
+ "Default Device": "Default Device",
+ "Microphone": "Microphone",
+ "Camera": "Camera",
+ "VoIP": "VoIP",
+ "Email": "Email",
+ "Add email address": "Add email address",
+ "Notifications": "Notifications",
+ "Profile": "Profile",
+ "Display name": "Display name",
+ "Account": "Account",
+ "To return to your account in future you need to set a password": "To return to your account in future you need to set a password",
+ "Logged in as:": "Logged in as:",
+ "Access Token:": "Access Token:",
+ "click to reveal": "click to reveal",
+ "Homeserver is": "Homeserver is",
+ "Identity Server is": "Identity Server is",
+ "matrix-react-sdk version:": "matrix-react-sdk version:",
+ "riot-web version:": "riot-web version:",
+ "olm version:": "olm version:",
+ "Failed to send email": "Failed to send email",
+ "The email address linked to your account must be entered.": "The email address linked to your account must be entered.",
+ "A new password must be entered.": "A new password must be entered.",
+ "New passwords must match each other.": "New passwords must match each other.",
+ "Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.",
+ "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.",
+ "I have verified my email address": "I have verified my email address",
+ "Your password has been reset": "Your password has been reset",
+ "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device",
+ "Return to login screen": "Return to login screen",
+ "To reset your password, enter the email address linked to your account": "To reset your password, enter the email address linked to your account",
+ "New password": "New password",
+ "Confirm your new password": "Confirm your new password",
+ "Send Reset Email": "Send Reset Email",
+ "Create an account": "Create an account",
+ "This Home Server does not support login using email address.": "This Home Server does not support login using email address.",
+ "Incorrect username and/or password.": "Incorrect username and/or password.",
+ "Please note you are logging into the %(hs)s server, not matrix.org.": "Please note you are logging into the %(hs)s server, not matrix.org.",
+ "Guest access is disabled on this Home Server.": "Guest access is disabled on this Home Server.",
+ "The phone number entered looks invalid": "The phone number entered looks invalid",
+ "This homeserver doesn't offer any login flows which are supported by this client.": "This homeserver doesn't offer any login flows which are supported by this client.",
+ "Error: Problem communicating with the given homeserver.": "Error: Problem communicating with the given homeserver.",
+ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.",
+ "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.",
+ "Login as guest": "Login as guest",
+ "Sign in to get started": "Sign in to get started",
+ "Failed to fetch avatar URL": "Failed to fetch avatar URL",
+ "Set a display name:": "Set a display name:",
+ "Upload an avatar:": "Upload an avatar:",
+ "This server does not support authentication with a phone number.": "This server does not support authentication with a phone number.",
+ "Missing password.": "Missing password.",
+ "Passwords don't match.": "Passwords don't match.",
+ "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Password too short (min %(MIN_PASSWORD_LENGTH)s).",
+ "This doesn't look like a valid email address.": "This doesn't look like a valid email address.",
+ "This doesn't look like a valid phone number.": "This doesn't look like a valid phone number.",
+ "You need to enter a user name.": "You need to enter a user name.",
+ "An unknown error occurred.": "An unknown error occurred.",
+ "I already have an account": "I already have an account",
+ "Displays action": "Displays action",
+ "Bans user with given id": "Bans user with given id",
+ "Unbans user with given id": "Unbans user with given id",
+ "Define the power level of a user": "Define the power level of a user",
+ "Deops user with given id": "Deops user with given id",
+ "Invites user with given id to current room": "Invites user with given id to current room",
+ "Joins room with given alias": "Joins room with given alias",
+ "Sets the room topic": "Sets the room topic",
+ "Kicks user with given id": "Kicks user with given id",
+ "Changes your display nickname": "Changes your display nickname",
+ "Searches DuckDuckGo for results": "Searches DuckDuckGo for results",
+ "Changes colour scheme of current room": "Changes colour scheme of current room",
+ "Verifies a user, device, and pubkey tuple": "Verifies a user, device, and pubkey tuple",
+ "Ignores a user, hiding their messages from you": "Ignores a user, hiding their messages from you",
+ "Stops ignoring a user, showing their messages going forward": "Stops ignoring a user, showing their messages going forward",
+ "Commands": "Commands",
+ "Results from DuckDuckGo": "Results from DuckDuckGo",
+ "Emoji": "Emoji",
+ "Notify the whole room": "Notify the whole room",
+ "Room Notification": "Room Notification",
+ "Users": "Users",
+ "unknown device": "unknown device",
+ "NOT verified": "NOT verified",
+ "verified": "verified",
+ "Verification": "Verification",
+ "Ed25519 fingerprint": "Ed25519 fingerprint",
+ "User ID": "User ID",
+ "Curve25519 identity key": "Curve25519 identity key",
+ "none": "none",
+ "Claimed Ed25519 fingerprint key": "Claimed Ed25519 fingerprint key",
+ "Algorithm": "Algorithm",
+ "unencrypted": "unencrypted",
+ "Decryption error": "Decryption error",
+ "Session ID": "Session ID",
+ "End-to-end encryption information": "End-to-end encryption information",
+ "Event information": "Event information",
+ "Sender device information": "Sender device information",
+ "Passphrases must match": "Passphrases must match",
+ "Passphrase must not be empty": "Passphrase must not be empty",
+ "Export room keys": "Export room keys",
+ "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.",
+ "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.",
+ "Enter passphrase": "Enter passphrase",
+ "Confirm passphrase": "Confirm passphrase",
+ "Export": "Export",
+ "Import room keys": "Import room keys",
+ "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.",
+ "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.",
+ "File to import": "File to import",
+ "Import": "Import"
}
diff --git a/src/i18n/strings/en_US.json b/src/i18n/strings/en_US.json
index a68ce5d982..3783a42ddc 100644
--- a/src/i18n/strings/en_US.json
+++ b/src/i18n/strings/en_US.json
@@ -1,129 +1,8 @@
{
"Add a widget": "Add a widget",
- "af": "Afrikaans",
- "ar-ae": "Arabic (U.A.E.)",
- "ar-bh": "Arabic (Bahrain)",
- "ar-dz": "Arabic (Algeria)",
- "ar-eg": "Arabic (Egypt)",
- "ar-iq": "Arabic (Iraq)",
- "ar-jo": "Arabic (Jordan)",
- "ar-kw": "Arabic (Kuwait)",
- "ar-lb": "Arabic (Lebanon)",
- "ar-ly": "Arabic (Libya)",
- "ar-ma": "Arabic (Morocco)",
- "ar-om": "Arabic (Oman)",
- "ar-qa": "Arabic (Qatar)",
- "ar-sa": "Arabic (Saudi Arabia)",
- "ar-sy": "Arabic (Syria)",
- "ar-tn": "Arabic (Tunisia)",
- "ar-ye": "Arabic (Yemen)",
- "be": "Belarusian",
- "bg": "Bulgarian",
- "ca": "Catalan",
- "cs": "Czech",
- "da": "Danish",
- "de-at": "German (Austria)",
- "de-ch": "German (Switzerland)",
- "de": "German",
- "de-li": "German (Liechtenstein)",
- "de-lu": "German (Luxembourg)",
- "el": "Greek",
- "en-au": "English (Australia)",
- "en-bz": "English (Belize)",
- "en-ca": "English (Canada)",
- "en": "English",
- "en-gb": "English (United Kingdom)",
- "en-ie": "English (Ireland)",
- "en-jm": "English (Jamaica)",
- "en-nz": "English (New Zealand)",
- "en-tt": "English (Trinidad)",
- "en-us": "English (United States)",
- "en-za": "English (South Africa)",
- "es-ar": "Spanish (Argentina)",
- "es-bo": "Spanish (Bolivia)",
- "es-cl": "Spanish (Chile)",
- "es-co": "Spanish (Colombia)",
- "es-cr": "Spanish (Costa Rica)",
- "es-do": "Spanish (Dominican Republic)",
- "es-ec": "Spanish (Ecuador)",
- "es-gt": "Spanish (Guatemala)",
- "es-hn": "Spanish (Honduras)",
- "es-mx": "Spanish (Mexico)",
- "es-ni": "Spanish (Nicaragua)",
- "es-pa": "Spanish (Panama)",
- "es-pe": "Spanish (Peru)",
- "es-pr": "Spanish (Puerto Rico)",
- "es-py": "Spanish (Paraguay)",
- "es": "Spanish (Spain)",
- "es-sv": "Spanish (El Salvador)",
- "es-uy": "Spanish (Uruguay)",
- "es-ve": "Spanish (Venezuela)",
- "et": "Estonian",
- "eu": "Basque (Basque)",
- "fa": "Farsi",
- "fi": "Finnish",
- "fo": "Faeroese",
- "fr-be": "French (Belgium)",
- "fr-ca": "French (Canada)",
- "fr-ch": "French (Switzerland)",
- "fr": "French",
- "fr-lu": "French (Luxembourg)",
- "ga": "Irish",
- "gd": "Gaelic (Scotland)",
- "he": "Hebrew",
- "hi": "Hindi",
- "hr": "Croatian",
- "hu": "Hungarian",
- "id": "Indonesian",
- "is": "Icelandic",
- "it-ch": "Italian (Switzerland)",
- "it": "Italian",
- "ja": "Japanese",
- "ji": "Yiddish",
- "ko": "Korean",
- "lt": "Lithuanian",
- "lv": "Latvian",
- "mk": "Macedonian (FYROM)",
- "ms": "Malaysian",
- "mt": "Maltese",
- "nl-be": "Dutch (Belgium)",
- "nl": "Dutch",
- "no": "Norwegian",
- "pl": "Polish",
- "pt-br": "Brazilian Portuguese",
- "pt": "Portuguese",
- "rm": "Rhaeto-Romanic",
- "ro-mo": "Romanian (Republic of Moldova)",
- "ro": "Romanian",
- "ru-mo": "Russian (Republic of Moldova)",
- "ru": "Russian",
- "sb": "Sorbian",
- "sk": "Slovak",
- "sl": "Slovenian",
- "sq": "Albanian",
- "sr": "Serbian",
- "sv-fi": "Swedish (Finland)",
- "sv": "Swedish",
- "sx": "Sutu",
- "sz": "Sami (Lappish)",
- "th": "Thai",
- "tn": "Tswana",
- "tr": "Turkish",
- "ts": "Tsonga",
- "uk": "Ukrainian",
- "ur": "Urdu",
- "ve": "Venda",
- "vi": "Vietnamese",
- "xh": "Xhosa",
- "zh-cn": "Chinese (PRC)",
- "zh-hk": "Chinese (Hong Kong SAR)",
- "zh-sg": "Chinese (Singapore)",
- "zh-tw": "Chinese (Taiwan)",
- "zu": "Zulu",
"AM": "AM",
"PM": "PM",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains",
- "accept": "accept",
"%(targetName)s accepted an invitation.": "%(targetName)s accepted an invitation.",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s accepted the invitation for %(displayName)s.",
"Account": "Account",
@@ -146,25 +25,16 @@
"Hide removed messages": "Hide removed messages",
"Always show message timestamps": "Always show message timestamps",
"Authentication": "Authentication",
- "all room members": "all room members",
- "all room members, from the point they are invited": "all room members, from the point they are invited",
- "all room members, from the point they joined": "all room members, from the point they joined",
- "an address": "an address",
- "and": "and",
"%(items)s and %(remaining)s others": "%(items)s and %(remaining)s others",
"%(items)s and one other": "%(items)s and one other",
"%(items)s and %(lastItem)s": "%(items)s and %(lastItem)s",
- "and %(count)s others...": {
- "other": "and %(count)s others...",
- "one": "and one other..."
- },
+ "and %(count)s others...|other": "and %(count)s others...",
+ "and %(count)s others...|one": "and one other...",
"%(names)s and %(lastPerson)s are typing": "%(names)s and %(lastPerson)s are typing",
"%(names)s and one other are typing": "%(names)s and one other are typing",
- "%(names)s and %(count)s others are typing": "%(names)s and %(count)s others are typing",
"An email has been sent to": "An email has been sent to",
"A new password must be entered.": "A new password must be entered.",
"%(senderName)s answered the call.": "%(senderName)s answered the call.",
- "anyone": "anyone",
"An error has occurred.": "An error has occurred.",
"Anyone": "Anyone",
"Anyone who knows the room's link, apart from guests": "Anyone who knows the room's link, apart from guests",
@@ -183,7 +53,6 @@
"Bug Report": "Bug Report",
"Bulk Options": "Bulk Options",
"Call Timeout": "Call Timeout",
- "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.",
"Can't load user settings": "Can't load user settings",
"Change Password": "Change Password",
@@ -195,12 +64,10 @@
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s changed the topic to \"%(topic)s\".",
"Changes to who can read history will only apply to future messages in this room": "Changes to who can read history will only apply to future messages in this room",
"Changes your display nickname": "Changes your display nickname",
- "changing room on a RoomView is not supported": "changing room on a RoomView is not supported",
"Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.",
"Claimed Ed25519 fingerprint key": "Claimed Ed25519 fingerprint key",
"Clear Cache and Reload": "Clear Cache and Reload",
"Clear Cache": "Clear Cache",
- "Click here": "Click here",
"Click here to fix": "Click here to fix",
"Click to mute audio": "Click to mute audio",
"Click to mute video": "Click to mute video",
@@ -226,11 +93,9 @@
"/ddg is not a command": "/ddg is not a command",
"Deactivate Account": "Deactivate Account",
"Deactivate my account": "Deactivate my account",
- "decline": "decline",
"Decrypt %(text)s": "Decrypt %(text)s",
"Decryption error": "Decryption error",
"Delete": "Delete",
- "demote": "demote",
"Deops user with given id": "Deops user with given id",
"Default": "Default",
"Delete widget": "Delete widget",
@@ -241,7 +106,6 @@
"Device key:": "Device key:",
"Devices": "Devices",
"Devices will not yet be able to decrypt history from before they joined the room": "Devices will not yet be able to decrypt history from before they joined the room",
- "Direct Chat": "Direct Chat",
"Direct chats": "Direct chats",
"disabled": "disabled",
"Disable inline URL previews by default": "Disable inline URL previews by default",
@@ -279,13 +143,11 @@
"Failed to delete device": "Failed to delete device",
"Failed to forget room %(errCode)s": "Failed to forget room %(errCode)s",
"Failed to join room": "Failed to join room",
- "Failed to join the room": "Failed to join the room",
"Failed to kick": "Failed to kick",
"Failed to leave room": "Failed to leave room",
"Failed to load timeline position": "Failed to load timeline position",
"Failed to lookup current room": "Failed to lookup current room",
"Failed to mute user": "Failed to mute user",
- "Failed to register as guest:": "Failed to register as guest:",
"Failed to reject invite": "Failed to reject invite",
"Failed to reject invitation": "Failed to reject invitation",
"Failed to save settings": "Failed to save settings",
@@ -300,7 +162,6 @@
"Failed to verify email address: make sure you clicked the link in the email": "Failed to verify email address: make sure you clicked the link in the email",
"Failure to create room": "Failure to create room",
"Favourite": "Favorite",
- "favourite": "favorite",
"Favourites": "Favorites",
"Fill screen": "Fill screen",
"Filter room members": "Filter room members",
@@ -311,12 +172,7 @@
"Found a bug?": "Found a bug?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s",
"Guest access is disabled on this Home Server.": "Guest access is disabled on this Home Server.",
- "Guests can't set avatars. Please register.": "Guests can't set avatars. Please register.",
- "Guest users can't create new rooms. Please register to create room and start a chat.": "Guest users can't create new rooms. Please register to create room and start a chat.",
- "Guest users can't upload files. Please register to upload.": "Guest users can't upload files. Please register to upload.",
- "Guests can't use labs features. Please register.": "Guests can't use labs features. Please register.",
"Guests cannot join this room even if explicitly invited.": "Guests cannot join this room even if explicitly invited.",
- "had": "had",
"Hangup": "Hangup",
"Hide Apps": "Hide Apps",
"Hide read receipts": "Hide read receipts",
@@ -339,14 +195,11 @@
"Invited": "Invited",
"Invites": "Invites",
"Invites user with given id to current room": "Invites user with given id to current room",
- "is a": "is a",
"'%(alias)s' is not a valid format for an address": "'%(alias)s' is not a valid format for an address",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' is not a valid format for an alias",
"%(displayName)s is typing": "%(displayName)s is typing",
"Sign in with": "Sign in with",
"Join Room": "Join Room",
- "joined and left": "joined and left",
- "joined": "joined",
"%(targetName)s joined the room.": "%(targetName)s joined the room.",
"Joins room with given alias": "Joins room with given alias",
"Jump to first unread message.": "Jump to first unread message.",
@@ -354,24 +207,35 @@
"Kick": "Kick",
"Kicks user with given id": "Kicks user with given id",
"Labs": "Labs",
+ "Ignored Users": "Ignored Users",
+ "Ignore": "Ignore",
+ "Unignore": "Unignore",
+ "User Options": "User Options",
+ "You are now ignoring %(userId)s": "You are now ignoring %(userId)s",
+ "You are no longer ignoring %(userId)s": "You are no longer ignoring %(userId)s",
+ "Unignored user": "Unignored user",
+ "Ignored user": "Ignored user",
+ "Stops ignoring a user, showing their messages going forward": "Stops ignoring a user, showing their messages going forward",
+ "Ignores a user, hiding their messages from you": "Ignores a user, hiding their messages from you",
"Leave room": "Leave room",
- "left and rejoined": "left and rejoined",
- "left": "left",
"%(targetName)s left the room.": "%(targetName)s left the room.",
- "Level": "Level",
"Publish this room to the public in %(domain)s's room directory?": "Publish this room to the public in %(domain)s's room directory?",
"Local addresses for this room:": "Local addresses for this room:",
"Logged in as:": "Logged in as:",
"Login as guest": "Login as guest",
"Logout": "Logout",
"Low priority": "Low priority",
- "%(senderName)s made future room history visible to": "%(senderName)s made future room history visible to",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s made future room history visible to all room members, from the point they are invited.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s made future room history visible to all room members, from the point they joined.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s made future room history visible to all room members.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s made future room history visible to anyone.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s made future room history visible to unknown (%(visibility)s).",
"Manage Integrations": "Manage Integrations",
"Markdown is disabled": "Markdown is disabled",
"Markdown is enabled": "Markdown is enabled",
"matrix-react-sdk version:": "matrix-react-sdk version:",
- "Matrix Apps": "Matrix Apps",
"Members only": "Members only",
+ "Disable Emoji suggestions while typing": "Disable Emoji suggestions while typing",
"Message not sent due to unknown devices being present": "Message not sent due to unknown devices being present",
"Missing room_id in request": "Missing room_id in request",
"Missing user_id in request": "Missing user_id in request",
@@ -380,13 +244,10 @@
"Moderator": "Moderator",
"Must be viewing a room": "Must be viewing a room",
"Mute": "Mute",
- "my Matrix ID": "my Matrix ID",
"Name": "Name",
"Never send encrypted messages to unverified devices from this device": "Never send encrypted messages to unverified devices from this device",
- "Never send encrypted messages to unverified devices in this room": "Never send encrypted messages to unverified devices in this room",
"Never send encrypted messages to unverified devices in this room from this device": "Never send encrypted messages to unverified devices in this room from this device",
"New address (e.g. #foo:%(localDomain)s)": "New address (e.g. #foo:%(localDomain)s)",
- "New Composer & Autocomplete": "New Composer & Autocomplete",
"New password": "New password",
"New passwords don't match": "New passwords don't match",
"New passwords must match each other.": "New passwords must match each other.",
@@ -404,7 +265,7 @@
"OK": "OK",
"olm version:": "olm version:",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "Once encryption is enabled for a room it cannot be turned off again (for now)",
- "Once you've followed the link it contains, click below": "Once you've followed the link it contains, click below",
+ "Once you've followed the link it contains, click below": "Once you've followed the link it contains, click below",
"Only people who have been invited": "Only people who have been invited",
"Operation failed": "Operation failed",
"Password": "Password",
@@ -415,9 +276,7 @@
"Phone": "Phone",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s placed a %(callType)s call.",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Please check your email and click on the link it contains. Once this is done, click continue.",
- "Please Register": "Please Register",
"Power level must be positive integer.": "Power level must be positive integer.",
- "Press": "Press",
"Privacy warning": "Privacy warning",
"Privileged Users": "Privileged Users",
"Profile": "Profile",
@@ -426,7 +285,6 @@
"Revoke widget access": "Revoke widget access",
"Refer a friend to Riot:": "Refer a friend to Riot:",
"Register": "Register",
- "rejected": "rejected",
"%(targetName)s rejected the invitation.": "%(targetName)s rejected the invitation.",
"Reject invitation": "Reject invitation",
"Remote addresses for this room:": "Remote addresses for this room:",
@@ -438,7 +296,6 @@
"%(senderName)s requested a VoIP conference.": "%(senderName)s requested a VoIP conference.",
"Report it": "Report it",
"Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.",
- "restore": "restore",
"Results from DuckDuckGo": "Results from DuckDuckGo",
"Return to app": "Return to app",
"Return to login screen": "Return to login screen",
@@ -490,13 +347,10 @@
"Start Chat": "Start Chat",
"Submit": "Submit",
"Success": "Success",
- "tag as %(tagName)s": "tag as %(tagName)s",
- "tag direct chat": "tag direct chat",
"Tagged as: ": "Tagged as: ",
"The default role for new room members is": "The default role for new room members is",
"The main address for this room is": "The main address for this room is",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.",
- "This action cannot be performed by a guest user. Please register to be able to do this.": "This action cannot be performed by a guest user. Please register to be able to do this.",
"This email address is already in use": "This email address is already in use",
"This email address was not found": "This email address was not found",
"%(actionVerb)s this person?": "%(actionVerb)s this person?",
@@ -505,35 +359,19 @@
"The file '%(fileName)s' failed to upload": "The file '%(fileName)s' failed to upload",
"The remote side failed to pick up": "The remote side failed to pick up",
"This Home Server does not support login using email address.": "This Home Server does not support login using email address.",
- "There was a problem logging in.": "There was a problem logging in.",
"This room has no local addresses": "This room has no local addresses",
"This room is not recognised.": "This room is not recognized.",
"These are experimental features that may break in unexpected ways": "These are experimental features that may break in unexpected ways",
"The visibility of existing history will be unchanged": "The visibility of existing history will be unchanged",
"This doesn't appear to be a valid email address": "This doesn't appear to be a valid email address",
- "this invitation?": "this invitation?",
"This is a preview of this room. Room interactions have been disabled": "This is a preview of this room. Room interactions have been disabled",
"This phone number is already in use": "This phone number is already in use",
"This room is not accessible by remote Matrix servers": "This room is not accessible by remote Matrix servers",
"This room's internal ID is": "This room's internal ID is",
- "times": "times",
- "To ban users": "To ban users",
- "to browse the directory": "to browse the directory",
- "To configure the room": "To configure the room",
"to demote": "to demote",
"to favourite": "to favorite",
- "To invite users into the room": "To invite users into the room",
- "to join the discussion": "to join the discussion",
- "To kick users": "To kick users",
- "To link to a room it must have": "To link to a room it must have",
- "to make a room or": "to make a room or",
- "To remove other users' messages": "To remove other users' messages",
"To reset your password, enter the email address linked to your account": "To reset your password, enter the email address linked to your account",
"to restore": "to restore",
- "To send events of type": "To send events of type",
- "To send messages": "To send messages",
- "to start a chat with someone": "to start a chat with someone",
- "to tag as %(tagName)s": "to tag as %(tagName)s",
"to tag direct chat": "to tag direct chat",
"To use it, just wait for autocomplete results to load and tab through them.": "To use it, just wait for autocomplete results to load and tab through them.",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.",
@@ -543,7 +381,6 @@
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).",
"Unable to add email address": "Unable to add email address",
"Unable to remove contact information": "Unable to remove contact information",
- "Unable to restore previous session": "Unable to restore previous session",
"Unable to verify email address.": "Unable to verify email address.",
"Unban": "Unban",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s unbanned %(targetName)s.",
@@ -556,7 +393,6 @@
"unknown error code": "unknown error code",
"Unknown room %(roomId)s": "Unknown room %(roomId)s",
"Unknown (user, device) pair:": "Unknown (user, device) pair:",
- "unknown": "unknown",
"Unmute": "Unmute",
"Unrecognised command:": "Unrecognized command:",
"Unrecognised room alias:": "Unrecognized room alias:",
@@ -594,9 +430,7 @@
"Who would you like to add to this room?": "Who would you like to add to this room?",
"Who would you like to communicate with?": "Who would you like to communicate with?",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s withdrew %(targetName)s's invitation.",
- "Would you like to": "Would you like to",
"You are already in a call.": "You are already in a call.",
- "You're not in any rooms yet! Press": "You're not in any rooms yet! Press",
"You are trying to access %(roomName)s.": "You are trying to access %(roomName)s.",
"You cannot place a call with yourself.": "You cannot place a call with yourself.",
"You cannot place VoIP calls in this browser.": "You cannot place VoIP calls in this browser.",
@@ -605,9 +439,7 @@
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device",
"You have disabled URL previews by default.": "You have disabled URL previews by default.",
"You have enabled URL previews by default.": "You have enabled URL previews by default.",
- "You have entered an invalid contact. Try using their Matrix ID or email address.": "You have entered an invalid contact. Try using their Matrix ID or email address.",
"You have no visible notifications": "You have no visible notifications",
- "you must be a": "you must be a",
"You need to be able to invite users to do that.": "You need to be able to invite users to do that.",
"You need to be logged in.": "You need to be logged in.",
"You need to enter a user name.": "You need to enter a user name.",
@@ -641,7 +473,6 @@
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s",
"%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
"Set a display name:": "Set a display name:",
- "Set a Display Name": "Set a Display Name",
"Upload an avatar:": "Upload an avatar:",
"This server does not support authentication with a phone number.": "This server does not support authentication with a phone number.",
"Missing password.": "Missing password.",
@@ -662,21 +493,8 @@
"Room": "Room",
"Connectivity to the server has been lost.": "Connectivity to the server has been lost.",
"Sent messages will be stored until your connection has returned.": "Sent messages will be stored until your connection has returned.",
- "Auto-complete": "Auto-complete",
- "Resend all": "Resend all",
- "(~%(searchCount)s results)": "(~%(searchCount)s results)",
"Cancel": "Cancel",
- "cancel all": "cancel all",
- "or": "or",
- "now. You can also select individual messages to resend or cancel.": "now. You can also select individual messages to resend or cancel.",
"Active call": "Active call",
- "Monday": "Monday",
- "Tuesday": "Tuesday",
- "Wednesday": "Wednesday",
- "Thursday": "Thursday",
- "Friday": "Friday",
- "Saturday": "Saturday",
- "Sunday": "Sunday",
"bold": "bold",
"italic": "italic",
"strike": "strike",
@@ -685,7 +503,7 @@
"quote": "quote",
"bullet": "bullet",
"numbullet": "numbullet",
- "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)s joined %(repeats)s times",
+ "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)sjoined %(repeats)s times",
"%(oneUser)sjoined %(repeats)s times": "%(oneUser)sjoined %(repeats)s times",
"%(severalUsers)sjoined": "%(severalUsers)sjoined",
"%(oneUser)sjoined": "%(oneUser)sjoined",
@@ -738,6 +556,7 @@
"Desktop specific": "Desktop specific",
"Analytics": "Analytics",
"Opt out of analytics": "Opt out of analytics",
+ "Banned by %(displayName)s": "Banned by %(displayName)s",
"Options": "Options",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot collects anonymous analytics to allow us to improve the application.",
"Passphrases must match": "Passphrases must match",
@@ -754,7 +573,6 @@
"You must join the room to see its files": "You must join the room to see its files",
"Reject all %(invitedRooms)s invites": "Reject all %(invitedRooms)s invites",
"Start new chat": "Start new chat",
- "Guest users can't invite users. Please register.": "Guest users can't invite users. Please register.",
"Failed to invite": "Failed to invite",
"Failed to invite user": "Failed to invite user",
"Failed to invite the following users to the %(roomName)s room:": "Failed to invite the following users to the %(roomName)s room:",
@@ -776,7 +594,6 @@
"Unable to restore session": "Unable to restore session",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.",
"Continue anyway": "Continue anyway",
- "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contains devices that you haven't seen before.",
@@ -788,6 +605,20 @@
"Verify...": "Verify...",
"ex. @bob:example.com": "ex. @bob:example.com",
"Add User": "Add User",
+ "To send messages, you must be a": "To send messages, you must be a",
+ "To invite users into the room, you must be a": "To invite users into the room, you must be a",
+ "To configure the room, you must be a": "To configure the room, you must be a",
+ "To kick users, you must be a": "To kick users, you must be a",
+ "To ban users, you must be a": "To ban users, you must be a",
+ "To remove other users' messages, you must be a": "To remove other users' messages, you must be a",
+ "To send events of type , you must be a": "To send events of type , you must be a",
+ "To change the room's avatar, you must be a": "To change the room's avatar, you must be a",
+ "To change the room's name, you must be a": "To change the room's name, you must be a",
+ "To change the room's main address, you must be a": "To change the room's main address, you must be a",
+ "To change the room's history visibility, you must be a": "To change the room's history visibility, you must be a",
+ "To change the permissions in the room, you must be a": "To change the permissions in the room, you must be a",
+ "To change the topic, you must be a": "To change the topic, you must be a",
+ "To modify widgets in the room, you must be a": "To modify widgets in the room, you must be a",
"This Home Server would like to make sure you are not a robot": "This Home Server would like to make sure you are not a robot",
"Sign in with CAS": "Sign in with CAS",
"Custom Server Options": "Custom Server Options",
@@ -830,30 +661,27 @@
"Idle": "Idle",
"Offline": "Offline",
"Disable URL previews for this room (affects only you)": "Disable URL previews for this room (affects only you)",
- "$senderDisplayName changed the room avatar to
": "$senderDisplayName changed the room avatar to
",
+ "%(senderDisplayName)s changed the room avatar to
": "%(senderDisplayName)s changed the room avatar to
",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s removed the room avatar.",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s changed the avatar for %(roomName)s",
"Active call (%(roomName)s)": "Active call (%(roomName)s)",
"Accept": "Accept",
"a room": "a room",
"Add": "Add",
- "Admin tools": "Admin tools",
- "And %(count)s more...": "And %(count)s more...",
+ "Admin Tools": "Admin tools",
"Alias (optional)": "Alias (optional)",
"Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.",
"Click here to join the discussion!": "Click here to join the discussion!",
"Close": "Close",
- "%(count)s new messages.one": "%(count)s new message",
- "%(count)s new messages.other": "%(count)s new messages",
+ "%(count)s new messages|one": "%(count)s new message",
+ "%(count)s new messages|other": "%(count)s new messages",
"Custom": "Custom",
"Decline": "Decline",
- "Disable markdown formatting": "Disable markdown formatting",
"Disable Notifications": "Disable Notifications",
"Enable Notifications": "Enable Notifications",
"Create new room": "Create new room",
"Room directory": "Room directory",
"Start chat": "Start chat",
- "Welcome page": "Welcome page",
"Create a new chat or reuse an existing one": "Create a new chat or reuse an existing one",
"Drop File Here": "Drop File Here",
"Encrypted by a verified device": "Encrypted by a verified device",
@@ -879,10 +707,8 @@
"Room contains unknown devices": "Room contains unknown devices",
"%(roomName)s does not exist.": "%(roomName)s does not exist.",
"%(roomName)s is not accessible at this time.": "%(roomName)s is not accessible at this time.",
- "Searching known users": "Searching known users",
"Seen by %(userName)s at %(dateTime)s": "Seen by %(userName)s at %(dateTime)s",
"Send anyway": "Send anyway",
- "Set": "Set",
"Show Text Formatting Toolbar": "Show Text Formatting Toolbar",
"Start authentication": "Start authentication",
"The phone number entered looks invalid": "The phone number entered looks invalid",
@@ -895,9 +721,9 @@
"unknown caller": "unknown caller",
"Unnamed Room": "Unnamed Room",
"Unverified": "Unverified",
- "Uploading %(filename)s and %(count)s others.zero": "Uploading %(filename)s",
- "Uploading %(filename)s and %(count)s others.one": "Uploading %(filename)s and %(count)s other",
- "Uploading %(filename)s and %(count)s others.other": "Uploading %(filename)s and %(count)s others",
+ "Uploading %(filename)s and %(count)s others|zero": "Uploading %(filename)s",
+ "Uploading %(filename)s and %(count)s others|one": "Uploading %(filename)s and %(count)s other",
+ "Uploading %(filename)s and %(count)s others|other": "Uploading %(filename)s and %(count)s others",
"Upload new:": "Upload new:",
"%(user)s is a": "%(user)s is a",
"%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (power %(powerLevelNumber)s)",
@@ -911,8 +737,8 @@
"You must register to use this functionality": "You must register to use this functionality",
"Your home server does not support device management.": "Your home server does not support device management.",
"Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Resend all or cancel all now. You can also select individual messages to resend or cancel.",
- "(~%(count)s results).one": "(~%(count)s result)",
- "(~%(count)s results).other": "(~%(count)s results)",
+ "(~%(count)s results)|one": "(~%(count)s result)",
+ "(~%(count)s results)|other": "(~%(count)s results)",
"New Password": "New Password",
"Device Name": "Device Name",
"Start chatting": "Start chatting",
@@ -940,5 +766,39 @@
"Your unverified device '%(displayName)s' is requesting encryption keys.": "Your unverified device '%(displayName)s' is requesting encryption keys.",
"Encryption key request": "Encryption key request",
"Updates": "Updates",
- "Check for update": "Check for update"
+ "Check for update": "Check for update",
+ "Allow": "Allow",
+ "Cannot add any more widgets": "Cannot add any more widgets",
+ "Changes colour scheme of current room": "Changes color scheme of current room",
+ "Define the power level of a user": "Define the power level of a user",
+ "Do you want to load widget from URL:": "Do you want to load widget from URL:",
+ "Enable automatic language detection for syntax highlighting": "Enable automatic language detection for syntax highlighting",
+ "Hide join/leave messages (invites/kicks/bans unaffected)": "Hide join/leave messages (invites/kicks/bans unaffected)",
+ "Hide avatar and display name changes": "Hide avatar and display name changes",
+ "Integrations Error": "Integrations Error",
+ "NOTE: Apps are not end-to-end encrypted": "NOTE: Apps are not end-to-end encrypted",
+ "Sets the room topic": "Sets the room topic",
+ "The maximum permitted number of widgets have already been added to this room.": "The maximum permitted number of widgets have already been added to this room.",
+ "To get started, please pick a username!": "To get started, please pick a username!",
+ "Unable to create widget.": "Unable to create widget.",
+ "Unbans user with given id": "Unbans user with given id",
+ "You are not in this room.": "You are not in this room.",
+ "You do not have permission to do that in this room.": "You do not have permission to do that in this room.",
+ "Autocomplete Delay (ms):": "Autocomplete Delay (ms):",
+ "Loading device info...": "Loading device info...",
+ "Message removed by %(userId)s": "Message removed by %(userId)s",
+ "Example": "Example",
+ "Create": "Create",
+ "Room creation failed": "Room creation failed",
+ "Pinned Messages": "Pinned Messages",
+ "Featured Rooms:": "Featured Rooms:",
+ "Featured Users:": "Featured Users:",
+ "Automatically replace plain text Emoji": "Automatically replace plain text Emoji",
+ "Failed to upload image": "Failed to upload image",
+ "Hide avatars in user and room mentions": "Hide avatars in user and room mentions",
+ "%(widgetName)s widget added by %(senderName)s": "%(widgetName)s widget added by %(senderName)s",
+ "%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s widget removed by %(senderName)s",
+ "Robot check is currently unavailable on desktop - please use a web browser": "Robot check is currently unavailable on desktop - please use a web browser",
+ "Verifies a user, device, and pubkey tuple": "Verifies a user, device, and pubkey tuple",
+ "%(senderName)s changed the pinned messages for the room.": "%(senderName)s changed the pinned messages for the room."
}
diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json
index 91cd6c3450..363b61faad 100644
--- a/src/i18n/strings/eo.json
+++ b/src/i18n/strings/eo.json
@@ -1,15 +1,43 @@
{
- "ar-ae": "la araba (Unuiĝintaj Arabaj Emirlandoj)",
- "ar-bh": "la araba (Bareijno)",
- "ar-dz": "la araba (Alĝerio)",
- "ar-eg": "la araba (Egiptio)",
- "ar-iq": "la araba (Irako)",
- "ar-jo": "la araba (Jordanio)",
- "ar-kw": "la araba (Kuvayto)",
- "ar-lb": "la araba (Libano)",
- "ar-ly": "la araba (Libio)",
- "ar-ma": "la araba (Maroko)",
- "ar-om": "la araba (Omano)",
- "ar-qa": "la araba (Kataro)",
- "ar-sa": "la araba (Sauda Arabio)"
+ "This email address is already in use": "Tiu ĉi retpoŝtadreso jam estas uzata",
+ "This phone number is already in use": "Tiu ĉi telefona numero jam estas uzata",
+ "Failed to verify email address: make sure you clicked the link in the email": "Kontrolo de via retpoŝtadreso malsukcesis; certigu, ke vi alklakis la ligilon en la retletero",
+ "Call Timeout": "Voka Tempolimo",
+ "The remote side failed to pick up": "Kunvokonto malsukcesis respondi",
+ "Unable to capture screen": "Ekrano ne registreblas",
+ "You cannot place a call with yourself.": "Vi ne povas voki vin mem.",
+ "Warning!": "Averto!",
+ "Sign in with CAS": "Saluti per CAS",
+ "Sign in with": "Saluti per",
+ "Sign in": "Saluti",
+ "For security, this session has been signed out. Please sign in again.": "Pro sekurecaj kialoj, la seanco finiĝis. Bonvolu resaluti.",
+ "Upload Failed": "Alŝuto malsukcesis",
+ "Sun": "Dim",
+ "Mon": "Lun",
+ "Tue": "Mar",
+ "Wed": "Mer",
+ "Thu": "Ĵaŭ",
+ "Fri": "Ven",
+ "Sat": "Sab",
+ "Jan": "Jan",
+ "Feb": "Feb",
+ "Mar": "Mar",
+ "Apr": "Apr",
+ "May": "Maj",
+ "Jun": "Jun",
+ "Jul": "Jul",
+ "Aug": "Aŭg",
+ "Sep": "Sep",
+ "Oct": "Okt",
+ "Nov": "Nov",
+ "Dec": "Dec",
+ "PM": "ptm",
+ "AM": "atm",
+ "%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
+ "%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(time)s",
+ "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(fullYear)s %(monthName)s %(day)s %(time)s",
+ "Who would you like to add to this community?": "Kiun vi volas aldoni al tiu ĉi komunumo?",
+ "Invite new community members": "Invitu novajn komunumanojn",
+ "Name or matrix ID": "Nomo aŭ Matrix-identigilo",
+ "Invite to Community": "Inviti al komunumo"
}
diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json
index 96a986decc..261700a916 100644
--- a/src/i18n/strings/es.json
+++ b/src/i18n/strings/es.json
@@ -1,126 +1,5 @@
{
- "af": "Afrikáans",
- "ar-ae": "Árabe (Emiratos Árabes Unidos)",
- "ar-bh": "Árabe (Baréin)",
- "ar-dz": "Árabe (Argelia)",
- "ar-eg": "Árabe (Egipto)",
- "ar-iq": "Árabe (Irak)",
- "ar-jo": "Árabe (Jordania)",
- "ar-kw": "Árabe (Kuwait)",
- "ar-lb": "Árabe (Líbano)",
- "ar-ly": "Árabe (Libia)",
- "ar-ma": "Árabe (Marruecos)",
- "ar-om": "Árabe (Omán)",
- "ar-qa": "Árabe (Catar)",
- "ar-sa": "Árabe (Arabia Saudita)",
- "ar-sy": "Árabe (Siria)",
- "ar-tn": "Árabe (Túnez)",
- "ar-ye": "Árabe (Yemen)",
- "be": "Bielorrusia",
- "bg": "Bulgaria",
- "ca": "Catalán",
- "cs": "Checo",
- "da": "Danés",
- "de-at": "Alemán (Austria)",
- "de-ch": "Alemán (Suiza)",
- "de": "Alemán",
- "de-li": "Alemán (Liechtenstein)",
- "de-lu": "Alemán (Luxemburgo)",
- "el": "Griego",
- "en-au": "Inglés (Australia)",
- "en-bz": "Inglés (Belice)",
- "en-ca": "Inglés (Canadá)",
- "en": "Inglés",
- "en-gb": "Inglés (Reino Unido)",
- "en-ie": "Inglés (Irlanda)",
- "en-jm": "Inglés (Jamaica)",
- "en-nz": "Inglés (Nueva Zelanda)",
- "en-tt": "Inglés (Trinidad y Tobago)",
- "en-us": "Inglés (Estados Unidos)",
- "en-za": "Inglés (Sudáfrica)",
- "es-ar": "Español (Argentina)",
- "es-bo": "Español (Bolivia)",
- "es-cl": "Español (Chile)",
- "es-co": "Español (Colombia)",
- "es-cr": "Español (Costa Rica)",
- "es-do": "Español (República Dominicana)",
- "es-ec": "Español (Ecuador)",
- "es-gt": "Español (Guatemala)",
- "es-hn": "Español (Honduras)",
- "es-mx": "Español (México)",
- "es-ni": "Español (Nicaragua)",
- "es-pa": "Español (Panamá)",
- "es-pe": "Español (Perú)",
- "es-pr": "Español (Puerto Rico)",
- "es-py": "Español (Paraguay)",
- "es": "Español (España)",
- "es-sv": "Español (El Salvador)",
- "es-uy": "Español (Uruguay)",
- "es-ve": "Español (Venezuela)",
- "et": "Estonio",
- "eu": "Vasco",
- "fa": "Persa",
- "fi": "Finés",
- "fo": "Feroés",
- "fr-be": "Francés (Bélgica)",
- "fr-ca": "Francés (Canadá)",
- "fr-ch": "Francés (Suiza)",
- "fr": "Francés",
- "fr-lu": "Francés (Luxemburgo)",
- "ga": "Irlandés",
- "gd": "Gaélico (Escocia)",
- "he": "Hebreo",
- "hi": "Hindi",
- "hr": "Croata",
- "hu": "Húngaro",
- "id": "Indonesio",
- "is": "Islandés",
- "it-ch": "Italiano (Suiza)",
- "it": "Italiano",
- "ja": "Japonés",
- "ji": "Yidis",
- "ko": "Coreano",
- "lt": "Lituano",
- "lv": "Letón",
- "mk": "Macedonio",
- "ms": "Malayo",
- "mt": "Maltés",
- "nl-be": "Holandés (Bélgica)",
- "nl": "Holandés",
- "no": "Noruego",
- "pl": "Polaco",
- "pt-br": "Portugués (Brasil)",
- "pt": "Portugués",
- "rm": "Retorrománico",
- "ro-mo": "Rumano (República de Moldavia)",
- "ro": "Rumano",
- "ru-mo": "Ruso (República de Moldavia)",
- "ru": "Ruso",
- "sb": "Sorbio",
- "sk": "Eslovaco",
- "sl": "Esloveno",
- "sq": "Albanés",
- "sr": "Serbio",
- "sv-fi": "Sueco (Finlandia)",
- "sv": "Sueco",
- "sx": "Sotho",
- "sz": "Sami (Lapón)",
- "th": "Tailandés",
- "tn": "Setsuana",
- "tr": "Turco",
- "ts": "Songa",
- "uk": "Ucraniano",
- "ur": "Urdú",
- "ve": "Venda",
- "vi": "Vietnamita",
- "xh": "Josa",
- "zh-cn": "Chino Mandarín",
- "zh-hk": "Chino (Hong Kong RAE)",
- "zh-sg": "Chino (Singapur)",
- "zh-tw": "Chino (Taiwanés)",
- "zu": "Zulú",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Un mensaje de texto ha sido enviado a +%(msisdn)s. Por favor ingrese el código de verificación que lo contiene",
- "accept": "Aceptar",
"%(targetName)s accepted an invitation.": "%(targetName)s ha aceptado una invitación.",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s ha aceptado la invitación para %(displayName)s.",
"Account": "Cuenta",
@@ -132,31 +11,21 @@
"Algorithm": "Algoritmo",
"Always show message timestamps": "Siempre mostrar la hora del mensaje",
"Authentication": "Autenticación",
- "all room members": "Todos los miembros de la sala",
- "all room members, from the point they are invited": "Todos los miembros de la sala, desde el momento en que son invitados",
- "all room members, from the point they joined": "Todos los miembros de la sala, desde el momento en que se han unido",
- "an address": "una dirección",
- "and": "y",
"%(items)s and %(remaining)s others": "%(items)s y %(remaining)s otros",
"%(items)s and one other": "%(items)s y otro",
"%(items)s and %(lastItem)s": "%(items)s y %(lastItem)s",
- "and %(count)s others...": {
- "other": "y %(count)s otros...",
- "one": "y otro..."
- },
+ "and %(count)s others...|other": "y %(count)s otros...",
+ "and %(count)s others...|one": "y otro...",
"%(names)s and %(lastPerson)s are typing": "%(names)s y %(lastPerson)s están escribiendo",
"%(names)s and one other are typing": "%(names)s y otro están escribiendo",
- "%(names)s and %(count)s others are typing": "%(names)s y %(count)s otros están escribiendo",
"An email has been sent to": "Un correo ha sido enviado a",
"A new password must be entered.": "Una nueva clave debe ser ingresada.",
"%(senderName)s answered the call.": "%(senderName)s atendió la llamada.",
- "anyone": "nadie",
"An error has occurred.": "Un error ha ocurrido.",
"Anyone who knows the room's link, apart from guests": "Cualquiera que sepa el enlace de la sala, salvo invitados",
"Anyone who knows the room's link, including guests": "Cualquiera que sepa del enlace de la sala, incluyendo los invitados",
"Are you sure?": "¿Estás seguro?",
"Are you sure you want to reject the invitation?": "¿Estás seguro que quieres rechazar la invitación?",
- "Are you sure you want upload the following files?": "¿Estás seguro que quieres subir los siguientes archivos?",
"Attachment": "Adjunto",
"Autoplay GIFs and videos": "Reproducir automáticamente GIFs y videos",
"%(senderName)s banned %(targetName)s.": "%(senderName)s ha bloqueado a %(targetName)s.",
@@ -164,10 +33,9 @@
"Banned users": "Usuarios bloqueados",
"Bans user with given id": "Bloquear usuario por ID",
"Blacklisted": "En lista negra",
- "Bug Report": "Reporte de error",
+ "Bug Report": "Reporte de fallo",
"Bulk Options": "Opciones masivas",
"Call Timeout": "Tiempo de espera de la llamada",
- "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "No se puede conectar con el servidor - Por favor verifique su conexión y asegúrese de que su certificado SSL del servidor sea confiable.",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "No se puede conectar al servidor via HTTP, cuando es necesario un enlace HTTPS en la barra de direcciones de tu navegador. Ya sea usando HTTPS o habilitando los scripts inseguros.",
"Can't load user settings": "No se puede cargar las configuraciones del usuario",
"Change Password": "Cambiar clave",
@@ -178,12 +46,10 @@
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s ha cambiado el tema de la sala a \"%(topic)s\".",
"Changes to who can read history will only apply to future messages in this room": "Cambios para quien pueda leer el historial solo serán aplicados a futuros mensajes en la sala",
"Changes your display nickname": "Cambia la visualización de tu apodo",
- "changing room on a RoomView is not supported": "cambiando la sala en un RoomView no esta soportado",
"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.": "El cambio de contraseña restablecerá actualmente todas las claves de cifrado de extremo a extremo de todos los dispositivos, haciendo que el historial de chat cifrado sea ilegible, a menos que primero exporte las claves de la habitación y vuelva a importarlas después. En el futuro esto será mejorado.",
"Claimed Ed25519 fingerprint key": "Clave Ed25519 es necesaria",
"Clear Cache and Reload": "Borrar caché y recargar",
"Clear Cache": "Borrar caché",
- "Click here": "Haz clic aquí",
"Click here to fix": "Haz clic aquí para arreglar",
"Click to mute audio": "Haz clic para silenciar audio",
"Click to mute video": "Haz clic para silenciar video",
@@ -208,17 +74,14 @@
"/ddg is not a command": "/ddg no es un comando",
"Deactivate Account": "Desactivar Cuenta",
"Deactivate my account": "Desactivar mi cuenta",
- "decline": "rechazar",
"Decrypt %(text)s": "Descifrar %(text)s",
"Decryption error": "Error al decifrar",
"Delete": "Eliminar",
- "demote": "degradar",
"Deops user with given id": "Deops usuario con ID dado",
"Default": "Por defecto",
"Device ID": "ID del dispositivo",
"Devices": "Dispositivos",
"Devices will not yet be able to decrypt history from before they joined the room": "Los dispositivos aun no serán capaces de descifrar el historial antes de haberse unido a la sala",
- "Direct Chat": "Conversación directa",
"Direct chats": "Conversaciones directas",
"Disable inline URL previews by default": "Desactivar previsualización de enlaces por defecto",
"Disinvite": "Deshacer invitación",
@@ -251,7 +114,6 @@
"Failed to delete device": "Falló al borrar el dispositivo",
"Failed to forget room %(errCode)s": "Falló al olvidar la sala %(errCode)s",
"Failed to join room": "Falló al unirse a la sala",
- "Failed to join the room": "Falló al unirse a la sala",
"Failed to kick": "Falló al expulsar",
"Failed to leave room": "Falló al dejar la sala",
"Failed to load timeline position": "Falló al cargar el historico",
@@ -271,7 +133,6 @@
"Failed to verify email address: make sure you clicked the link in the email": "Falló al verificar el correo electrónico: Asegúrese hacer clic en el enlace del correo",
"Failure to create room": "Fallo al crear la sala",
"Favourite": "Favorito",
- "favourite": "favorito",
"Favourites": "Favoritos",
"Fill screen": "Llenar pantalla",
"Filter room members": "Filtrar los miembros de la sala",
@@ -281,12 +142,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.": "Por seguridad, al cerrar la sesión borrará cualquier clave de encriptación de extremo a extremo en este navegador. Si quieres ser capaz de descifrar tu historial de conversación, para las futuras sesiones en Riot, por favor exporta las claves de la sala para protegerlas.",
"Found a bug?": "¿Encontraste un error?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s a %(toPowerLevel)s",
- "Guests can't set avatars. Please register.": "Invitados no puedes establecer avatares. Por favor regístrate.",
- "Guest users can't create new rooms. Please register to create room and start a chat.": "Usuarios invitados no pueden crear nuevas salas. Por favor regístrate para crear la sala y iniciar la conversación.",
- "Guest users can't upload files. Please register to upload.": "Usuarios invitados no puedes subir archivos. Por favor regístrate para subir tus archivos.",
- "Guests can't use labs features. Please register.": "Invitados no puedes usar las características en desarrollo. Por favor regístrate.",
"Guests cannot join this room even if explicitly invited.": "Invitados no pueden unirse a esta sala aun cuando han sido invitados explícitamente.",
- "had": "tuvo",
"Hangup": "Colgar",
"Hide read receipts": "Ocultar mensajes leídos",
"Hide Text Formatting Toolbar": "Ocultar barra de herramientas de formato de texto",
@@ -305,14 +161,11 @@
"Invite new room members": "Invitar nuevos miembros a la sala",
"Invites": "Invitar",
"Invites user with given id to current room": "Invitar a usuario con ID dado a esta sala",
- "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 alias": "'%(alias)s' no es un formato válido para un alias",
"%(displayName)s is typing": "%(displayName)s está escribiendo",
"Sign in with": "Quiero iniciar sesión con",
"Join Room": "Unirte a la sala",
- "joined and left": "unido y dejado",
- "joined": "unido",
"%(targetName)s joined the room.": "%(targetName)s se ha unido a la sala.",
"Joins room with given alias": "Unirse a la sala con el alias dado",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s ha expulsado a %(targetName)s.",
@@ -320,10 +173,7 @@
"Kicks user with given id": "Expulsar usuario con ID dado",
"Labs": "Laboratorios",
"Leave room": "Dejar sala",
- "left and rejoined": "dejado y reunido",
- "left": "dejado",
"%(targetName)s left the room.": "%(targetName)s ha dejado la sala.",
- "Level": "Nivel",
"Local addresses for this room:": "Direcciones locales para esta sala:",
"Logged in as:": "Sesión iniciada como:",
"Login as guest": "Iniciar sesión como invitado",
@@ -331,7 +181,7 @@
"Low priority": "Baja prioridad",
"Accept": "Aceptar",
"Add": "Añadir",
- "Admin tools": "Herramientas de administración",
+ "Admin Tools": "Herramientas de administración",
"VoIP": "Voz IP",
"No Microphones detected": "No se ha detectado micrófono",
"No Webcams detected": "No se ha detectado cámara",
@@ -343,8 +193,8 @@
"Anyone": "Cualquiera",
"Click here to join the discussion!": "¡Pulse aquí para unirse a la conversación!",
"Close": "Cerrar",
- "%(count)s new messages.one": "%(count)s mensaje nuevo",
- "%(count)s new messages.other": "%(count)s mensajes nuevos",
+ "%(count)s new messages|one": "%(count)s mensaje nuevo",
+ "%(count)s new messages|other": "%(count)s mensajes nuevos",
"Create a new chat or reuse an existing one": "Cree una nueva conversación o reutilice una existente",
"Custom": "Personalizado",
"Custom level": "Nivel personalizado",
@@ -365,7 +215,6 @@
"Error: Problem communicating with the given homeserver.": "Error: No es posible comunicar con el servidor indicado.",
"Export": "Exportar",
"Failed to fetch avatar URL": "Fallo al obtener la URL del avatar",
- "Failed to register as guest:": "Fallo al registrarse como invitado:",
"Failed to upload profile picture!": "¡Fallo al enviar la foto de perfil!",
"Home": "Inicio",
"Import": "Importar",
@@ -377,7 +226,11 @@
"Jump to first unread message.": "Ir al primer mensaje sin leer.",
"Last seen": "Visto por última vez",
"Level:": "Nivel:",
- "%(senderName)s made future room history visible to": "%(senderName)s ha configurado el historial de la sala visible para",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s ha configurado el historial de la sala visible para Todos los miembros de la sala, desde el momento en que son invitados.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s ha configurado el historial de la sala visible para Todos los miembros de la sala, desde el momento en que se han unido.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s ha configurado el historial de la sala visible para Todos los miembros de la sala.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s ha configurado el historial de la sala visible para nadie.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s ha configurado el historial de la sala visible para desconocido (%(visibility)s).",
"a room": "una sala",
"Something went wrong!": "¡Algo ha fallado!",
"were banned": "fueron expulsados",
@@ -400,7 +253,6 @@
"%(oneUser)schanged their avatar": "%(oneUser)s cambió su avatar",
"Please select the destination room for this message": "Por favor, seleccione la sala destino para este mensaje",
"Create new room": "Crear nueva sala",
- "Welcome page": "Página de bienvenida",
"Start chat": "Comenzar chat",
"New Password": "Nueva contraseña",
"Analytics": "Analíticas",
@@ -415,7 +267,6 @@
"You must join the room to see its files": "Debe unirse a la sala para ver los ficheros",
"Reject all %(invitedRooms)s invites": "Rechazar todas las invitaciones a %(invitedRooms)s",
"Start new chat": "Iniciar una nueva conversación",
- "Guest users can't invite users. Please register.": "Los invitados no pueden invitar a otros usuarios. Por favor, regístrese.",
"Failed to invite": "Fallo en la invitación",
"Failed to invite user": "No se pudo invitar al usuario",
"Failed to invite the following users to the %(roomName)s room:": "No se pudo invitar a los siguientes usuarios a la sala %(roomName)s:",
@@ -442,7 +293,6 @@
"Scroll to unread messages": "Ir al primer mensaje sin leer",
"Search": "Búsqueda",
"Search failed": "Falló la búsqueda",
- "Searching known users": "Buscando usuarios conocidos",
"Seen by %(userName)s at %(dateTime)s": "Visto por %(userName)s el %(dateTime)s",
"Send a message (unencrypted)": "Enviar un mensaje (sin cifrar)",
"Send an encrypted message": "Enviar un mensaje cifrado",
@@ -462,7 +312,6 @@
"Session ID": "ID de sesión",
"%(senderName)s set a profile picture.": "%(senderName)s puso una foto de perfil.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s cambió su nombre a %(displayName)s.",
- "Set": "Configurar",
"Settings": "Configuración",
"Show panel": "Mostrar panel",
"Show Text Formatting Toolbar": "Mostrar la barra de formato de texto",
@@ -480,8 +329,6 @@
"Start Chat": "Comenzar la conversación",
"Submit": "Enviar",
"Success": "Éxito",
- "tag as %(tagName)s": "etiquetar como %(tagName)s",
- "tag direct chat": "etiquetar la conversación directa",
"Tagged as: ": "Etiquetado como: ",
"The default role for new room members is": "El nivel por defecto para los nuevos miembros de esta sala es",
"The main address for this room is": "La dirección principal de esta sala es",
@@ -496,7 +343,6 @@
"Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "No se puede conectar al servidor - compruebe su conexión, asegúrese de que el certificado SSL del servidor es de confiaza, y compruebe que no hay extensiones del navegador bloqueando las peticiones.",
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s ha quitado el nombre de la sala.",
"Device key:": "Clave del dispositivo:",
- "Disable markdown formatting": "Desactivar el formato Markdown",
"Drop File Here": "Deje el fichero aquí",
"Guest access is disabled on this Home Server.": "El acceso de invitados está desactivado en este servidor.",
"Join as voice or video.": "Conecte con voz o vídeo.",
@@ -513,10 +359,9 @@
"Moderator": "Moderador",
"Must be viewing a room": "Debe estar viendo una sala",
"Mute": "Silenciar",
- "my Matrix ID": "Mi ID de Matrix",
+ "%(serverName)s Matrix ID": "%(serverName)s ID de Matrix",
"Name": "Nombre",
"Never send encrypted messages to unverified devices from this device": "No enviar nunca mensajes cifrados, desde este dispositivo, a dispositivos sin verificar",
- "Never send encrypted messages to unverified devices in this room": "No enviar nunca mensajes cifrados a dispositivos no verificados, en esta sala",
"Never send encrypted messages to unverified devices in this room from this device": "No enviar nunca mensajes cifrados a dispositivos no verificados, en esta sala, desde este dispositivo",
"New address (e.g. #foo:%(localDomain)s)": "Nueva dirección (ej: #foo:%(localDomain)s)",
"New password": "Nueva contraseña",
@@ -548,9 +393,7 @@
"Phone": "Teléfono",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s ha hecho una llamada de tipo %(callType)s.",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Por favor, compruebe su e-mail y pulse el enlace que contiene. Una vez esté hecho, pulse continuar.",
- "Please Register": "Por favor, regístrese",
"Power level must be positive integer.": "El nivel debe ser un entero positivo.",
- "Press": "Pulse",
"Privacy warning": "Alerta de privacidad",
"Private Chat": "Conversación privada",
"Privileged Users": "Usuarios con privilegios",
@@ -561,7 +404,6 @@
"Revoke Moderator": "Eliminar Moderador",
"Refer a friend to Riot:": "Informar a un amigo sobre Riot:",
"Register": "Registrarse",
- "rejected": "rechazado",
"%(targetName)s rejected the invitation.": "%(targetName)s ha rechazado la invitación.",
"Reject invitation": "Rechazar invitación",
"Rejoin": "Volver a unirse",
@@ -574,7 +416,6 @@
"%(senderName)s requested a VoIP conference.": "%(senderName)s ha solicitado una conferencia Voz-IP.",
"Report it": "Informar",
"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.": "Reiniciar la contraseña también reiniciará las claves de cifrado extremo-a-extremo, haciendo ilegible el historial de las conversaciones, salvo que exporte previamente las claves de sala, y las importe posteriormente. Esto será mejorado en futuras versiones.",
- "restore": "restaurar",
"Results from DuckDuckGo": "Resultados desde DuckDuckGo",
"Return to app": "Volver a la aplicación",
"Return to login screen": "Volver a la pantalla de inicio de sesión",
@@ -586,7 +427,6 @@
"Server may be unavailable or overloaded": "El servidor podría estar saturado o desconectado",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Mostrar el tiempo en formato 12h (am/pm)",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "La clave de firma que usted ha proporcionado coincide con la recibida del dispositivo %(deviceId)s de %(userId)s. Dispositivo verificado.",
- "This action cannot be performed by a guest user. Please register to be able to do this.": "Esto no puede ser hecho por un invitado. Por favor, regístrese para poder hacerlo.",
"This email address is already in use": "Dirección e-mail en uso",
"This email address was not found": "Dirección e-mail no encontrada",
"%(actionVerb)s this person?": "¿%(actionVerb)s a esta persona?",
@@ -596,7 +436,6 @@
"The remote side failed to pick up": "El sitio remoto falló al sincronizar",
"This Home Server does not support login using email address.": "Este servidor no permite identificarse con direcciones e-mail.",
"This invitation was sent to an email address which is not associated with this account:": "Se envió la invitación a un e-mail no asociado con esta cuenta:",
- "There was a problem logging in.": "Hubo un problema identificándose.",
"This room has no local addresses": "Esta sala no tiene direcciones locales",
"This room is not recognised.": "Esta sala no se reconoce.",
"These are experimental features that may break in unexpected ways": "Estas son funcionalidades experimentales, podrían fallar de formas imprevistas",
@@ -607,17 +446,9 @@
"This room": "Esta sala",
"This room is not accessible by remote Matrix servers": "Esta sala no es accesible por otros servidores Matrix",
"This room's internal ID is": "El ID interno de la sala es",
- "times": "veces",
- "To ban users": "Expulsar usuarios",
- "to browse the directory": "navegar el directorio",
- "To configure the room": "Configurar la sala",
"to demote": "degradar",
"to favourite": "marcar como favorito",
- "To invite users into the room": "Invitar usuarios a la sala",
- "To kick users": "Patear usuarios",
"To link to a room it must have an address.": "Para enlazar una sala, debe tener una dirección.",
- "to make a room or": "hacer una sala o",
- "To remove other users' messages": "Eliminar los mensajes de otros usuarios",
"To reset your password, enter the email address linked to your account": "Para reiniciar su contraseña, introduzca el e-mail asociado a su cuenta",
"to restore": "restaurar",
"Cancel": "Cancelar",
@@ -626,14 +457,6 @@
"Room directory": "Directorio de salas",
"Custom Server Options": "Opciones de Servidor Personalizado",
"unknown error code": "Código de error desconocido",
- "Sunday": "Domingo",
- "Monday": "Lunes",
- "Tuesday": "Martes",
- "Wednesday": "Miércoles",
- "Thursday": "Jueves",
- "Friday": "Viernes",
- "Saturday": "Sábado",
- "New Composer & Autocomplete": "Nuevo compositor & Autocompletar",
"Start verification": "Comenzar la verificación",
"Skip": "Saltar",
"To return to your account in future you need to set a password": "Para volver a usar su cuenta en el futuro es necesario que establezca una contraseña",
@@ -642,12 +465,7 @@
"Do you want to set an email address?": "¿Quieres poner una dirección de correo electrónico?",
"This will allow you to reset your password and receive notifications.": "Esto te permitirá reiniciar tu contraseña y recibir notificaciones.",
"Authentication check failed: incorrect password?": "La verificación de la autentificación ha fallado: ¿El password es el correcto?",
- "And %(count)s more...": "Y %(count)s más...",
"Press to start a chat with someone": "Pulsa para empezar a charlar con alguien",
- "To send events of type": "Para enviar eventos de tipo",
- "To send messages": "Para enviar mensajes",
- "to start a chat with someone": "para empezar a charlar con alguien",
- "to tag as %(tagName)s": "para etiquetar como %(tagName)s",
"to tag direct chat": "para etiquetar como charla directa",
"Add a widget": "Añadir widget",
"Allow": "Permitir",
@@ -659,8 +477,7 @@
"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've followed the link it contains, click below": "Cuando haya seguido el enlace que contiene, haga click debajo",
+ "Once you'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!",
@@ -672,7 +489,6 @@
"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",
@@ -687,12 +503,11 @@
"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",
+ "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",
@@ -736,5 +551,60 @@
"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 to make a room or to browse the directory": "¡Todavía no participa en ninguna sala! Pulsa para crear una sala o 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."
+ "You cannot place a call with yourself.": "No puede iniciar una llamada con usted mismo.",
+ "Cannot add any more widgets": "no es posible agregar mas widgets",
+ "Do you want to load widget from URL:": "desea cargar widget desde URL:",
+ "Integrations Error": "error de integracion",
+ "Publish this room to the public in %(domain)s's room directory?": "Desea publicar esta sala al publico en el directorio de sala de %(domain)s?",
+ "AM": "AM",
+ "PM": "PM",
+ "NOTE: Apps are not end-to-end encrypted": "NOTA: Las Apps no son cifradas de extremo a extremo",
+ "Revoke widget access": "Revocar acceso del widget",
+ "The maximum permitted number of widgets have already been added to this room.": "La cantidad máxima de widgets permitida ha sido alcanzada en esta sala.",
+ "To use it, just wait for autocomplete results to load and tab through them.": "Para usar, solo espere a que carguen los resultados de auto-completar y navegue entre ellos.",
+ "%(senderName)s unbanned %(targetName)s.": "%(senderName)s levanto la suspensión de %(targetName)s.",
+ "unencrypted": "no cifrado",
+ "Unmute": "desactivar el silencio",
+ "Unrecognised command:": "comando no reconocido:",
+ "Unrecognised room alias:": "alias de sala no reconocido:",
+ "uploaded a file": "cargo un archivo",
+ "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (nivel de permisos %(powerLevelNumber)s)",
+ "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!": "Atención: VERIFICACIÓN DE CLAVE FALLO\" La clave de firma para %(userId)s y el dispositivo %(deviceId)s es \"%(fprint)s\" la cual no concuerda con la clave provista por \"%(fingerprint)s\". Esto puede significar que sus comunicaciones están siendo interceptadas!",
+ "You cannot place VoIP calls in this browser.": "no puede realizar llamadas de voz en este navegador.",
+ "You do not have permission to post to this room": "no tiene permiso para publicar en esta sala",
+ "You have been banned from %(roomName)s by %(userName)s.": "Ha sido expulsado de %(roomName)s por %(userName)s.",
+ "You have been invited to join this room by %(inviterName)s": "Ha sido invitado a entrar a esta sala por %(inviterName)s",
+ "You have been kicked from %(roomName)s by %(userName)s.": "Ha sido removido de %(roomName)s por %(userName)s.",
+ "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Ha sido desconectado de todos los dispositivos y no continuara recibiendo notificaciones. Para volver a habilitar las notificaciones, vuelva a conectarse en cada dispositivo",
+ "You have disabled URL previews by default.": "Ha deshabilitado la vista previa de URL por defecto.",
+ "You have enabled URL previews by default.": "Ha habilitado vista previa de URL por defecto.",
+ "You have no visible notifications": "No tiene notificaciones visibles",
+ "You may wish to login with a different account, or add this email to this account.": "Puede ingresar con una cuenta diferente, o agregar este e-mail a esta cuenta.",
+ "You must register to use this functionality": "Usted debe ser un registrar para usar esta funcionalidad",
+ "You need to be able to invite users to do that.": "Usted debe ser capaz de invitar usuarios para hacer eso.",
+ "You need to be logged in.": "Necesita estar autenticado.",
+ "You need to enter a user name.": "Tiene que ingresar un nombre de usuario.",
+ "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Su e-mail parece no estar asociado con una Id Matrix en este Homeserver.",
+ "Your password has been reset": "Su contraseña ha sido restablecida",
+ "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Su contraseña a sido cambiada exitosamente. No recibirá notificaciones en otros dispositivos hasta que ingrese de nuevo en ellos",
+ "You seem to be in a call, are you sure you want to quit?": "Parece estar en medio de una llamada, ¿esta seguro que desea salir?",
+ "You seem to be uploading files, are you sure you want to quit?": "Parece estar cargando archivos, ¿esta seguro que desea salir?",
+ "You should not yet trust it to secure data": "No debería confiarle aun para asegurar su información",
+ "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "No podrá revertir este cambio ya que esta promoviendo al usuario para tener el mismo nivel de autoridad que usted.",
+ "Your home server does not support device management.": "Su servidor privado no suporta la gestión de dispositivos.",
+ "Sun": "Dom",
+ "Mon": "Lun",
+ "Tue": "Mar",
+ "Wed": "Mie",
+ "Thu": "Jue",
+ "Fri": "Vie",
+ "Sat": "Sab",
+ "Jan": "Ene",
+ "Feb": "Feb",
+ "Mar": "Mar",
+ "Apr": "Abr",
+ "May": "May",
+ "Jun": "Jun",
+ "Jul": "Jul",
+ "Aug": "August"
}
diff --git a/src/i18n/strings/eu.json b/src/i18n/strings/eu.json
index 308fa36900..486991d350 100644
--- a/src/i18n/strings/eu.json
+++ b/src/i18n/strings/eu.json
@@ -1,156 +1,24 @@
{
- "af": "Afrikaans",
- "ar-ae": "Arabiera (Arabiar Emirerri Batuak)",
- "ar-bh": "Arabiera (Bahrain)",
- "ar-dz": "Arabiera (Algeria)",
- "ar-eg": "Arabiera (Egipto)",
- "ar-iq": "Arabiera (Irak)",
- "ar-jo": "Arabiera (Jordania)",
- "ar-kw": "Arabiera (Kuwait)",
- "ar-lb": "Arabiera (Libano)",
- "ar-ly": "Arabiera (Libia)",
- "ar-ma": "Arabiera (Maroko)",
- "ar-om": "Arabiera (Oman)",
- "ar-qa": "Arabiera (Qatar)",
- "ar-sa": "Arabiera (Saudi Arabia)",
- "Cancel": "Utzi",
- "ar-sy": "Arabiera (Siria)",
- "ar-tn": "Arabiera (Tunisia)",
- "ar-ye": "Arabiera (Yemen)",
- "be": "Bielorrusiera",
- "bg": "Bulgariera",
- "ca": "Katalana",
- "cs": "Txekiera",
- "da": "Daniera",
- "de-at": "Alemana (Austria)",
- "de-ch": "Alemana (Suitza)",
- "de": "Alemana",
- "de-li": "Alemana (Liechtenstein)",
- "de-lu": "Alemana (Luxenburgo)",
- "el": "Greziera",
- "en-au": "Ingelesa (Australia)",
- "en-bz": "Ingelesa (Belize)",
- "en-ca": "Ingelesa (Kanada)",
- "en": "Ingelesa",
- "en-gb": "Ingelesa (Erresuma batua)",
- "en-ie": "Ingelesa (Irlanda)",
- "en-jm": "Ingelesa (Jamaika)",
- "en-nz": "Ingelesa (Zeelanda Berria)",
- "en-tt": "Ingelesa (Trinidad)",
- "en-us": "Ingelesa (Estatu Batuak)",
- "en-za": "Ingelesa (Hego Afrika)",
- "es-ar": "Espainiera (Argentina)",
- "es-bo": "Espainiera (Bolivia)",
- "es-cl": "Espainiera (Txile)",
- "es-co": "Espainiera (Kolonbia)",
- "es-cr": "Espainiera (Costa Rica)",
- "es-do": "Espainiera (Dominikar Errepublika)",
- "es-ec": "Espainiera (Ekuador)",
- "es-gt": "Espainiera (Guatemala)",
- "es-hn": "Espainiera (Honduras)",
- "es-mx": "Espainiera (Mexiko)",
- "es-ni": "Espainiera (Nikaragua)",
- "es-pa": "Espainiera (Panama)",
- "es-pe": "Espainiera (Peru)",
- "es-pr": "Espainiera (Puerto Rico)",
- "es-py": "Espainiera (Paraguay)",
- "es": "Espainiera (Espainia)",
- "es-sv": "Espainiera (El Salvador)",
- "es-uy": "Espainiera (Uruguai)",
- "es-ve": "Espainiera (Venezuela)",
- "et": "Estoniera",
- "eu": "Euskara",
- "fa": "Farsiera",
- "fi": "Finlandiera",
- "fo": "Faroera",
- "fr-be": "Frantsesa (Belgika)",
- "fr-ca": "Frantsesa (Kanada)",
- "fr-ch": "Frantsesa (Suitza)",
- "fr": "Frantsesa",
- "fr-lu": "Frantsesa (Luxenburgo)",
- "ga": "Irlandera",
- "gd": "Gaelikoa (Eskozia)",
- "he": "Hebreera",
- "hi": "Hindi",
- "hr": "Kroaziera",
- "hu": "Hungariera",
- "id": "Indonesiera",
- "is": "Islandiera",
- "it-ch": "Italiera (Suitza)",
- "it": "Italiera",
- "ja": "Japoniera",
- "ji": "Yiddish",
- "ko": "Korearra",
- "lt": "Lituaniera",
- "lv": "Letoniera",
- "mk": "Mazedoniera (FYROM)",
- "ms": "Malaysiera",
- "mt": "Maltera",
- "nl-be": "Nederlandera (Belgika)",
- "nl": "Nederlandera",
- "no": "Norvegiera",
- "pl": "Poloniera",
- "pt-br": "Brasilgo portugalera",
- "pt": "Portugalera",
- "rm": "Erretorromaniera",
- "ro-mo": "Errumaniera (Moldavia)",
- "ro": "Errumaniera",
- "ru-mo": "Errusiera (Moldavia)",
- "ru": "Errusiera",
- "sb": "Sorbiera",
- "sk": "Eslovakiera",
- "sl": "Esloveniera",
- "sq": "Albaniera",
- "sr": "Serbiera",
- "sv-fi": "Suediera (Finlandia)",
- "sv": "Suediera",
- "sx": "Sutu",
- "sz": "Sami (Laponiera)",
- "th": "Thailandiera",
- "tn": "Tswanera",
- "tr": "Turkiera",
- "ts": "Tsonga",
- "uk": "Ukrainera",
- "ur": "Urdu",
- "ve": "Vendera",
- "vi": "Vietnamera",
- "xh": "Xhosera",
- "zh-cn": "Txinera (PRC)",
- "zh-hk": "Txinera (Hong Kong)",
- "zh-sg": "Txinera (Singapur)",
- "zh-tw": "Txinera (Taiwan)",
- "zu": "Zulu",
"a room": "gela bat",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Mezu bat bidali da +%(msisdn)s zenbakira. Sartu hemen mezuko egiaztaketa kodea",
"Accept": "Onartu",
"%(targetName)s accepted an invitation.": "%(targetName)s erabiltzaileak gonbidapena onartu du.",
"Close": "Itxi",
"Create new room": "Sortu gela berria",
- "Welcome page": "Ongi etorri orria",
"Continue": "Jarraitu",
- "Direct Chat": "Txat zuzena",
"Drop here %(toAction)s": "Jaregin hona %(toAction)s",
"Error": "Errorea",
"Failed to change password. Is your password correct?": "Pasahitza aldatzean huts egin du. Zuzena da pasahitza?",
"Failed to forget room %(errCode)s": "Huts egin du %(errCode)s gela ahaztean",
- "Failed to join the room": "Huts egin du gelara elkartzean",
"Favourite": "Gogokoa",
"Mute": "Mututu",
"Notifications": "Jakinarazpenak",
"OK": "Ados",
"Operation failed": "Eragiketak huts egin du",
- "Please Register": "Erregistratu",
"Remove": "Kendu",
"Search": "Bilatu",
"Settings": "Ezarpenak",
"unknown error code": "errore kode ezezaguna",
- "Monday": "Astelehena",
- "Tuesday": "Asteartea",
- "Wednesday": "Asteazkena",
- "Thursday": "Osteguna",
- "Friday": "Ostirala",
- "Saturday": "Larunbata",
- "Sunday": "Igandea",
"Room directory": "Gelen direktorioa",
"Start chat": "Hasi txata",
"Custom Server Options": "Zerbitzari pertsonalizatuaren aukerak",
@@ -162,8 +30,6 @@
"Delete": "Ezabatu",
"Active call": "Dei aktiboa",
"Conference calls are not supported in encrypted rooms": "Konferentzia deiak ez daude onartuta zifratutako geletan",
- "or": "edo",
- "and": "eta",
"Sign out": "Amaitu saioa",
"Home": "Hasiera",
"Favourites": "Gogokoak",
@@ -212,7 +78,6 @@
"Hide read receipts": "Ezkutatu irakurtze-agiria",
"Don't send typing notifications": "Ez bidali idatzi bitarteko jakinarazpenak",
"Always show message timestamps": "Erakutsi beti mezuen denbora-zigilua",
- "Disable markdown formatting": "Desgaitu markdown formatua",
"Name": "Izena",
"Device Name": "Gailuaren izena",
"Last seen": "Azkenekoz ikusia",
@@ -224,7 +89,6 @@
"This email address is already in use": "E-mail helbide hau erabilita dago",
"This phone number is already in use": "Telefono zenbaki hau erabilita dago",
"Topic": "Gaia",
- "favourite": "gogokoa",
"none": "bat ere ez",
"Who can read history?": "Nork irakurri dezake historiala?",
"Who can access this room?": "Nor sartu daiteke gelara?",
@@ -274,7 +138,6 @@
"Success": "Arrakasta",
"For security, this session has been signed out. Please sign in again.": "Segurtasunagatik saio hau amaitu da. Hasi saioa berriro.",
"Found a bug?": "Akats bat aurkitu duzu?",
- "Guests can't use labs features. Please register.": "Bisitariek ezin dituzte laborategiko ezaugarriak erabili. Erregistratu.",
"Guests cannot join this room even if explicitly invited.": "Bisitariak ezin dira gela honetara elkartu ez bazaie zuzenean gonbidatu.",
"Hangup": "Eseki",
"Homeserver is": "Hasiera zerbitzaria:",
@@ -288,8 +151,7 @@
"Add": "Gehitu",
"Add a topic": "Gehitu gai bat",
"Admin": "Kudeatzailea",
- "Admin tools": "Kudeaketa tresnak",
- "And %(count)s more...": "Eta %(count)s gehiago...",
+ "Admin Tools": "Kudeaketa tresnak",
"VoIP": "VoIP",
"Missing Media Permissions, click here to request.": "Media baimenak falta dira, egin klik eskatzeko.",
"No Microphones detected": "Ez da mikrofonorik atzeman",
@@ -301,15 +163,9 @@
"Camera": "Kamera",
"Hide removed messages": "Ezkutatu kendutako mezuak",
"Alias (optional)": "Ezizena (aukerazkoa)",
- "all room members": "gelako kide guztiak",
- "all room members, from the point they are invited": "gelako kide guztiak, gonbidapena egiten zaienetik",
- "all room members, from the point they joined": "gelako kide guztiak, elkartzen direnetik",
- "and one other...": "eta beste bat...",
"%(names)s and %(lastPerson)s are typing": "%(names)s eta %(lastPerson)s idazten ari dira",
"%(names)s and one other are typing": "%(names)s eta beste inor idazten ari dira",
- "%(names)s and %(count)s others are typing": "%(names)s eta beste %(count)s idazten ari dira",
"An email has been sent to": "E-mail bat bidali da hona:",
- "anyone": "edonor",
"An error has occurred.": "Errore bat gertatu da.",
"Are you sure?": "Ziur zaude?",
"Are you sure you want to leave the room '%(roomName)s'?": "Ziur '%(roomName)s' gela utzi nahi duzula?",
@@ -337,8 +193,8 @@
"Confirm password": "Berretsi pasahitza",
"Conference calls are not supported in this client": "Bezero honek ez ditu konferentzia deiak onartzen",
"Could not connect to the integration server": "Ezin izan da integrazio zerbitzarira konektatu",
- "%(count)s new messages.one": "mezu berri %(count)s",
- "%(count)s new messages.other": "%(count)s mezu berri",
+ "%(count)s new messages|one": "mezu berri %(count)s",
+ "%(count)s new messages|other": "%(count)s mezu berri",
"Create a new chat or reuse an existing one": "Sortu txat berria edo berrerabili aurreko bat",
"Create an account": "Sortu kontua",
"Create Room": "Sortu gela",
@@ -350,7 +206,6 @@
"Deactivate my account": "Desaktibatu nire kontua",
"Decline": "Ukatu",
"Decrypt %(text)s": "Deszifratu %(text)s",
- "demote": "Jaitsi maila",
"Default": "Lehenetsia",
"Device already verified!": "Gailua egiaztatuta dago!",
"Device ID:": "Gailuaren IDa:",
@@ -364,13 +219,12 @@
"Drop File Here": "Jaregin fitxategia hona",
"%(items)s and one other": "%(items)s eta beste bat",
"%(items)s and %(lastItem)s": "%(items)s eta %(lastItem)s",
- "and %(overflowCount)s others...": "eta beste %(overflowCount)s...",
"%(senderName)s answered the call.": "%(senderName)s erabiltzaileak deia erantzun du.",
"Can't load user settings": "Ezin izan dira erabiltzailearen ezarpenak kargatu",
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s erabiltzaileak gelaren izena kendu du.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s erabiltzaileak gaia aldatu du beste honetara: \"%(topic)s\".",
"Changes to who can read history will only apply to future messages in this room": "Historiala irakurtzeko baimenen aldaketak gela honetara hemendik aurrera heldutako mezuei aplikatuko zaizkie",
- "Clear Cache and Reload": "Garbitu cache eta birkargatu",
+ "Clear Cache and Reload": "Garbitu cachea eta birkargatu",
"Devices will not yet be able to decrypt history from before they joined the room": "Gailuek ezin izango dute taldera elkartu aurretiko historiala deszifratu",
"Disable inline URL previews by default": "Desgaitu URLen aurrebista lehenetsita",
"Disinvite": "Kendu gonbidapena",
@@ -402,7 +256,6 @@
"Failed to load timeline position": "Huts egin du denbora-lerroko puntua kargatzean",
"Failed to lookup current room": "Huts egin du uneko gela bilatzean",
"Failed to mute user": "Huts egin du erabiltzailea mututzean",
- "Failed to register as guest:": "Huts egin du bisitari gisa erregistratzean:",
"Failed to reject invite": "Huts egin du gonbidapena baztertzean",
"Failed to reject invitation": "Huts egin du gonbidapena baztertzean",
"Failed to save settings": "Huts egin du ezarpenak gordetzean",
@@ -421,9 +274,6 @@
"Forgot your password?": "Pasahitza ahaztu duzu?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s %(fromPowerLevel)s mailatik %(toPowerLevel)s mailara",
"Guest access is disabled on this Home Server.": "Bisitarien sarbidea desgaituta dago hasiera zerbitzari honetan.",
- "Guests can't set avatars. Please register.": "Bisitariek ezin dituzte abatarrak ezarri. Erregistratu zaitez.",
- "Guest users can't create new rooms. Please register to create room and start a chat.": "Bisitariek ezin dituzte gela berriak sortu. Erregistratu gela sortu eta txat bat hasteko.",
- "Guest users can't upload files. Please register to upload.": "Bisitariek ezin dituzte fitxategiak igo. Erregistratu igotzeko.",
"Hide Text Formatting Toolbar": "Ezkutatu testu-formatuaren tresna-barra",
"Incoming call from %(name)s": "%(name)s erabiltzailearen deia jasotzen",
"Incoming video call from %(name)s": "%(name)s erabiltzailearen bideo deia jasotzen",
@@ -436,7 +286,6 @@
"%(senderName)s changed their profile picture.": "%(senderName)s erabiltzaileak bere profileko argazkia aldatu du.",
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s erabiltzaileak %(powerLevelDiffText)s erabiltzailearen botere maila aldatu du.",
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s erabiltzaileak gelaren izena aldatu du, orain %(roomName)s da.",
- "changing room on a RoomView is not supported": "ez da onartzen gela ikuspegi batean gelaz aldatzea",
"Drop here to tag %(section)s": "Jaregin hona %(section)s atalari etiketa jartzeko",
"Incoming voice call from %(name)s": "%(name)s erabiltzailearen deia jasotzen",
"Incorrect username and/or password.": "Erabiltzaile-izen edo pasahitz okerra.",
@@ -453,21 +302,21 @@
"%(displayName)s is typing": "%(displayName)s idazten ari da",
"Sign in with": "Hasi saioa honekin:",
"Join as voice or video.": "Elkartu ahotsa edo bideoa erabiliz.",
- "joined and left": "elkartu eta atera da",
- "joined": "elkartuta",
"%(targetName)s joined the room.": "%(targetName)s erabiltzailea gelara elkartu da.",
"Joins room with given alias": "Gelara emandako ezizenarekin elkartu da",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s erabiltzaileak %(targetName)s kanporatu du.",
"Kick": "Kanporatu",
"Kicks user with given id": "Kanporatu emandako ID-a duen erabiltzailea",
- "left and rejoined": "atera eta berriro elkartu da",
- "left": "atera da",
"%(targetName)s left the room.": "%(targetName)s erabiltzailea gelatik atera da.",
"Level:": "Maila:",
"Local addresses for this room:": "Gela honen tokiko helbideak:",
"Logged in as:": "Saioa hasteko erabiltzailea:",
"Login as guest": "Hasi saioa bisitari gisa",
- "%(senderName)s made future room history visible to": "%(senderName)s erabiltzaileak etorkizuneko gelaren historiala ikusgai jarri du hauentzat:",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s erabiltzaileak etorkizuneko gelaren historiala ikusgai jarri du hauentzat gelako kide guztiak, gonbidapena egiten zaienetik.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s erabiltzaileak etorkizuneko gelaren historiala ikusgai jarri du hauentzat gelako kide guztiak, elkartzen direnetik.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s erabiltzaileak etorkizuneko gelaren historiala ikusgai jarri du hauentzat gelako kide guztiak.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s erabiltzaileak etorkizuneko gelaren historiala ikusgai jarri du hauentzat edonor.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s erabiltzaileak etorkizuneko gelaren historiala ikusgai jarri du hauentzat ezezaguna (%(visibility)s).",
"Manage Integrations": "Kudeatu interakzioak",
"Markdown is disabled": "Markdown desgaituta dago",
"Markdown is enabled": "Markdown gaituta dago",
@@ -477,11 +326,8 @@
"Missing room_id in request": "Gelaren ID-a falta da eskaeran",
"Missing user_id in request": "Erabiltzailearen ID-a falta da eskaeran",
"Mobile phone number": "Mugikorraren telefono zenbakia",
- "my Matrix ID": "Nire Matrix ID-a",
- "Never send encrypted messages to unverified devices in this room": "Ez bidali inoiz zifratutako mezuak egiaztatu gabeko gailuetara gela honetan",
"Never send encrypted messages to unverified devices in this room from this device": "Ez bidali inoiz zifratutako mezuak egiaztatu gabeko gailuetara gela honetan gailu honetatik",
"New address (e.g. #foo:%(localDomain)s)": "Helbide berria (adib. #foo:%(localDomain)s)",
- "New Composer & Autocomplete": "Konposatzaile berria eta osatze automatikoa",
"New passwords don't match": "Pasahitz berriak ez datoz bat",
"New passwords must match each other.": "Pasahitz berriak berdinak izan behar dira.",
"not set": "ezarri gabe",
@@ -495,7 +341,7 @@
"No users have specific privileges in this room": "Ez dago gela honetan baimen zehatzik duen erabiltzailerik",
"olm version:": "olm bertsioa:",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "Behin gela batean zifratzea gaituta ezin da gero desgaitu (oraingoz)",
- "Once you've followed the link it contains, click below": "Behin dakarren esteka jarraitu duzula, egin klik azpian",
+ "Once you've followed the link it contains, click below": "Behin dakarren esteka jarraitu duzula, egin klik azpian",
"Otherwise, click here to send a bug report.": "Bestela, bidali arazte-txosten bat.",
"Server may be unavailable, overloaded, or you hit a bug.": "Agian zerbitzaria ez dago eskuragarri, edo gainezka dago, edo akats bat aurkitu duzu.",
"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.": "Oraingoz pasahitza aldatzeak gailu guztietako muturretik muturrerako zifratze-gakoak berrezarriko ditu, eta ezin izango dituzu zifratutako txatetako historialak irakurri ez badituzu aurretik zure gelako gakoak esportatzen eta aldaketa eta gero berriro inportatzen. Etorkizunean hau hobetuko da.",
@@ -504,7 +350,6 @@
"Permissions": "Baimenak",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s erabiltzaileak %(callType)s dei bat hasi du.",
"Power level must be positive integer.": "Botere maila osoko zenbaki positibo bat izan behar da.",
- "Press": "Sakatu",
"Press to start a chat with someone": "Sakatu norbaitekin txat bat hasteko",
"Privacy warning": "Pribatutasun abisua",
"Private Chat": "Txat pribatua",
@@ -515,7 +360,6 @@
"Reason: %(reasonText)s": "Arrazoia: %(reasonText)s",
"Revoke Moderator": "Kendu moderatzaile baimena",
"Refer a friend to Riot:": "Aipatu Riot lagun bati:",
- "rejected": "baztertua",
"%(targetName)s rejected the invitation.": "%(targetName)s erabiltzaileak gonbidapena baztertu du.",
"Reject invitation": "Baztertu gonbidapena",
"%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)s erabiltzailek bere gonbidapenak baztertu dituzte %(repeats)s aldiz",
@@ -530,10 +374,9 @@
"%(senderName)s removed their profile picture.": "%(senderName)s erabiltzaileak bere profileko argazkia kendu du.",
"Remove %(threePid)s?": "Kendu %(threePid)s?",
"%(senderName)s requested a VoIP conference.": "%(senderName)s erabiltzaileak VoIP konferentzia bat eskatu du.",
- "Report it": "Salatu",
+ "Report it": "Eman berri",
"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.": "Oraingoz pasahitza aldatzeak gailu guztietako muturretik muturrerako zifratze-gakoak berrezarriko ditu, eta ezin izango dituzu zifratutako txatetako historialak irakurri ez badituzu aurretik zure gelako gakoak esportatzen eta aldaketa eta gero berriro inportatzen.",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Une honetan egiaztatu gabeko gailuak blokeatzen ari zara, gailu hauetara mezuak bidali ahal izateko egiaztatu behar dituzu.",
- "restore": "berreskuratu",
"Results from DuckDuckGo": "DuckDuckGo bilatzaileko emaitzak",
"Return to app": "Itzuli aplikaziora",
"Riot does not have permission to send you notifications - please check your browser settings": "Riotek ez du zuri jakinarazpenak bidaltzeko baimenik, egiaztatu nabigatzailearen ezarpenak",
@@ -548,7 +391,6 @@
"Scroll to unread messages": "Korritu irakurri gabeko mezuetara",
"Search failed": "Bilaketak huts egin du",
"Searches DuckDuckGo for results": "DuckDuckGo-n bilatzen ditu emaitzak",
- "Searching known users": "Erabiltzaile ezagunen bila",
"Seen by %(userName)s at %(dateTime)s": "%(userName)s erabiltzaileak ikusia %(dateTime)s(e)an",
"Send a message (unencrypted)": "Bidali mezua (zifratu gabea)",
"Send an encrypted message": "Bidali mezu zifratua",
@@ -565,7 +407,6 @@
"Server unavailable, overloaded, or something else went wrong.": "Zerbitzaria eskuraezin edo gainezka egon daiteke edo zerbaitek huts egin du.",
"%(senderName)s set a profile picture.": "%(senderName)s erabiltzaileak profileko argazkia ezarri du.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s erabiltzaileak %(displayName)s ezarri du pantaila izen gisa.",
- "Set": "Ezarri",
"Show panel": "Erakutsi panela",
"Show Text Formatting Toolbar": "Erakutsi testu-formatuaren tresna-barra",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Erakutsi denbora-zigiluak 12 ordutako formatuan (adib. 2:30pm)",
@@ -576,14 +417,11 @@
"since they were invited": "gonbidatu zaienetik",
"Some of your messages have not been sent.": "Zure mezu batzuk ez dira bidali.",
"Sorry, this homeserver is using a login which is not recognised ": "Hasiera zerbitzari honek ezagutzen ez den saio bat erabiltzen du ",
- "tag as %(tagName)s": "jarri %(tagName)s etiketa",
- "tag direct chat": "jarri etiketa txat zuzenari",
"Tagged as: ": "Jarritako etiketa: ",
"The default role for new room members is": "Gelako kide berrien lehenetsitako rola:",
"The main address for this room is": "Gela honen helbide nagusia:",
"The phone number entered looks invalid": "Sartutako telefono zenbakia ez dirudi baliozkoa",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Eman duzun sinadura-gakoa %(userId)s erabiltzailearen %(deviceId)s gailutik jasotako bera da. Gailua egiaztatuta gisa markatu da.",
- "This action cannot be performed by a guest user. Please register to be able to do this.": "Bisitari batek ezin du ekintza hau burutu. Erregistratu hau egin ahal izateko.",
"This email address was not found": "Ez da e-mail helbide hau aurkitu",
"%(actionVerb)s this person?": "%(actionVerb)s pertsona hau?",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "'%(fileName)s' fitxategiak hasiera zerbitzarian igoerei ezarritako tamaina-muga gainditzen du",
@@ -591,7 +429,6 @@
"The remote side failed to pick up": "Urruneko aldeak hartzean huts egin du",
"This Home Server does not support login using email address.": "Hasiera zerbitzari honek ez du e-mail helbidearekin saioa hastea onartzen.",
"This invitation was sent to an email address which is not associated with this account:": "Gonbidapen hau kontu honekin lotuta ez dagoen e-mail helbide batera bidali da:",
- "There was a problem logging in.": "Arazo bat egon da saioa hastean.",
"This room is not recognised.": "Ez da gela hau ezagutzen.",
"These are experimental features that may break in unexpected ways": "Hauek ezaugarri esperimentalak dira eta agian ez dabiltza behar bezala",
"The visibility of existing history will be unchanged": "Aurreko historialaren ikusgaitasuna ez da aldatuko",
@@ -600,23 +437,11 @@
"This room": "Gela hau",
"This room is not accessible by remote Matrix servers": "Gela hau ez dago eskuragarri urruneko zerbitzarietan",
"This room's internal ID is": "Gela honen barne ID-a:",
- "times": "aldi",
- "To ban users": "Erabiltzaileak debekatzea",
- "to browse the directory": "direktorioa arakatzea",
- "To configure the room": "Gela konfiguratzea",
"to demote": "mailaz jaistea",
"to favourite": "gogoko egitea",
- "To invite users into the room": "Erabiltzaileak gela honetara gonbidatzea",
- "To kick users": "Erabiltzaileak kaleratzea",
"To link to a room it must have an address.": "Gelara estekatzeko honek helbide bat izan behar du.",
- "to make a room or": "gela bat egitea edo",
- "To remove other users' messages": "Beste erabiltzaileen mezuak kentzea",
"To reset your password, enter the email address linked to your account": "Zure pasahitza berrezartzeko, sartu zure kontuarekin lotutako e-mail helbidea",
"to restore": "berreskuratzea",
- "To send events of type": "Mota honetako gertaerak bidaltzea:",
- "To send messages": "Mezuak bidaltzea",
- "to start a chat with someone": "norbaitekin txat bat hastea",
- "to tag as %(tagName)s": "%(tagName)s gisa etiketatzea",
"to tag direct chat": "txat zuzena etiketatzea",
"To use it, just wait for autocomplete results to load and tab through them.": "Erabiltzeko, itxaron osatze automatikoaren emaitzak kargatu arte eta gero tabuladorearekin hautatu.",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Gela honen denbora-lerroko puntu zehatz bat kargatzen saiatu zara, baina ez duzu mezu zehatz hori ikusteko baimenik.",
@@ -626,7 +451,6 @@
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s erabiltzaileak muturretik muturrerako (algorithm %(algorithm)s) zifratzea aktibatu du.",
"Unable to add email address": "Ezin izan da e-mail helbidea gehitu",
"Unable to remove contact information": "Ezin izan da kontaktuaren informazioa kendu",
- "Unable to restore previous session": "Ezin izan da aurreko saioa berreskuratu",
"Unable to verify email address.": "Ezin izan da e-mail helbidea egiaztatu.",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s erabiltzaileak debekua kendu dio %(targetName)s erabiltzaileari.",
"Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Ezin izan da ziurtatu gonbidapen hau zure kontuarekin lotutako helbide batera bidali zela.",
@@ -638,18 +462,16 @@
"unencrypted": "zifratu gabe",
"Unencrypted message": "Zifratu gabeko mezua",
"unknown caller": "deitzaile ezezaguna",
- "Unknown command": "Agindu ezezaguna",
"Unknown room %(roomId)s": "%(roomId)s gela ezezaguna da",
"Unknown (user, device) pair:": "Erabiltzaile eta gailu bikote ezezaguna:",
- "unknown": "ezezaguna",
"Unmute": "Audioa aktibatu",
"Unnamed Room": "Izen gabeko gela",
"Unrecognised command:": "Agindu ezezaguna:",
"Unrecognised room alias:": "Gelaren ezizen ezezaguna:",
"Unverified": "Egiaztatu gabea",
- "Uploading %(filename)s and %(count)s others.zero": "%(filename)s igotzen",
- "Uploading %(filename)s and %(count)s others.one": "%(filename)s eta beste %(count)s igotzen",
- "Uploading %(filename)s and %(count)s others.other": "%(filename)s eta beste %(count)s igotzen",
+ "Uploading %(filename)s and %(count)s others|zero": "%(filename)s igotzen",
+ "Uploading %(filename)s and %(count)s others|one": "%(filename)s eta beste %(count)s igotzen",
+ "Uploading %(filename)s and %(count)s others|other": "%(filename)s eta beste %(count)s igotzen",
"uploaded a file": "fitxategi bat igo du",
"Upload avatar": "Igo abatarra",
"Upload Failed": "Igoerak huts egin du",
@@ -695,10 +517,8 @@
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Saioa amaitu duzu eta ez dituzu jakinarazpenak jasoko. Jakinarazpenak jaso nahi badituzu hasi saioa berriro gailu bakoitzean",
"You have disabled URL previews by default.": "Lehenetsita URLak aurreikustea desgaitu duzu.",
"You have enabled URL previews by default.": "Lehenetsita URLak aurreikustea gaitu duzu.",
- "You have entered an invalid contact. Try using their Matrix ID or email address.": "Kontaktu baliogabea sartu duzu. Saiatu bere Matrix ID-a edo e-mail helbidea erabiltzen.",
"You have no visible notifications": "Ez daukazu jakinarazpen ikusgairik",
"You may wish to login with a different account, or add this email to this account.": "Agian beste kontu batekin hasi nahi duzu saioa, edo e-mail hau kontu honetara gehitu.",
- "you must be a": "hau izan behar duzu:",
"You must register to use this functionality": "Funtzionaltasun hau erabiltzeko erregistratu",
"You need to be able to invite users to do that.": "Erabiltzaileak gonbidatzeko baimena behar duzu hori egiteko.",
"You need to be logged in.": "Saioa hasi duzu.",
@@ -734,7 +554,6 @@
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(fullYear)sko %(monthName)sk %(day)s %(time)s",
"%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
"Set a display name:": "Ezarri pantaila-izena:",
- "Set a Display Name": "Ezarri pantaila-izena",
"Upload an avatar:": "Igo abatarra:",
"This server does not support authentication with a phone number.": "Zerbitzari honek ez du telefono zenbakia erabiliz autentifikatzea onartzen.",
"Missing password.": "Pasahitza falta da.",
@@ -752,10 +571,9 @@
"Encrypt room": "Zifratu gela",
"There are no visible files in this room": "Ez dago fitxategi ikusgairik gela honetan",
"Sent messages will be stored until your connection has returned.": "Bidalitako mezuak zure konexioa berreskuratu arte gordeko dira.",
- "Auto-complete": "Osatze automatikoa",
"Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Birbidali guztiak edo baztertu guztiak orain. Mezuak banaka aukeratu ditzakezu ere birbidali ala baztertzeko.",
- "(~%(count)s results).one": "(~%(count)s emaitza)",
- "(~%(count)s results).other": "(~%(count)s emaitza)",
+ "(~%(count)s results)|one": "(~%(count)s emaitza)",
+ "(~%(count)s results)|other": "(~%(count)s emaitza)",
"bold": "lodia",
"italic": "etzana",
"strike": "marratua",
@@ -780,7 +598,7 @@
"%(oneUser)sleft and rejoined %(repeats)s times": "Erabiltzaile %(oneUser)s %(repeats)s aldiz atera eta berriro elkartu da",
"%(severalUsers)sleft and rejoined": "%(severalUsers)s erabiltzaile atera eta berriro elkartu dira",
"%(oneUser)sleft and rejoined": "Erabiltzaile %(oneUser)s atera eta berriro sartu da",
- "%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers) erabiltzaileen gonbidapenak %(repeats)s aldiz atzera bota dira",
+ "%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)s erabiltzaileen gonbidapenak %(repeats)s aldiz atzera bota dira",
"%(oneUser)shad their invitation withdrawn %(repeats)s times": "Erabiltzaile %(oneUser)sen gonbidapena %(repeats)s aldiz bota da atzera",
"%(severalUsers)shad their invitations withdrawn": "%(severalUsers)s erabiltzaileen gonbidapena atzera bota da",
"%(oneUser)shad their invitation withdrawn": "Erabiltzaile %(oneUser)sen gonbidapena atzera bota da",
@@ -825,7 +643,6 @@
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "Esportatutako fitxategia pasaesaldi batez babestuko da. Pasaesaldia bertan idatzi behar duzu, fitxategia deszifratzeko.",
"You must join the room to see its files": "Gelara elkartu behar zara bertako fitxategiak ikusteko",
"Start new chat": "Hasi txat berria",
- "Guest users can't invite users. Please register.": "Bisitariek ezin dituzte erabiltzaileak gonbidatu, erregistratu zaitez.",
"Failed to invite": "Huts egin du ganbidapenak",
"Failed to invite user": "Huts egin du erabiltzailea gonbidatzean",
"Failed to invite the following users to the %(roomName)s room:": "Huts egin du honako erabiltzaile hauek %(roomName)s gelara gonbidatzean:",
@@ -843,7 +660,6 @@
"Unable to restore session": "Ezin izan da saioa berreskuratu",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Aurretik Riot bertsio berriago bat erabili baduzu, zure saioa bertsio honekin bateraezina izan daiteke. Itxi leiho hau eta itzuli bertsio berriagora.",
"Continue anyway": "Jarraitu hala ere",
- "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Zure pantaila izena geletan hitz egiten duzunean besteek ikusten dutena da. Zein nahi duzu?",
"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.": "Gailu bakoitzaren egiaztaketa prozesua jarraitzea aholkatzen dizugu, benetako jabeari dagozkiela baieztatzeko, baina mezua egiaztatu gabe birbidali dezakezu ere.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" gelan aurretik ikusi ez dituzun gailuak daude.",
"Unknown devices": "Gailu ezezagunak",
@@ -885,11 +701,11 @@
"for %(amount)sh": "%(amount)sh",
"for %(amount)sd": "%(amount)se",
"Updates": "Eguneraketak",
- "Check for update": "Egiaztatu eguneraketa",
+ "Check for update": "Bilatu ekuneraketa",
"Start chatting": "Hasi txateatzen",
"Start Chatting": "Hasi txateatzen",
"Click on the button below to start chatting!": "Egin klik beheko botoian txateatzen hasteko!",
- "$senderDisplayName changed the room avatar to
": "$senderDisplayName erabiltzaileak gelaren abatarra aldatu du beste honetara:
",
+ "%(senderDisplayName)s changed the room avatar to
": "%(senderDisplayName)s erabiltzaileak gelaren abatarra aldatu du beste honetara:
",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s erabiltzaileak gelaren abatarra ezabatu du.",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s erabiltzaileak %(roomName)s gelaren abatarra aldatu du",
"Username available": "Erabiltzaile-izena eskuragarri dago",
@@ -912,6 +728,73 @@
"Your unverified device '%(displayName)s' is requesting encryption keys.": "Zure egiaztatu gabeko '%(displayName)s' gailua zifratze-gakoak eskatzen ari da.",
"Encryption key request": "Zifratze-gakoa eskatuta",
"Deops user with given id": "Emandako ID-a duen erabiltzailea mailaz jaisten du",
- "had": "zuen",
- "Disable Peer-to-Peer for 1:1 calls": "Desgaitu P2P biren arteko deietan"
+ "Disable Peer-to-Peer for 1:1 calls": "Desgaitu P2P biren arteko deietan",
+ "Add a widget": "Gehitu trepeta bat",
+ "Allow": "Baimendu",
+ "and %(count)s others...|other": "eta beste %(count)s...",
+ "and %(count)s others...|one": "eta beste bat...",
+ "Cannot add any more widgets": "Ezin dira trepeta gehiago gehitu",
+ "Changes colour scheme of current room": "Gela honen kolore eskema aldatzen du",
+ "Delete widget": "Ezabatu trepeta",
+ "Define the power level of a user": "Zehaztu erabiltzaile baten botere maila",
+ "Do you want to load widget from URL:": "Trepeta bat kargatu nahi duzu URL honetatik:",
+ "Edit": "Editatu",
+ "Enable automatic language detection for syntax highlighting": "Gaitu hizkuntza antzemate automatikoa sintaxia nabarmentzeko",
+ "Hide Apps": "Ezkutatu aplikazioak",
+ "Hide join/leave messages (invites/kicks/bans unaffected)": "Ezkutatu elkartze/irtete mezuak (gonbidapenak/ateratzeak/debekuak ez dira aldatzen)",
+ "Hide avatar and display name changes": "Ezkutatu abatarra eta pantaila-izen aldaketak",
+ "Integrations Error": "Integrazio errorea",
+ "Publish this room to the public in %(domain)s's room directory?": "Argitaratu gela hau publikora %(domain)s domeinuko gelen direktorioan?",
+ "AM": "AM",
+ "PM": "PM",
+ "NOTE: Apps are not end-to-end encrypted": "OHARRA: Aplikazioek ez dute muturretik muturrerako zifratzea",
+ "Revoke widget access": "Indargabetu trepetaren sarbidea",
+ "Sets the room topic": "Gelaren gaia ezartzen du",
+ "Show Apps": "Erakutsi aplikazioak",
+ "The maximum permitted number of widgets have already been added to this room.": "Gehienez onartzen diren trepeta kopurua gehitu da gela honetara.",
+ "To get started, please pick a username!": "Hasteko, hautatu erabiltzaile-izen bat!",
+ "Unable to create widget.": "Ezin izan da trepeta sortu.",
+ "Unbans user with given id": "ID zehatz bat duen erabiltzaileari debekua kentzen dio",
+ "You are not in this room.": "Ez zaude gela honetan.",
+ "You do not have permission to do that in this room.": "Ez duzu gela honetan hori egiteko baimenik.",
+ "Autocomplete Delay (ms):": "Osatze automatikoaren atzerapena (ms):",
+ "Loading device info...": "Gailuaren informazioa kargatzen...",
+ "Example": "Adibidea",
+ "Create": "Sortu",
+ "Room creation failed": "Taldea sortzeak huts egin du",
+ "Featured Rooms:": "Nabarmendutako gelak:",
+ "Featured Users:": "Nabarmendutako erabiltzaileak:",
+ "Automatically replace plain text Emoji": "Automatikoki ordezkatu Emoji testu soila",
+ "Failed to upload image": "Irudia igotzeak huts egin du",
+ "Hide avatars in user and room mentions": "Ezkutatu abatarrak erabiltzaile eta gelen aipamenetan",
+ "%(widgetName)s widget added by %(senderName)s": "%(widgetName)s trepeta gehitu du %(senderName)s erabiltzaileak",
+ "%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s trepeta kendu du %(senderName)s erabiltzaileak",
+ "Verifies a user, device, and pubkey tuple": "Erabiltzaile, gailu eta gako publiko multzoa egiaztatzen du",
+ "Robot check is currently unavailable on desktop - please use a web browser": "Robot egiaztaketa orain ez dago eskuragarri mahaigainean - erabili web nabigatzailea",
+ "%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s trepeta aldatu du %(senderName)s erabiltzaileak",
+ "Copied!": "Kopiatuta!",
+ "Failed to copy": "Kopiak huts egin du",
+ "Cancel": "Utzi",
+ "Advanced options": "Aukera aurreratuak",
+ "Block users on other matrix homeservers from joining this room": "Eragotzi beste matrix hasiera-zerbitzarietako erabiltzaileak gela honetara elkartzea",
+ "This setting cannot be changed later!": "Ezarpen hau ezin da gero aldatu!",
+ "Ignored Users": "Ezikusitako erabiltzaileak",
+ "Ignore": "Ezikusi",
+ "Unignore": "Ez ezikusi",
+ "User Options": "Erabiltzaile-aukerak",
+ "You are now ignoring %(userId)s": "%(userId)s ezikusten ari zara",
+ "You are no longer ignoring %(userId)s": "Ez zaude jada %(userId)s ezikusten",
+ "Unignored user": "Ez ezikusitako erabiltzailea",
+ "Ignored user": "Ezikusitako erabiltzailea",
+ "Stops ignoring a user, showing their messages going forward": "Utzi erabiltzailea ezikusteari, erakutsi bere mezuak",
+ "Ignores a user, hiding their messages from you": "Ezikusi erabiltzailea, ezkutatu bere mezuak zuretzat",
+ "Disable Emoji suggestions while typing": "Desgaitu Emoji proposamenak idaztean",
+ "Banned by %(displayName)s": "%(displayName)s erabiltzaileak debekatuta",
+ "Message removed by %(userId)s": "%(userId)s erabiltzaileak kendu du mezua",
+ "To send messages, you must be a": "Mezuak bidaltzeko hau izan behar zara:",
+ "To invite users into the room, you must be a": "Erabiltzaileak gonbidatzeko hau izan behar zara:",
+ "To configure the room, you must be a": "Gela konfiguratzeko hau izan behar zara:",
+ "To kick users, you must be a": "Erabiltzaileak kanporatzeko hau izan behar zara:",
+ "To ban users, you must be a": "Erabiltzaileak debekatzeko hau izan behar zara:",
+ "To remove other users' messages, you must be a": "Beste erabiltzaileen mezuak kentzeko hau izan behar zara:"
}
diff --git a/src/i18n/strings/fa.json b/src/i18n/strings/fa.json
index 9e26dfeeb6..0967ef424b 100644
--- a/src/i18n/strings/fa.json
+++ b/src/i18n/strings/fa.json
@@ -1 +1 @@
-{}
\ No newline at end of file
+{}
diff --git a/src/i18n/strings/fi.json b/src/i18n/strings/fi.json
new file mode 100644
index 0000000000..aeca03c48d
--- /dev/null
+++ b/src/i18n/strings/fi.json
@@ -0,0 +1,693 @@
+{
+ "a room": "huone",
+ "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Numeroon +%(msisdn)s on lähetetty tekstiviesti. Ole hyvä ja syötä sen sisältämä varmennuskoodi",
+ "Accept": "Hyväksy",
+ "Cancel": "Peruuta",
+ "Close": "Sulje",
+ "Create new room": "Luo uusi huone",
+ "Custom Server Options": "Omat palvelinasetukset",
+ "Dismiss": "Hylkää",
+ "Drop here %(toAction)s": "Pudota tänne %(toAction)s",
+ "Error": "Virhe",
+ "Failed to forget room %(errCode)s": "Huoneen unohtaminen epäonnistui %(errCode)s",
+ "Favourite": "Suosikki",
+ "Mute": "Vaimenna",
+ "Notifications": "Ilmoitukset",
+ "Operation failed": "Toiminto epäonnistui",
+ "Remove": "Poista",
+ "Room directory": "Huonehakemisto",
+ "Search": "Haku",
+ "Settings": "Asetukset",
+ "Start chat": "Aloita keskustelu",
+ "unknown error code": "tuntematon virhekoodi",
+ "Failed to change password. Is your password correct?": "Salasanan muuttaminen epäonnistui. Onko salasanasi oikein?",
+ "Continue": "Jatka",
+ "powered by Matrix": "Matrix-pohjainen",
+ "Active call (%(roomName)s)": "Aktivoi puhelu (%(roomName)s)",
+ "Add": "Lisää",
+ "Add a topic": "Lisää aihe",
+ "Add email address": "Lisää sähköpostiosoite",
+ "Add phone number": "Lisää puhelinnumero",
+ "Admin": "Ylläpitäjä",
+ "Allow": "Salli",
+ "VoIP": "VoIP",
+ "Missing Media Permissions, click here to request.": "Mediaoikeudet puuttuvat. Klikkaa tästä pyytääksesi oikeudet.",
+ "No Microphones detected": "Mikrofonia ei löytynyt",
+ "No Webcams detected": "Webkameraa ei löytynyt",
+ "No media permissions": "Ei mediaoikeuksia",
+ "You may need to manually permit Riot to access your microphone/webcam": "Sinun täytyy ehkä manuaalisesti sallia mikrofonin/webkameran käyttö",
+ "Default Device": "Oletuslaite",
+ "Microphone": "Mikrofoni",
+ "Camera": "Kamera",
+ "Advanced": "Kehittyneet",
+ "Algorithm": "Algoritmi",
+ "Hide removed messages": "Piilota poistetut viestit",
+ "Always show message timestamps": "Näytä aina viestien aikaleimat",
+ "Authentication": "Autentikointi",
+ "Alias (optional)": "Alias (valinnainen)",
+ "%(items)s and %(remaining)s others": "%(items)s ja %(remaining)s lisää",
+ "%(items)s and one other": "%(items)s ja yksi lisää",
+ "%(items)s and %(lastItem)s": "%(items)s ja %(lastItem)s",
+ "%(names)s and %(lastPerson)s are typing": "%(names)s ja %(lastPerson)s kirjoittavat",
+ "%(names)s and one other are typing": "%(names)s ja yksi muu kirjoittavat",
+ "An email has been sent to": "Sähköposti on lähetetty osoitteeseen",
+ "A new password must be entered.": "Sinun täytyy syöttää uusi salasana.",
+ "%(senderName)s answered the call.": "%(senderName)s vastasi puheluun.",
+ "An error has occurred.": "Virhe.",
+ "Anyone": "Kaikki",
+ "Anyone who knows the room's link, apart from guests": "Kaikki jotka tietävät huoneen osoitteen, paitsi vieraat",
+ "Anyone who knows the room's link, including guests": "Kaikki jotka tietävät huoneen osoitteen, mukaanlukien vieraat",
+ "Are you sure?": "Oletko varma?",
+ "Are you sure you want to leave the room '%(roomName)s'?": "Oletko varma että haluat poistua huoneesta '%(roomName)s'?",
+ "Are you sure you want to reject the invitation?": "Oletko varma että haluat hylätä kutsun?",
+ "Are you sure you want to upload the following files?": "Oletko varma että haluat ladata seuraavat tiedostot?",
+ "Attachment": "Liite",
+ "Autoplay GIFs and videos": "Toista automaattisesti GIF-animaatiot ja videot",
+ "%(senderName)s banned %(targetName)s.": "%(senderName)s antoi porttikiellon käyttäjälle %(targetName)s.",
+ "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Yhdistäminen kotipalvelimeen epäonnistui. Ole hyvä ja tarkista verkkoyhteytesi ja varmista että kotipalvelimen SSL-sertifikaatti on luotettu, ja että jokin selaimen lisäosa ei estä pyyntöjen lähettämisen.",
+ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Yhdistäminen kotipalveluun HTTP:n avulla ei ole mahdollista kun selaimen osoitepalkissa on HTTPS URL. Käytä joko HTTPS tai salli turvattomat skriptit.",
+ "Can't load user settings": "Käyttäjäasetusten lataaminen epäonnistui",
+ "Change Password": "Muuta salasana",
+ "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s muutti näyttönimensä %(oldDisplayName)s -> %(displayName)s.",
+ "%(senderName)s changed their profile picture.": "%(senderName)s muutti profiilikuvansa.",
+ "%(targetName)s accepted an invitation.": "%(targetName)s hyväksyi kutsun.",
+ "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s hyväksyi kutsun käyttäjän %(displayName)s puolesta.",
+ "Account": "Tili",
+ "and %(count)s others...|other": "ja %(count)s lisää...",
+ "and %(count)s others...|one": "ja yksi lisää...",
+ "Ban": "Anna porttikielto",
+ "Banned users": "Porttikiellon saanneet käyttäjät",
+ "Bans user with given id": "Antaa porttikiellon käyttäjälle jolla on annettu tunniste",
+ "Bug Report": "Virheraportti",
+ "Bulk Options": "Bulkkiasetukset",
+ "Changes your display nickname": "Muuttaa näyttönimesi",
+ "Changes colour scheme of current room": "Muuttaa tamänhetkisen huoneen väritystä",
+ "Clear Cache and Reload": "Puhdista välimuisti ja lataa uudelleen",
+ "Clear Cache": "Puhdista välimuisti",
+ "Click here to fix": "Paina tästä korjataksesi",
+ "Click to mute audio": "Paina mykistääksesi äänet",
+ "Click to mute video": "Paina mykistääksesi video",
+ "click to reveal": "paina näyttääksesi",
+ "Click to unmute video": "Paina poistaaksesi videomykistyksen",
+ "Click to unmute audio": "Paina poistaaksesi äänimykistyksen",
+ "Command error": "Komentovirhe",
+ "Commands": "Komennot",
+ "Conference call failed.": "Konferenssipuhelu epäonnistui.",
+ "Conference calling is in development and may not be reliable.": "Konferenssipuhelut ovat vielä kehityksen alla ja saattavat toimia epäluotettavasti.",
+ "Conference calls are not supported in encrypted rooms": "Konferenssipuhelut eivät ole mahdollisia salatuissa huoneissa",
+ "Conference calls are not supported in this client": "Tämä asiakasohjelma ei tue konferenssipuheluja",
+ "Confirm password": "Varmista salasana",
+ "Confirm your new password": "Varmista uusi salasanasi",
+ "Could not connect to the integration server": "Yhteys integraatiopalvelimeen epäonnistui",
+ "Create a new chat or reuse an existing one": "Luo uusi keskustelu tai uudelleenkäytä vanha",
+ "Create an account": "Luo tili",
+ "Create Room": "Luo huone",
+ "Cryptography": "Salaus",
+ "Current password": "Nykyinen salasana",
+ "Custom": "Mukautettu",
+ "Custom level": "Mukautettu taso",
+ "/ddg is not a command": "/ddg ei ole komento",
+ "Deactivate Account": "Deaktivoi tili",
+ "Deactivate my account": "Deaktivoi tilini",
+ "Decline": "Hylkää",
+ "Decryption error": "Virhe salauksen purkamisessa",
+ "Delete": "Poista",
+ "Default": "Oletusarvo",
+ "Device already verified!": "Laite on jo varmennettu!",
+ "Device ID": "Laitetunniste",
+ "Device ID:": "Laitetunniste:",
+ "device id: ": "laitetunniste: ",
+ "Device key:": "Laiteavain:",
+ "Devices": "Laitteet",
+ "Direct chats": "Suorat viestittelyt",
+ "Disable Notifications": "Ota ilmoitukset pois käytöstä",
+ "disabled": "pois käytöstä",
+ "Disinvite": "Peru kutsu",
+ "Display name": "Näyttönimi",
+ "Download %(text)s": "Lataa %(text)s",
+ "Drop File Here": "Pudota tiedosto tähän",
+ "Ed25519 fingerprint": "Ed25519 sormenjälki",
+ "Edit": "Muokkaa",
+ "Email": "Sähköposti",
+ "Email address": "Sähköpostiosoite",
+ "Email address (optional)": "Sähköpostiosoite (valinnainen)",
+ "Email, name or matrix ID": "Sähköpostiosoite, nimi, tai Matrix tunniste",
+ "Emoji": "Emoji",
+ "Enable encryption": "Ota salaus käyttöön",
+ "Enable Notifications": "Ota ilmoitukset käyttöön",
+ "enabled": "käytössä",
+ "Encrypted by a verified device": "Varmennetun laitteen salaama",
+ "Encrypted by an unverified device": "Varmentamattoman laiteen salaama",
+ "Encrypted room": "Salattu huone",
+ "Encryption is enabled in this room": "Salaus on kytketty päälle tässä huoneessa",
+ "Encryption is not enabled in this room": "Salaus ei ole kytketty päälle tässä huoneessa",
+ "End-to-end encryption information": "Päästä päähän-salauksen tiedot",
+ "Enter Code": "Syötä koodi",
+ "Enter passphrase": "Syötä salasana",
+ "Error decrypting attachment": "Liitteen salauksen purku epäonnistui",
+ "Event information": "Tapahtumatiedot",
+ "Export": "Vie",
+ "Export E2E room keys": "Vie huoneen päästä päähän-salauksen (E2E) avaimet",
+ "Failed to ban user": "Porttikiellon antaminen epäonnistui",
+ "Failed to delete device": "Laitten poistamine epäonnistui",
+ "Failed to fetch avatar URL": "Avatar URL:n haku epäonnistui",
+ "Failed to join room": "Huoneeseen liittyminen epäonnistui",
+ "Failed to kick": "Huoneesta poistaminen epäonnistui",
+ "Failed to leave room": "Huoneesta poistuminen epäonnistui",
+ "Failed to load timeline position": "Aikajanapaikan lataaminen epäonnistui",
+ "Failed to mute user": "Käyttäjän mykistäminen epäonnistui",
+ "Failed to reject invite": "Kutsun hylkääminen epäonnistui",
+ "Failed to reject invitation": "Kutsun hylkääminen epäonnistui",
+ "Failed to save settings": "Asetusten tallentaminen epäonnistui",
+ "Failed to send email": "Sähköpostin lähettäminen epäonnistui",
+ "Failed to send request.": "Pyynnön lähettäminen epäonnistui.",
+ "Failed to set display name": "Näyttönimen asettaminen epäonnistui",
+ "Failed to set up conference call": "Konferenssipuhelun alustus epäonnistui",
+ "Failed to toggle moderator status": "Moderaattoriasetuksen muuttaminen epäonnistui",
+ "Failed to unban": "Porttikiellon poistaminen epäonnistui",
+ "Failed to upload file": "Tiedoston lataaminen epäonnistui",
+ "Failed to upload profile picture!": "Profiilikuvan lataaminen epäonnistui",
+ "Failed to verify email address: make sure you clicked the link in the email": "Sähköpostin varmennus epäonnistui: varmista että seurasit sähköpostissa olevaa linkkiä",
+ "Failure to create room": "Huoneen luominen epäonnistui",
+ "Favourites": "Suosikit",
+ "Fill screen": "Täytä näyttö",
+ "Filter room members": "Suodata huoneen jäsenet",
+ "Forget room": "Unohda huone",
+ "Forgot your password?": "Unohditko salasanasi?",
+ "For security, this session has been signed out. Please sign in again.": "Turvallisuussyistä tämä istunto on vanhentunut. Ole hyvä ja kirjaudu uudestaan.",
+ "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.": "Turvallusuussyistä uloskirjautuminen poistaa kaikki päästä päähän-salausavaimet tästä selaimesta. Jos haluat purkaa keskustelujen salaukset tulevaisuudessa pitää sinun viedä purkuavaimet ja pitää ne turvallisesti tallessa.",
+ "Found a bug?": "Löysitkö virheen?",
+ "Hide Apps": "Piilota sovellukset",
+ "Hide read receipts": "Piilota lukukuittaukset",
+ "Hide Text Formatting Toolbar": "Piilota tekstinmuotoilutyökalupalkki",
+ "Homeserver is": "Kotipalvelin on",
+ "Identity Server is": "Identiteettipalvelin on",
+ "I have verified my email address": "Olen varmistanut sähköpostiosoitteeni",
+ "Import": "Tuo",
+ "Import E2E room keys": "Tuo päästä päähän-salaus (E2E) huoneavaimet",
+ "Incoming call from %(name)s": "Saapuva puhelu käyttäjältä %(name)s",
+ "Incoming video call from %(name)s": "Saapuva videopuhelu käyttäjältä %(name)s",
+ "Incoming voice call from %(name)s": "Saapuva äänipuhelu käyttäjältä %(name)s",
+ "Incorrect username and/or password.": "Virheellinen käyttäjänimi ja/tai salasana.",
+ "Incorrect verification code": "Virheellinen varmennuskoodi",
+ "Integrations Error": "Integraatiovirhe",
+ "Interface Language": "Käyttöliittymän kieli",
+ "Invalid alias format": "Aliaksen muoto on virheellinen",
+ "Invalid address format": "Osoitteen muoto on virheellinen",
+ "Invalid Email Address": "Virheellinen sähköpostiosoite",
+ "Invite new room members": "Kutsu lisää jäseniä huoneeseen",
+ "Invited": "Kutsuttu",
+ "Invites": "Kutsuu",
+ "Invites user with given id to current room": "Kutsuu annetun käyttäjätunnisteen mukaisen käyttäjän huoneeseen",
+ "Sign in with": "Kirjaudu käyttäen",
+ "Join Room": "Liity huoneeseen",
+ "Joins room with given alias": "Liittyy huoneeseen jolla on annettu alias",
+ "Jump to first unread message.": "Hyppää ensimmäiseen lukemattomaan viestiin.",
+ "Kick": "Poista huoneesta",
+ "Kicks user with given id": "Poistaa käyttäjätunnisteen mukaisen käyttäjän huoneesta",
+ "Labs": "Laboratorio",
+ "Last seen": "Viimeksi nähty",
+ "Leave room": "Poistu huoneesta",
+ "Level:": "Taso:",
+ "Local addresses for this room:": "Tämän huoneen paikalliset osoitteet:",
+ "Logged in as:": "Kirjautunut käyttäjänä:",
+ "Login as guest": "Kirjaudu vieraana",
+ "Logout": "Kirjaudu ulos",
+ "Low priority": "Alhainen prioriteetti",
+ "Manage Integrations": "Hallinoi integraatioita",
+ "Markdown is disabled": "Markdown on pois päältä",
+ "Markdown is enabled": "Mardown on päällä",
+ "matrix-react-sdk version:": "Matrix-react-sdk versio:",
+ "Members only": "Vain jäsenet",
+ "Message not sent due to unknown devices being present": "Viestiä ei lähetetty koska paikalla on tuntemattomia laitteita",
+ "Mobile phone number": "Matkapuhelinnumero",
+ "Mobile phone number (optional)": "Matkapuhelinnumero (valinnainen)",
+ "Moderator": "Moderaattori",
+ "%(serverName)s Matrix ID": "%(serverName)s Matrix tunniste",
+ "Name": "Nimi",
+ "New password": "Uusi salasana",
+ "New passwords don't match": "Uudet salasanat eivät täsmää",
+ "New passwords must match each other.": "Uusien salasanojen on vastattava toisiaan.",
+ "not set": "ei asetettu",
+ "not specified": "ei määritetty",
+ "(not supported by this browser)": "(ei tuettu tässä selaimessa)",
+ "": "",
+ "AM": "AM",
+ "PM": "PM",
+ "NOT verified": "EI varmennettu",
+ "NOTE: Apps are not end-to-end encrypted": "Huom: Ohjelmat eivät ole päästä päähän-salattuja",
+ "No display name": "Ei näyttönimeä",
+ "No more results": "Ei enempää tuloksia",
+ "No results": "Ei tuloksia",
+ "OK": "OK",
+ "olm version:": "olm versio:",
+ "Once encryption is enabled for a room it cannot be turned off again (for now)": "Kun salaus on kytketty päälle sitä ei enää voi kytkeä pois (toistaiseksi)",
+ "Only people who have been invited": "Vain kutsun saanneet käyttäjät",
+ "Password": "Salasana",
+ "Password:": "Salasana:",
+ "Passwords can't be empty": "Salasanat eivät voi olla tyhjiä",
+ "People": "Henkilöt",
+ "Permissions": "Oikeudet",
+ "Phone": "Puhelin",
+ "Privacy warning": "Yksityisyysvaroitus",
+ "Private Chat": "Yksityinen keskustelu",
+ "Profile": "Profiili",
+ "Public Chat": "Julkinen keskustelu",
+ "Reason": "Syy",
+ "Reason: %(reasonText)s": "Syy: %(reasonText)s",
+ "Register": "Rekisteröi",
+ "Reject invitation": "Hylkää kutsu",
+ "Rejoin": "Liity uudestaan",
+ "Remove Contact Information?": "Poista yhteystiedot?",
+ "Results from DuckDuckGo": "DuckDuckGo:n tulokset",
+ "Return to login screen": "Palaa kirjautumissivulle",
+ "riot-web version:": "Riot-web versio:",
+ "Room Colour": "Huoneen väri",
+ "Room contains unknown devices": "Huone sisältää tuntemattomia laitteita",
+ "Room name (optional)": "Huoneen nimi (valinnainen)",
+ "Rooms": "Huoneet",
+ "Save": "Tallenna",
+ "Scroll to bottom of page": "Vieritä sivun loppuun",
+ "Scroll to unread messages": "Vieritä lukemattomiin viesteihin",
+ "Search failed": "Haku epäonnistui",
+ "Searches DuckDuckGo for results": "Hakee DuckDuckGo:n avulla",
+ "Send a message (unencrypted)": "Lähetä viesti (salaamaton)",
+ "Send an encrypted message": "Lähetä salattu viesti",
+ "Send anyway": "Lähetä kuitenkin",
+ "Sender device information": "Lähettäjän laitteen tiedot",
+ "Send Invites": "Lähetä kutsu",
+ "sent an image": "lähetti kuvan",
+ "sent a video": "lähetti videon",
+ "Server error": "Palvelinvirhe",
+ "Session ID": "Istuntotunniste",
+ "Sets the room topic": "Asettaa huoneen aiheen",
+ "Show panel": "Näytä paneeli",
+ "Sign in": "Kirjaudu sisään",
+ "Sign out": "Kirjaudu ulos",
+ "since they joined": "liittymisestä lähtien",
+ "since they were invited": "kutsusta lähtien",
+ "Some of your messages have not been sent.": "Jotkut viesteistäsi ei ole lähetetty.",
+ "Someone": "Joku",
+ "Start a chat": "Aloita keskustelu",
+ "Start Chat": "Aloita keskustelu",
+ "Submit": "Lähetä",
+ "This email address is already in use": "Tämä sähköpostiosoite on jo käytössä",
+ "This email address was not found": "Sähköpostiosoitetta ei löytynyt",
+ "The remote side failed to pick up": "Toinen osapuoli ei vastannut",
+ "This room has no local addresses": "Tällä huoneella ei ole paikallista osoitetta",
+ "This room": "Tämä huone",
+ "This room is not accessible by remote Matrix servers": "Tähän huoneeseen ei voi päästä ulkopuolisilta Matrix-palvelimilta",
+ "This room's internal ID is": "Huoneen sisäinen tunniste on",
+ "Unban": "Poista porttikielto",
+ "Undecryptable": "Salauksen purku ei ole mahdollista",
+ "Unencrypted room": "Salaamaton huone",
+ "unencrypted": "salaamaton",
+ "Unencrypted message": "Salaamaton viesti",
+ "unknown caller": "tuntematon soittaja",
+ "unknown device": "tuntematon laite",
+ "Unknown room %(roomId)s": "Tuntematon huone %(roomId)s",
+ "Unknown (user, device) pair:": "Tuntematon (käyttäjä, laite) -pari:",
+ "Unmute": "Poista mykistys",
+ "Unnamed Room": "Nimeämätön huone",
+ "Unrecognised command:": "Tuntematon komento:",
+ "Unrecognised room alias:": "Tuntematon huonealias:",
+ "Unverified": "Varmentamaton",
+ "Uploading %(filename)s and %(count)s others|zero": "Ladataan %(filename)s",
+ "Uploading %(filename)s and %(count)s others|one": "Ladataan %(filename)s ja %(count)s muuta",
+ "Blacklisted": "Estetyt",
+ "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s muuti huoneen nimeksi %(roomName)s.",
+ "Drop here to tag %(section)s": "Pudota tähän tägätäksesi %(section)s",
+ "Enable automatic language detection for syntax highlighting": "Ota automaattinen kielentunnistus käyttöön koodin väritystä varten",
+ "Encrypted messages will not be visible on clients that do not yet implement encryption": "Salatut viestit eivät näy ohjelmissa joissa salaus ei ole vielä implementoitu",
+ "%(senderName)s ended the call.": "%(senderName)s lopetti puhelun.",
+ "Guest access is disabled on this Home Server.": "Vierailijat on estetty tällä kotipalvelimella.",
+ "Guests cannot join this room even if explicitly invited.": "Vierailijat eivät voi liittyä tähän huoneeseen vaikka heidät on eksplisiittisesti kutsuttu.",
+ "Hangup": "Lopeta",
+ "Hide join/leave messages (invites/kicks/bans unaffected)": "Piilota liittymis-/poistumisviestit (ei koske kutsuja/poistamisia/porttikieltoja)",
+ "Historical": "Vanhat",
+ "Home": "Etusivu",
+ "Invalid file%(extra)s": "Virheellinen tiedosto%(extra)s",
+ "%(senderName)s invited %(targetName)s.": "%(senderName)s kutsui käyttäjän %(targetName)s.",
+ "%(displayName)s is typing": "%(displayName)s kirjoittaa",
+ "none": "Ei mikään",
+ "No devices with registered encryption keys": "Ei laitteita joilla rekisteröityjä salausavaimia",
+ "No users have specific privileges in this room": "Kellään käyttäjällä ei ole erityisiä oikeuksia",
+ "%(senderName)s placed a %(callType)s call.": "%(senderName)s soitti %(callType)spuhelun.",
+ "Remove %(threePid)s?": "Poista %(threePid)s?",
+ "%(senderName)s requested a VoIP conference.": "%(senderName)s pyysi VoIP konferenssia.",
+ "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s asetti näyttönimekseen %(displayName)s.",
+ "The file '%(fileName)s' exceeds this home server's size limit for uploads": "Tiedosto ‘%(fileName)s’ ylittää tämän kotipalvelimen maksimitiedostokoon",
+ "The file '%(fileName)s' failed to upload": "Tiedoston ‘%(fileName)s’ lataaminen epäonnistui",
+ "This Home Server does not support login using email address.": "Kotipalvelin ei tue kirjatumista sähköpostiosoitteen avulla.",
+ "This invitation was sent to an email address which is not associated with this account:": "Kutsu lähetettiin sähköpostiosoitteeseen jota ei ole liitetty tähän tiliin:",
+ "This room is not recognised.": "Huonetta ei tunnistettu.",
+ "These are experimental features that may break in unexpected ways": "Nämä ovat kokeellisia ominaisuuksia jotka saattavat toimia ennakoimattomilla tavoilla",
+ "This doesn't appear to be a valid email address": "Olemassa olevan historian näkyvyys ei muutu",
+ "This is a preview of this room. Room interactions have been disabled": "Tämä on huoneen ennakokatselu. Vuorovaikutus ei ole mahdollista",
+ "This phone number is already in use": "Puhelinnumero on jo käytössä",
+ "To link to a room it must have an address.": "Linkittääksesi tähän huoneseen sillä on oltava osoite.",
+ "Turn Markdown off": "Ota Markdown pois käytöstä",
+ "Turn Markdown on": "Ota Markdown käyttöön",
+ "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s otti päästä päähän-salauksen käyttöön (algoritmi %(algorithm)s).",
+ "Username invalid: %(errMessage)s": "Virheellinen käyttäjänimi: %(errMessage)s",
+ "Users": "Käyttäjät",
+ "User": "Käyttäjä",
+ "Verification": "Varmennus",
+ "verified": "varmennettu",
+ "Verified": "Varmennettu",
+ "Verified key": "Varmennusavain",
+ "Video call": "Videopuhelu",
+ "Voice call": "Äänipuhelu",
+ "VoIP conference finished.": "VoIP konferenssi loppui.",
+ "VoIP conference started.": "VoIP konferenssi alkoi.",
+ "VoIP is unsupported": "VoIP ei ole tuettu",
+ "(no answer)": "(ei vastausta)",
+ "(unknown failure: %(reason)s)": "(tuntematon virhe: %(reason)s)",
+ "(warning: cannot be disabled again!)": "(varoitus: ei voida ottaa pois käytöstä enää!)",
+ "Warning!": "Varoitus!",
+ "Who can access this room?": "Keillä on pääsy tähän huoneeseen?",
+ "Who can read history?": "Kuka pystyy lukemaan historian?",
+ "Who would you like to add to this room?": "Kenet sinä haluaisit lisätä tähän huoneeseen?",
+ "Who would you like to communicate with?": "Kenen kanssa haluaisit kommunikoida?",
+ "Would you like to accept or decline this invitation?": "Haluatko hyväksyä vai hylätä kutsun?",
+ "You already have existing direct chats with this user:": "Sinulla on jo keskusteluja käynnissä tämän käyttäjän kanssa:",
+ "You are already in a call.": "Sinulla on jo puhelu käynnissä.",
+ "You are not in this room.": "Sinä et ole tässä huoneessa.",
+ "You do not have permission to do that in this room.": "Sinulla ei ole oikeutta tehdä tuota tässä huoneessa.",
+ "You are trying to access %(roomName)s.": "Yrität liittyä huoneeseen %(roomName)s.",
+ "You cannot place a call with yourself.": "Et voi soittaa itsellesi.",
+ "You cannot place VoIP calls in this browser.": "Et voi soittaa VoIP puheluita tällä selaimella.",
+ "You do not have permission to post to this room": "Sinulla ei ole oikeutta kirjoittaa tässä huoneessa",
+ "You have been banned from %(roomName)s by %(userName)s.": "Käyttäjä %(userName)s on antanut sinulle porttikiellon huoneeseen %(roomName)s.",
+ "You have been invited to join this room by %(inviterName)s": "Käyttäjä %(inviterName)s on kutsunut sinut tähän huoneeseen",
+ "You have been kicked from %(roomName)s by %(userName)s.": "Käyttäjä %(userName)s on poistanut sinut huoneesta %(roomName)s.",
+ "You have disabled URL previews by default.": "Olet oletusarvoisesti ottanut URL esikatselut pois käytöstä.",
+ "You have enabled URL previews by default.": "Olet oletusarvoisesti ottanut URL esikatselut käyttöön.",
+ "You have no visible notifications": "Sinulla ei ole näkyviä ilmoituksia",
+ "You must register to use this functionality": "Sinun pitää rekisteröityä käyttääksesi tätä toiminnallisuutta",
+ "You need to be able to invite users to do that.": "Sinun pitää pystyä kutsua käyttäjiä voidaksesi tehdä tuon.",
+ "You need to be logged in.": "Sinun pitää olla kirjautunut.",
+ "You need to enter a user name.": "Sinun pitää syöttää käyttäjänimi.",
+ "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Sinun sähköpostiosoitteesi ei vaikuta olevan liitetty mihinkään Matrixtunnisteeseen tällä kotipalvelimella.",
+ "Your password has been reset": "Salasanasi on palautettu",
+ "You should not yet trust it to secure data": "Sinun ei vielä kannata luottaa siihen turvataksesi dataa",
+ "Your home server does not support device management.": "Kotipalvelimesi ei tue laitteiden hallintaa.",
+ "Sun": "Su",
+ "Mon": "Ma",
+ "Tue": "Ti",
+ "Wed": "Ke",
+ "Thu": "To",
+ "Fri": "Pe",
+ "Sat": "La",
+ "Set a display name:": "Aseta näyttönimi:",
+ "This server does not support authentication with a phone number.": "Tämä palvelin ei tue autentikointia puhelinnumeron avulla.",
+ "Missing password.": "Salasana puuttuu.",
+ "Passwords don't match.": "Salasanat eivät täsmää.",
+ "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Salasana on liian lyhyt (minimi %(MIN_PASSWORD_LENGTH)s).",
+ "This doesn't look like a valid email address.": "Tämä ei näytä oikealta sähköpostiosoitteelta.",
+ "This doesn't look like a valid phone number.": "Tämä ei näytä oikealta puhelinnumerolta.",
+ "An unknown error occurred.": "Tuntematon virhe.",
+ "I already have an account": "Minulla on jo tili",
+ "An error occurred: %(error_string)s": "Virhe: %(error_string)s",
+ "Topic": "Aihe",
+ "Make this room private": "Tee tästä huoneesta yksityinen",
+ "Share message history with new users": "Jaa viestihistoria uusille käyttäjille",
+ "Encrypt room": "Salaa huone",
+ "There are no visible files in this room": "Tässä huoneessa ei tiedostoja näkyvissä",
+ "Room": "Huone",
+ "Copied!": "Kopioitu!",
+ "Failed to copy": "Kopiointi epäonnistui",
+ "Connectivity to the server has been lost.": "Yhteys palvelimeen menetettiin.",
+ "Sent messages will be stored until your connection has returned.": "Lähetetyt viestit tallennetaan kunnes yhteys on taas muodostettu.",
+ "Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Uudelleenlähetä kaikki tai hylkää kaikki nyt. Voit myös valita yksittäisiä viestejä uudelleenlähetettäväksi tai hylättäväksi.",
+ "(~%(count)s results)|one": "(~%(count)s tulos)",
+ "(~%(count)s results)|other": "(~%(count)s tulosta)",
+ "Active call": "Aktiivinen puhelu",
+ "bold": "lihavoitu",
+ "italic": "kursiivi",
+ "strike": "ylivedetty",
+ "underline": "alleviivattu",
+ "code": "koodi",
+ "quote": "sitaatti",
+ "bullet": "lista",
+ "numbullet": "numeroitu lista",
+ "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)sliittyivät %(repeats)s kertaa",
+ "%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)shylkäsi kutsunsa %(repeats)s kertaa",
+ "Please select the destination room for this message": "Ole hyvä ja valitse vastaanottava huone tälle viestille",
+ "New Password": "Uusi salasana",
+ "Start automatically after system login": "Käynnistä automaattisesti käyttöjärjestelmään kirjautumisen jälkeen",
+ "Desktop specific": "Työpöytäkäytön asetukset",
+ "Analytics": "Analytiikka",
+ "Opt out of analytics": "Ota analytiikka pois käytöstä",
+ "Options": "Valinnat",
+ "Riot collects anonymous analytics to allow us to improve the application.": "Riot kerää anonyymisti tilastoja jotta voimme parantaa ohjelmistoa.",
+ "Passphrases must match": "Salasanojen on täsmättävä",
+ "Passphrase must not be empty": "Salasana ei saa olla tyhjä",
+ "Export room keys": "Vie huoneen avaimet",
+ "Confirm passphrase": "Varmista salasana",
+ "Import room keys": "Tuo huoneen avaimet",
+ "File to import": "Tiedosto",
+ "You must join the room to see its files": "Sinun pitää liittyä huoneeseen voidaksesi nähdä sen sisältämät tiedostot",
+ "Reject all %(invitedRooms)s invites": "Hylkää kaikki %(invitedRooms)s kutsut",
+ "Start new chat": "Aloita uusi keskustelu",
+ "Failed to invite": "Kutsu epäonnistui",
+ "Failed to invite user": "Käyttäjän kutsuminen epäonnistui",
+ "Failed to invite the following users to the %(roomName)s room:": "Seuraavian käyttäjien kutsuminen huoneeseen %(roomName)s epäonnistui:",
+ "Confirm Removal": "Varmista poistaminen",
+ "Unknown error": "Tuntematon virhe",
+ "Incorrect password": "Virheellinen salasana",
+ "This action is irreversible.": "Tätä toimintoa ei voi perua.",
+ "Device name": "Laitenimi",
+ "Device Name": "Laitenimi",
+ "Device key": "Laiteavain",
+ "In future this verification process will be more sophisticated.": "Tulevaisuudessa tämä varmennusprosessi tulee olemaan hienostuneempi.",
+ "Verify device": "Varmenna laite",
+ "I verify that the keys match": "Totean että avaimet vastaavat toisiaan",
+ "Unable to restore session": "Istunnon palautus epäonnistui",
+ "Continue anyway": "Jatka kuitenkin",
+ "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s poisti huoneen nimen.",
+ "Changes to who can read history will only apply to future messages in this room": "Muutokset koskien ketkä voivat lukea historian koskevat vain uusia viestejä",
+ "Click here to join the discussion!": "Paina tästä liittyäksesi keskusteluun",
+ "%(count)s new messages|one": "%(count)s uusi viesti",
+ "%(count)s new messages|other": "%(count)s uutta viestiä",
+ "Curve25519 identity key": "Curve25519 tunnistusavain",
+ "Decrypt %(text)s": "Pura %(text)s",
+ "Devices will not yet be able to decrypt history from before they joined the room": "Laitteet eivät vielä pysty purkamaan viestejä ajalta ennen kun ne liittyivät huoneseen",
+ "Disable inline URL previews by default": "Ota oletusarvoisesti pois käytöstä URL esikatselut",
+ "Displays action": "Näyttää toiminnan",
+ "Don't send typing notifications": "Älä lähetä kirjoitusilmoituksia",
+ "End-to-end encryption is in beta and may not be reliable": "Päästä päähän salaus on vielä testausvaiheessa ja saattaa toimia epävarmasti",
+ "Error: Problem communicating with the given homeserver.": "Virhe: Ongelma yhteydenpidossa kotipalvelimeen.",
+ "Existing Call": "Käynnissä oleva puhelu",
+ "Failed to lookup current room": "Nykyisen huoneen löytäminen epäonnistui",
+ "Join as voice or video.": "Liity käyttäen ääntä tai videota.",
+ "%(targetName)s joined the room.": "%(targetName)s liittyi huoneeseen.",
+ "%(senderName)s kicked %(targetName)s.": "%(senderName)s poisti käyttäjän %(targetName)s huoneesta.",
+ "%(targetName)s left the room.": "%(targetName)s poistui huoneesta.",
+ "Publish this room to the public in %(domain)s's room directory?": "Julkaise tämä huone domainin %(domain)s huoneluettelossa?",
+ "Missing room_id in request": "room_id puuttuu kyselystä",
+ "Missing user_id in request": "user_id puuttuu kyselystä",
+ "Must be viewing a room": "Pakko olla huoneessa",
+ "Never send encrypted messages to unverified devices from this device": "Älä koskaa lähetä salattuja viestejä varmentamattomiin laitteisiin tältä laitteelta",
+ "Never send encrypted messages to unverified devices in this room from this device": "Älä koskaa lähetä salattuja viestejä varmentamattomiin laitteisiin tässä huoneessa tältä laitteelta",
+ "New address (e.g. #foo:%(localDomain)s)": "Uusi osoite (esim. #foo:%(localDomain)s)",
+ "Press to start a chat with someone": "Paina ",
+ "Revoke Moderator": "Poista moderaattorioikeudet",
+ "Refer a friend to Riot:": "Suosittele Riot ystävälle:",
+ "%(targetName)s rejected the invitation.": "%(targetName)s hylkäsi kutsun.",
+ "Remote addresses for this room:": "Tämän huoneen etäosoitteet:",
+ "%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s poisti näyttönimensä (%(oldDisplayName)s).",
+ "Report it": "Ilmoita siitä",
+ "Return to app": "Palaa ohjelmaan",
+ "Riot does not have permission to send you notifications - please check your browser settings": "Riotilla ei ole oikeuksia lähettää sinulle ilmoituksia. Ole hyvä ja tarkista selaimen asetukset",
+ "Riot was not given permission to send notifications - please try again": "Riotilla ei saannut oikeuksia lähettää ilmoituksia. Ole hyvä ja yritä uudelleen",
+ "Room %(roomId)s not visible": "Huone %(roomId)s ei ole näkyvissä",
+ "%(roomName)s does not exist.": "%(roomName)s ei ole olemassa.",
+ "%(roomName)s is not accessible at this time.": "%(roomName)s ei ole saatavilla tällä hetkellä.",
+ "Seen by %(userName)s at %(dateTime)s": "Käyttäjän %(userName)s näkemä %(dateTime)s",
+ "Send Reset Email": "Lähetä salasanan palautusviesti",
+ "%(senderDisplayName)s sent an image.": "%(senderDisplayName)s lähetti kuvan.",
+ "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s lähetti kutsun käyttäjälle %(targetDisplayName)s liittyäkseen huoneeseen.",
+ "Server may be unavailable or overloaded": "Palvelin saattaa olla saavuttamattomissa tai ylikuormitettu",
+ "Show Text Formatting Toolbar": "Näytä tekstinmuotoilupalkki",
+ "Show timestamps in 12 hour format (e.g. 2:30pm)": "Näytä aikaleimat 12h muodossa (esim. 2:30pm)",
+ "Signed Out": "Uloskirjautunut",
+ "since the point in time of selecting this option": "tämän asetuksen valitsemisesta",
+ "Start authentication": "Aloita tunnistus",
+ "Success": "Onnistuminen",
+ "Tagged as: ": "Tägit: ",
+ "The default role for new room members is": "Huoneen uusien jäsenten oletusrooli on",
+ "The main address for this room is": "Tämän huoneen pääosoite on",
+ "The phone number entered looks invalid": "Syötetty puhelinnumero näyttää virheelliseltä",
+ "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Syöttämäsi allekirjoitusavain vastaa käyttäjän %(userId)s laitteelta %(deviceId)s saamaasi allekirjoitusavainta. Laite on merkitty varmennetuksi.",
+ "Unable to add email address": "Sähköpostiosoitteen lisääminen epäonnistui",
+ "Unable to remove contact information": "Yhteystietojen poistaminen epäonnistui",
+ "Unable to verify email address.": "Sähköpostin varmentaminen epäonnistui.",
+ "Unbans user with given id": "Poistaa porttikiellon annetun ID:n omaavalta käyttäjältä",
+ "%(senderName)s unbanned %(targetName)s.": "%(senderName)s poisti porttikiellon käyttäjältä %(targetName)s.",
+ "Unable to capture screen": "Ruudun kaappaus epäonnistui",
+ "Unable to enable Notifications": "Ilmoitusten käyttöönotto epäonnistui",
+ "Unable to load device list": "Laitelistan lataaminen epäonnistui",
+ "Uploading %(filename)s and %(count)s others|other": "Ladataan %(filename)s ja %(count)s muuta",
+ "uploaded a file": "lattaa tiedosto",
+ "Upload Failed": "Lataus epäonnistui",
+ "Upload Files": "Lataa tiedostoja",
+ "Upload file": "Lataa tiedosto",
+ "Upload new:": "Lataa uusi:",
+ "Usage": "Käyttö",
+ "Use compact timeline layout": "Käytä kompaktia aikajanaa",
+ "Use with caution": "Käytä varoen",
+ "User ID": "Käyttäjätunniste",
+ "User Interface": "Käyttöliittymä",
+ "%(user)s is a": "%(user)s on",
+ "User name": "Käyttäjänimi",
+ "%(oneUser)sjoined %(repeats)s times": "%(oneUser)sliittyi %(repeats)s kertaa",
+ "%(severalUsers)sjoined": "%(severalUsers)sliittyivät",
+ "%(oneUser)sjoined": "%(oneUser)sliittyi",
+ "%(severalUsers)sleft %(repeats)s times": "%(severalUsers)spoistuivat %(repeats)s kertaa",
+ "%(oneUser)sleft %(repeats)s times": "%(oneUser)spoistui %(repeats)s kertaa",
+ "%(severalUsers)sleft": "%(severalUsers)sspoistuivat",
+ "%(oneUser)sleft": "%(oneUser)spoistui",
+ "%(severalUsers)sjoined and left %(repeats)s times": "%(severalUsers)sliittyivät ja poistuivat %(repeats)s kertaa",
+ "%(oneUser)sjoined and left %(repeats)s times": "%(oneUser)sliittyi ja poistui %(repeats)s kertaa",
+ "%(severalUsers)sjoined and left": "%(severalUsers)sliittyivät ja poistuivat",
+ "%(oneUser)sjoined and left": "%(oneUser)sliittyi ja poistui",
+ "%(severalUsers)sleft and rejoined %(repeats)s times": "%(severalUsers)spoistuivat ja liittyivät uudelleen %(repeats)s kertaa",
+ "%(oneUser)sleft and rejoined %(repeats)s times": "%(oneUser)spoistui ja liittyi uudelleen %(repeats)s kertaa",
+ "%(severalUsers)sleft and rejoined": "%(severalUsers)spoistuivat ja liittyivät uudelleen",
+ "%(oneUser)sleft and rejoined": "%(oneUser)spoistui ja liittyi uudelleen",
+ "%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)shylkäsivät kutsunsa %(repeats)s kertaa'",
+ "%(severalUsers)srejected their invitations": "%(severalUsers)shylkäsivät kutsunsa",
+ "%(oneUser)srejected their invitation": "%(oneUser)shylkäsi kutsunsa",
+ "%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)skutsut vedettiin takaisin %(repeats)s kertaa",
+ "%(oneUser)shad their invitation withdrawn %(repeats)s times": "%(oneUser)skutsu vedettiin takaisin %(repeats)s kertaa",
+ "%(severalUsers)shad their invitations withdrawn": "%(severalUsers)skutsut vedettiin takaisin",
+ "%(oneUser)shad their invitation withdrawn": "%(oneUser)skutsu vedettiin takaisin",
+ "were invited %(repeats)s times": "kutsuttiin %(repeats)s kertaa",
+ "was invited %(repeats)s times": "kutsuttiin %(repeats)s kertaa",
+ "were invited": "kutsuttiin",
+ "was invited": "kutsuttiin",
+ "were kicked %(repeats)s times": "poistettiin huoneesta %(repeats)s kertaa",
+ "was kicked %(repeats)s times": "poistettiin huoneesta %(repeats)s kertaa",
+ "were kicked": "poistettiin huoneesta",
+ "was kicked": "poistettiin huoneesta",
+ "%(severalUsers)schanged their name %(repeats)s times": "%(severalUsers)smuuttivat nimensä %(repeats)s kertaa",
+ "%(oneUser)schanged their name %(repeats)s times": "%(oneUser)smuutti nimensä %(repeats)s kertaa",
+ "%(severalUsers)schanged their name": "%(severalUsers)smuuttivat nimensä",
+ "%(oneUser)schanged their name": "%(oneUser)smuutti nimensä",
+ "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s asetti aiheeksi \"%(topic)s\".",
+ "Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Salasanan muuttaminen uudelleenalustaa myös päästä päähän-salausavaimet kaikilla laitteilla, jolloin vanhojen viestien lukeminen ei ole enään mahdollista, ellet ensin vie huoneavaimet ja tuo ne takaisin jälkeenpäin. Tämä tulee muuttumaan tulevaisuudessa.",
+ "Define the power level of a user": "Määritä käyttäjän oikeustaso",
+ "Failed to change power level": "Oikeustason muuttaminen epäonnistui",
+ "'%(alias)s' is not a valid format for an address": "'%(alias)s' ei ole oikean muotoinen osoitteelle",
+ "'%(alias)s' is not a valid format for an alias": "'%(alias)s' ei ole oikean muotoinen aliakselle",
+ "Once you've followed the link it contains, click below": "Klikkaa alla kun olet seuruannut sen sisältämää linkkiä",
+ "Otherwise, click here to send a bug report.": "Paina muutoin tästä lähettääksesi virheraportin.",
+ "Please check your email and click on the link it contains. Once this is done, click continue.": "Ole hyvä ja tarkista sähköpostisi ja seuraa sen sisältämää linkkiä. Kun olet valmis, paina jatka.",
+ "Power level must be positive integer.": "Oikeustason pitää olla positiivinen kokonaisluku.",
+ "Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Salasanan uudelleenalustus uudelleenalustaa myös päästä päähän-salausavaimet kaikilla laitteilla, jolloin vanhojen viestien lukeminen ei ole enään mahdollista, ellet ensin vie huoneavaimet ja tuo ne takaisin jälkeenpäin. Tämä tulee muuttumaan tulevaisuudessa.",
+ "Server may be unavailable, overloaded, or search timed out :(": "Palvelin saattaa olla saavuttamattomissa, ylikuormitettu tai haku kesti liian kauan :(",
+ "Server may be unavailable, overloaded, or the file too big": "Palvelin saattaa olla saavuttamattomissa, ylikuormitettu, tai tiedosto on liian suuri",
+ "Server may be unavailable, overloaded, or you hit a bug.": "Palvelin saattaa olla saavuttamattomissa, ylikuormitettu tai olet törmännyt virheeseen.",
+ "Server unavailable, overloaded, or something else went wrong.": "Palvelin on saavuttamattomissa, ylikuormitettu tai jokin muu meni vikaan.",
+ "Sorry, this homeserver is using a login which is not recognised ": "Valitettavasti tämä palvelin käyttää kirjautumista joka ei ole tuettu ",
+ "The email address linked to your account must be entered.": "Sinun pitää syöttää tiliisi liitetty sähköpostiosoite.",
+ "The visibility of existing history will be unchanged": "Olemassaolevan viestihistorian näkyvyys ei muutu",
+ "To get started, please pick a username!": "Valitse käyttäjänimi aloittaaksesi!",
+ "To use it, just wait for autocomplete results to load and tab through them.": "Käyttääksesi sitä odota vain automaattitäydennyksiä ja selaa niiden läpi.",
+ "To reset your password, enter the email address linked to your account": "Syötä tiliisi liitetty sähköpostiosoite uudelleenalustaaksesi salasanasi",
+ "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Aikajanan tietty hetki yritettiin ladata, mutta sinulla ei ole oikeutta nähdä kyseistä viestiä.",
+ "Tried to load a specific point in this room's timeline, but was unable to find it.": "Aikajanan tietty hetki yritettiin ladata, mutta se ei löytynyt.",
+ "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Ei ole mahdollista varmistaa että sähköposti johon tämä kutsu lähetettiin vastaa sinun tiliisi liittettyä osoitetta.",
+ "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (oikeustaso %(powerLevelNumber)s)",
+ "Verification Pending": "Varmennus on vireillä",
+ "(could not connect media)": "(mediaa ei voitu yhdistää)",
+ "WARNING: Device already verified, but keys do NOT MATCH!": "VAROITUS: Laite on jo varmennettu mutta avaimet eivät vastaa toisiaan!",
+ "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "VAROITUS: AVAIMEN VARMENNUS EPÄONNISTUI! Käyttäjän %(userId)s ja laitteen %(deviceId)s allekirjoitusavain on \"%(fprint)s\" joka ei vastaa annettua avainta \"%(fingerprint)s\". Tämä saattaa tarkoittaa että viestintäsi siepataan!",
+ "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s veti takaisin käyttäjän %(targetName)s kutsun.",
+ "You're not in any rooms yet! Press to make a room or to browse the directory": "Et ole vielä missään huoneessa! Paina luodaksesi huoneen tai selatakseski hakemistoa",
+ "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Sinut on kirjattu ulos kaikista laitteista etkä enää saa Push-ilmoituksia. Jotta saisit jälleen ilmoituksia pitää sinun jälleen kirjautua sisään jokaisella laitteella",
+ "You may wish to login with a different account, or add this email to this account.": "Haluat ehkä kirjautua toiseen tiliin tai lisätä tämä sähköpostiosoite tähän tiliin.",
+ "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Salasanan muuttaminen onnistui. Et saa enää push-ilmoituksia muilla laitteilla kunnes olet uudelleen kirjautunut sisään niillä",
+ "You seem to be in a call, are you sure you want to quit?": "Sinulla näyttää olevan puhelu kesken. Haluatko varmasti lopettaa?",
+ "You seem to be uploading files, are you sure you want to quit?": "Näytät lataavan tiedostoja. Oletko varma että haluat lopettaa?",
+ "Jan": "tammikuu",
+ "Feb": "helmikuu",
+ "Mar": "maaliskuu",
+ "Apr": "huhtikuu",
+ "May": "toukokuu",
+ "Jun": "kesäkuu",
+ "Jul": "heinäkuu",
+ "Aug": "elokuu",
+ "Sep": "syyskuu",
+ "Oct": "lokakuu",
+ "Nov": "marraskuu",
+ "Dec": "jolukuu",
+ "User names may only contain letters, numbers, dots, hyphens and underscores.": "Käyttäjänimet voivat sisältää vain kirjaimia, numeroita, pisteitä, viivoja ja alaviivoja.",
+ "To continue, please enter your password.": "Ole hyvä ja syötä salasanasi jatkaaksesi.",
+ "Verifies a user, device, and pubkey tuple": "Varmentaa käyttäjän, laitteen ja julkisen avaimen kolmikon",
+ "\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" sisältä laitteita joita et ole nähnyt aikaisemmin.",
+ "Unknown devices": "Tuntemattomia laitteita",
+ "Unknown Address": "Tuntematon osoite",
+ "Unverify": "Kumoa varmennus",
+ "Verify...": "Varmenna...",
+ "ex. @bob:example.com": "esim. @bob:example.com",
+ "Add User": "Lisää käyttäjä",
+ "This Home Server would like to make sure you are not a robot": "Tämä kotipalvelin haluaa varmistaa että et ole robotti",
+ "A text message has been sent to": "Tekstiviesti on lähetetty numeroon",
+ "Please enter the code it contains:": "Ole hyvä ja syötä sen sisältämä koodi:",
+ "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Jos et syötä sähköpostiosoitetta et voi uudelleenalustaa salasanasi myöhemmin. Oletko varma?",
+ "Default server": "Oletuspalvelin",
+ "Home server URL": "Kotipalvelimen URL",
+ "Identity server URL": "Identiteettipalvelimen URL",
+ "What does this mean?": "Mitä tämä tarkoittaa?",
+ "Error decrypting audio": "Äänen salauksen purku epäonnistui",
+ "Error decrypting image": "Kuvan salauksen purku epäonnistui",
+ "Image '%(Body)s' cannot be displayed.": "Kuva '%(Body)s' ei voida näyttää.",
+ "This image cannot be displayed.": "Tätä kuvaa ei voida näyttää.",
+ "Error decrypting video": "Videon salauksen purku epäonnistui",
+ "Add an Integration": "Lisää integraatio",
+ "Removed or unknown message type": "Poistettu tai tuntematon viestityyppi",
+ "URL Previews": "URL esikatselut",
+ "Drop file here to upload": "Pudota tiedosto tähän ladataksesi sen palvelimelle",
+ " (unsupported)": " (ei tuettu)",
+ "Updates": "Päivitykset",
+ "Check for update": "Tarkista päivitykset",
+ "Start chatting": "Aloita keskustelu",
+ "Start Chatting": "Aloita keskustelu",
+ "Click on the button below to start chatting!": "Paina nappia alla aloittaaksesi keskustelu!",
+ "Username available": "Käyttäjänimi saatavissa",
+ "Username not available": "Käyttäjänimi ei ole saatavissa",
+ "Something went wrong!": "Jokin meni vikaan!",
+ "This will be your account name on the homeserver, or you can pick a different server.": "Tämä on tilisi -kotipalvelimella, tai voit valita toisen palvelimen.",
+ "If you already have a Matrix account you can log in instead.": "Jos sinulla on jo Matrix-tili voit kirjautua.",
+ "Your browser does not support the required cryptography extensions": "Selaimesi ei tue vaadittuja kryptografisia laajennuksia",
+ "Not a valid Riot keyfile": "Virheellinen Riot avaintiedosto",
+ "Authentication check failed: incorrect password?": "Autentikointi epäonnistui: virheellinen salasana?",
+ "Do you want to set an email address?": "Haluatko asettaa sähköpostiosoitteen?",
+ "This will allow you to reset your password and receive notifications.": "Tämä sallii sinun uudelleenalustaa salasanasi ja vastaanottaa ilmoituksia.",
+ "To return to your account in future you need to set a password": "Päästäksesi uudestaan tiliisi myöhemmin sinun täytyy asettaa salasana",
+ "Skip": "Hyppää yli",
+ "Start verification": "Aloita varmennus",
+ "Share without verifying": "Jaa ilman varmennusta",
+ "Ignore request": "Jätä pyyntö huomioimatta",
+ "You added a new device '%(displayName)s', which is requesting encryption keys.": "Lisäsit laitteen '%(displayName)s' joka pyytää salausavaimia.",
+ "Your unverified device '%(displayName)s' is requesting encryption keys.": "Sinun varmentamaton laitteesi '%(displayName)s' pyytää salausavaimia.",
+ "Encryption key request": "Salausavainpyyntö",
+ "Loading device info...": "Ladataan laitetiedot...",
+ "Example": "Esimerkki",
+ "Create": "Luo",
+ "Room creation failed": "Huoneen luonti epäonnistui",
+ "Failed to upload image": "Kuvan lataaminen epäonnistui",
+ "Robot check is currently unavailable on desktop - please use a web browser": "Robottitarkistus ei tällä hetkellä toimi työpöytäversiossa. Ole hyvä ja käytä nettiselainta",
+ "Add a widget": "Lisää sovelma",
+ "Cannot add any more widgets": "Lisää sovelmia ei voida enää lisätä",
+ "Delete widget": "Poista sovelma",
+ "Do you want to load widget from URL:": "Haluatko ladata sovelman URL-osoitteesta:",
+ "The maximum permitted number of widgets have already been added to this room.": "Maksimimäärä sovelmia on jo lisätty tähän huoneeseen.",
+ "Unable to create widget.": "Sovelman luominen epäonnistui.",
+ "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Et voi kumota tätä toimintoa koska olet antamassa käyttäjälle saman oikeustason kuin sinullakin on.",
+ "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "Tämä prosessi mahdollistaa salatuissa huoneissa vastaanottamasi viestien salausavainten vieminen tiedostoon. Voit sitten myöhemmin tuoda ne toiseen Matrix-asiakasohjelmaan niin että myös se ohjema voi purkaa viestit.",
+ "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "Tämän tiedoston avulla kuka tahansa pystyy purkamaan kaikki salatut viestit jotka sinä voit nähdä, joten sinun täytyy säilyttää se turvallisesti. Helpottaaksesi tätä sinun pitäisi syötää salasana alla jonka avulla tiedosto salataan. Käyttäen samaa salasanaa voit myöhemmin tuoda tiedot ohjelmaan.",
+ "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Tämä prosessi mahdollistaa aiemmin tallennettujen salausavainten tuominen toiseen Matrix-asiakasohjelmaan. Tämän jälkeen voit purkaa kaikki salatut viestit jotka toinen asiakasohjelma pystyisi purkamaan."
+}
diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json
index 50d9113245..a9b7232e29 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -1,168 +1,37 @@
{
- "af": "Afrikaans",
- "ar-ae": "Arabic (U.A.E.)",
- "ar-bh": "Arabic (Bahrain)",
- "ar-dz": "Arabic (Algeria)",
- "ar-eg": "Arabic (Egypt)",
- "ar-iq": "Arabic (Iraq)",
- "ar-jo": "Arabic (Jordan)",
- "ar-kw": "Arabic (Kuwait)",
- "ar-lb": "Arabic (Lebanon)",
- "ar-ly": "Arabic (Libya)",
- "ar-ma": "Arabic (Morocco)",
- "ar-om": "Arabic (Oman)",
- "ar-qa": "Arabic (Qatar)",
- "ar-sa": "Arabic (Saudi Arabia)",
- "ar-sy": "Arabic (Syria)",
- "ar-tn": "Arabic (Tunisia)",
- "ar-ye": "Arabic (Yemen)",
- "be": "Belarusian",
- "bg": "Bulgarian",
- "ca": "Catalan",
- "cs": "Czech",
- "da": "Danish",
- "de-at": "German (Austria)",
- "de-ch": "German (Switzerland)",
- "de": "German",
- "de-li": "German (Liechtenstein)",
- "de-lu": "German (Luxembourg)",
- "el": "Greek",
- "en-au": "English (Australia)",
- "en-bz": "English (Belize)",
- "en-ca": "English (Canada)",
- "en": "English",
- "en-gb": "English (United Kingdom)",
- "en-ie": "English (Ireland)",
- "en-jm": "English (Jamaica)",
- "en-nz": "English (New Zealand)",
- "en-tt": "English (Trinidad)",
- "en-us": "English (United States)",
- "en-za": "English (South Africa)",
- "es-ar": "Spanish (Argentina)",
- "es-bo": "Spanish (Bolivia)",
- "es-cl": "Spanish (Chile)",
- "es-co": "Spanish (Colombia)",
- "es-cr": "Spanish (Costa Rica)",
- "es-do": "Spanish (Dominican Republic)",
- "es-ec": "Spanish (Ecuador)",
- "es-gt": "Spanish (Guatemala)",
- "es-hn": "Spanish (Honduras)",
- "es-mx": "Spanish (Mexico)",
- "es-ni": "Spanish (Nicaragua)",
- "es-pa": "Spanish (Panama)",
- "es-pe": "Spanish (Peru)",
- "es-pr": "Spanish (Puerto Rico)",
- "es-py": "Spanish (Paraguay)",
- "es": "Spanish (Spain)",
- "es-sv": "Spanish (El Salvador)",
- "es-uy": "Spanish (Uruguay)",
- "es-ve": "Spanish (Venezuela)",
- "et": "Estonian",
- "eu": "Basque (Basque)",
- "fa": "Farsi",
- "fi": "Finnish",
- "fo": "Faeroese",
- "fr-be": "French (Belgium)",
- "fr-ca": "French (Canada)",
- "fr-ch": "French (Switzerland)",
- "fr": "French",
- "fr-lu": "French (Luxembourg)",
- "ga": "Irish",
- "gd": "Gaelic (Scotland)",
- "he": "Hebrew",
- "hi": "Hindi",
- "hr": "Croatian",
- "hu": "Hungarian",
- "id": "Indonesian",
- "is": "Icelandic",
- "it-ch": "Italian (Switzerland)",
- "it": "Italian",
- "ja": "Japanese",
- "ji": "Yiddish",
- "ko": "Coréen",
- "lt": "Lithuanian",
- "lv": "Latvian",
- "mk": "Macedonian (FYROM)",
- "ms": "Malaysian",
- "mt": "Maltese",
- "nl-be": "Dutch (Belgium)",
- "nl": "Dutch",
- "no": "Norwegian",
- "pl": "Polish",
- "pt-br": "Brazilian Portuguese",
- "pt": "Portuguese",
- "rm": "Rhaeto-Romanic",
- "ro-mo": "Romanian (Republic of Moldova)",
- "ro": "Romanian",
- "ru-mo": "Russian (Republic of Moldova)",
- "ru": "Russian",
- "sb": "Sorbian",
- "sk": "Slovak",
- "sl": "Slovenian",
- "sq": "Albanian",
- "sr": "Serbe",
- "sv-fi": "Swedish (Finland)",
- "sv": "Swedish",
- "sx": "Sutu",
- "sz": "Sami (Lappish)",
- "th": "Thai",
- "tn": "Tswana",
- "tr": "Turkish",
- "ts": "Tsonga",
- "uk": "Ukrainian",
- "ur": "Urdu",
- "ve": "Venda",
- "vi": "Vietnamese",
- "xh": "Xhosa",
- "zh-cn": "Chinese (PRC)",
- "zh-hk": "Chinese (Hong Kong SAR)",
- "zh-sg": "Chinese (Singapore)",
- "zh-tw": "Chinese (Taiwan)",
- "zu": "Zulu",
- "anyone": "n'importe qui",
- "Direct Chat": "Discussion directe",
- "Direct chats": "Conversations directes",
- "Disable inline URL previews by default": "Désactiver l’aperçu des URLs",
+ "Direct chats": "Discussions directes",
+ "Disable inline URL previews by default": "Désactiver l’aperçu des liens",
"Disinvite": "Désinviter",
- "Display name": "Nom d'affichage",
+ "Display name": "Nom affiché",
"Displays action": "Affiche l'action",
"Don't send typing notifications": "Ne pas envoyer les notifications de saisie",
"Download %(text)s": "Télécharger %(text)s",
"Drop here %(toAction)s": "Déposer ici %(toAction)s",
- "Drop here to tag %(section)s": "Déposer ici pour marquer comme %(section)s",
+ "Drop here to tag %(section)s": "Déposer ici pour étiqueter comme %(section)s",
"Ed25519 fingerprint": "Empreinte Ed25519",
- "Email Address": "Adresse e-mail",
"Email, name or matrix ID": "E-mail, nom ou identifiant Matrix",
- "Emoji": "Emoticône",
+ "Emoji": "Émoticône",
"Enable encryption": "Activer le chiffrement",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "Les messages chiffrés ne seront pas visibles dans les clients qui n’implémentent pas encore le chiffrement",
"Encrypted room": "Salon chiffré",
"%(senderName)s ended the call.": "%(senderName)s a terminé l’appel.",
- "End-to-end encryption information": "Information sur le chiffrement de bout-en-bout",
- "End-to-end encryption is in beta and may not be reliable": "Le chiffrement de bout-en-bout est en bêta et risque de ne pas être fiable",
- "Enter Code": "Entrer le code",
+ "End-to-end encryption information": "Informations sur le chiffrement de bout en bout",
+ "End-to-end encryption is in beta and may not be reliable": "Le chiffrement de bout en bout est en bêta et risque de ne pas être fiable",
+ "Enter Code": "Saisir le code",
"Error": "Erreur",
- "Event information": "Information de l'événement",
+ "Event information": "Informations de l'événement",
"Existing Call": "Appel en cours",
- "Export E2E room keys": "Exporter les clés de chiffrement du salon",
- "Failed to ban user": "Échec lors du bannissement de l'utilisateur",
+ "Export E2E room keys": "Exporter les clés de chiffrement de salon",
+ "Failed to ban user": "Échec du bannissement de l'utilisateur",
"Failed to change password. Is your password correct?": "Échec du changement de mot de passe. Votre mot de passe est-il correct ?",
- "Failed to change power level": "Échec du changement de niveau d'autorité",
+ "Failed to change power level": "Échec du changement de rang",
"Failed to delete device": "Échec de la suppression de l'appareil",
- "Failed to forget room %(errCode)s": "Échec lors de l'oubli du salon %(errCode)s",
- "Please Register": "Veuillez vous inscrire",
+ "Failed to forget room %(errCode)s": "Échec de l'oubli du salon %(errCode)s",
"Remove": "Supprimer",
"was banned": "a été banni(e)",
"was invited": "a été invité(e)",
- "was kicked": "a été expulsé(e)",
- "was unbanned": "a été amnistié(e)",
- "Monday": "Lundi",
- "Tuesday": "Mardi",
- "Wednesday": "Mercredi",
- "Thursday": "Jeudi",
- "Friday": "Vendredi",
- "Saturday": "Samedi",
- "Sunday": "Dimanche",
+ "was kicked": "a été exclu(e)",
+ "was unbanned": "a vu son bannissement révoqué",
"bold": "gras",
"italic": "italique",
"strike": "barré",
@@ -170,62 +39,50 @@
"Favourite": "Favoris",
"Notifications": "Notifications",
"Settings": "Paramètres",
- "Failed to join the room": "Échec de l'adhésion au salon",
- "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Un message texte a été envoyé à +%(msisdn)s. Merci d'entrer le code de vérification qu'il contient",
- "accept": "Accepter",
+ "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Un SMS a été envoyé à +%(msisdn)s. Merci de saisir le code de vérification qu'il contient",
"%(targetName)s accepted an invitation.": "%(targetName)s a accepté une invitation.",
"Account": "Compte",
"Add email address": "Ajouter une adresse e-mail",
- "Add phone number": "Ajouter un numéro",
- "Admin": "Admin",
+ "Add phone number": "Ajouter un numéro de téléphone",
+ "Admin": "Administrateur",
"Advanced": "Avancé",
"Algorithm": "Algorithme",
- "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 joined": "tous les membres du salon, depuis le moment où ils ont rejoint",
- "an address": "une adresse",
- "and": "et",
"%(items)s and %(remaining)s others": "%(items)s et %(remaining)s autres",
"%(items)s and one other": "%(items)s et un autre",
"%(items)s and %(lastItem)s": "%(items)s et %(lastItem)s",
- "%(names)s and %(lastPerson)s are typing": "%(names)s et %(lastPerson)s sont en train d'écrire",
- "%(names)s and one other are typing": "%(names)s et un autre sont en train d'écrire",
- "%(names)s and %(count)s others are typing": "%(names)s et %(count)s d'autres sont en train d'écrire",
- "and %(count)s others...": {
- "other": "et %(count)s autres...",
- "one": "et un autre..."
- },
+ "%(names)s and %(lastPerson)s are typing": "%(names)s et %(lastPerson)s écrivent",
+ "%(names)s and one other are typing": "%(names)s et un autre écrivent",
+ "and %(count)s others...|other": "et %(count)s autres...",
+ "and %(count)s others...|one": "et un autre...",
"An email has been sent to": "Un e-mail a été envoyé à",
- "A new password must be entered.": "Un nouveau mot de passe doit être entré.",
- "Anyone who knows the room's link, apart from guests": "Tout ceux qui connaissent le lien du salon, à part les visiteurs",
- "Anyone who knows the room's link, including guests": "Tout ceux qui connaissent le lien du salon, y compris les visiteurs",
- "Are you sure?": "Êtes-vous sûr ?",
- "Are you sure you want to reject the invitation?": "Êtes-vous sûr de vouloir rejeter l'invitation ?",
- "Are you sure you want to upload the following files?": "Êtes-vous sûr de vouloir télécharger les fichiers suivants ?",
+ "A new password must be entered.": "Un nouveau mot de passe doit être saisi.",
+ "Anyone who knows the room's link, apart from guests": "Tous ceux qui connaissent le lien du salon, à part les visiteurs",
+ "Anyone who knows the room's link, including guests": "Tous ceux qui connaissent le lien du salon, y compris les visiteurs",
+ "Are you sure?": "Êtes-vous sûr(e) ?",
+ "Are you sure you want to reject the invitation?": "Voulez-vous vraiment rejeter l'invitation ?",
+ "Are you sure you want to upload the following files?": "Voulez-vous vraiment envoyer les fichiers suivants ?",
"Attachment": "Pièce jointe",
- "Autoplay GIFs and videos": "Jouer automatiquement les GIFs et vidéos",
+ "Autoplay GIFs and videos": "Jouer automatiquement les GIFs et les vidéos",
"%(senderName)s banned %(targetName)s.": "%(senderName)s a banni %(targetName)s.",
"Ban": "Bannir",
"Banned users": "Utilisateurs bannis",
- "Bans user with given id": "Bannit l'utilisateur avec un identifiant donné",
+ "Bans user with given id": "Bannit l'utilisateur à partir de son identifiant",
"Blacklisted": "Sur liste noire",
"Bug Report": "Rapport d'erreur",
"Call Timeout": "Délai d’appel expiré",
- "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "Connexion au Home Server impossible - merci de vérifier votre connectivité et que le certificat SSL de votre Home Server est de confiance.",
- "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Impossible de se connecter au homeserver en HTTP si l'URL dans la barre de votre explorateur est en HTTPS. Utilisez HTTPS ou activez le support des scripts non-vérifiés.",
- "Can't load user settings": "Impossible de charger les paramètres utilisateur",
+ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Impossible de se connecter au serveur d'accueil en HTTP si l'URL dans la barre de votre explorateur est en HTTPS. Utilisez HTTPS ou activez le support des scripts non-vérifiés.",
+ "Can't load user settings": "Impossible de charger les paramètres de l'utilisateur",
"Change Password": "Changer le mot de passe",
- "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s a changé son nom d’affichage de %(oldDisplayName)s en %(displayName)s.",
- "%(senderName)s changed their profile picture.": "%(senderName)s a changé sa photo de profil.",
- "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s a changé le niveau de pouvoir de %(powerLevelDiffText)s.",
+ "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s a changé son nom affiché de %(oldDisplayName)s en %(displayName)s.",
+ "%(senderName)s changed their profile picture.": "%(senderName)s a changé son image de profil.",
+ "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s a changé le rang de %(powerLevelDiffText)s.",
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s a changé le nom du salon en %(roomName)s.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s a changé le sujet du salon en \"%(topic)s\".",
- "Changes to who can read history will only apply to future messages in this room": "Les changements de visibilité de l’historique de ce salon ne s’appliquent qu’aux messages futurs",
- "Changes your display nickname": "Change votre nom d'affichage",
- "Claimed Ed25519 fingerprint key": "Clé empreinte Ed25519 revendiquée",
+ "Changes to who can read history will only apply to future messages in this room": "Les changements de visibilité de l’historique de ce salon ne s’appliquent qu’aux futurs messages",
+ "Changes your display nickname": "Change votre nom affiché",
+ "Claimed Ed25519 fingerprint key": "Clé d'empreinte Ed25519 déclarée",
"Clear Cache and Reload": "Vider le cache et rafraîchir",
"Clear Cache": "Vider le cache",
- "Click here": "Cliquer ici",
"Click here to fix": "Cliquer ici pour réparer",
"Click to mute audio": "Cliquer pour couper le son",
"Click to mute video": "Cliquer ici pour couper la vidéo",
@@ -234,10 +91,10 @@
"Click to unmute audio": "Cliquer pour rétablir le son",
"Command error": "Erreur de commande",
"Commands": "Commandes",
- "Conference call failed.": "Échec de la conférence.",
- "Conference calling is in development and may not be reliable.": "Les appels en conférence sont encore en développement et sont potentiellement peu fiables.",
- "Conference calls are not supported in encrypted rooms": "Les appels en conférence ne sont pas supportés dans les salons chiffrés",
- "Conference calls are not supported in this client": "Les appels en conférence ne sont pas supportés avec ce client",
+ "Conference call failed.": "Échec de la téléconférence.",
+ "Conference calling is in development and may not be reliable.": "Les appels en téléconférence sont encore en développement et sont potentiellement peu fiables.",
+ "Conference calls are not supported in encrypted rooms": "Les appels en téléconférence ne sont pas supportés dans les salons chiffrés",
+ "Conference calls are not supported in this client": "Les appels en téléconférence ne sont pas supportés par ce client",
"Confirm password": "Confirmer le mot de passe",
"Confirm your new password": "Confirmer votre nouveau mot de passe",
"Continue": "Continuer",
@@ -250,30 +107,27 @@
"/ddg is not a command": "/ddg n'est pas une commande",
"Deactivate Account": "Supprimer le compte",
"Deactivate my account": "Supprimer mon compte",
- "decline": "décliner",
"Decrypt %(text)s": "Déchiffrer %(text)s",
"Decryption error": "Erreur de déchiffrement",
"Delete": "Supprimer",
- "demote": "rétrograder",
- "Deops user with given id": "Retire les privilèges d’opérateur d’un utilisateur avec un ID donné",
+ "Deops user with given id": "Retire le rang d’opérateur d’un utilisateur à partir de son identifiant",
"Device ID": "Identifiant de l'appareil",
"Devices": "Appareils",
- "Devices will not yet be able to decrypt history from before they joined the room": "Les appareils ne seront pas capables de déchiffrer l’historique précédant leur adhésion au salon",
- "ml": "Malayalam",
- "Failed to join room": "Échec lors de l’adhésion au salon",
- "Failed to kick": "Échec lors de l'expulsion",
- "Failed to leave room": "Échec du départ",
- "Failed to load timeline position": "Erreur lors du chargement de la position dans la chronologie",
- "Failed to lookup current room": "Échec lors de la recherche du salon actuel",
- "Failed to mute user": "Échec lors de l'interruption de l'utilisateur",
- "Failed to reject invite": "Échec lors du rejet de l'invitation",
- "Failed to reject invitation": "Échec lors du rejet de l'invitation",
- "Failed to save settings": "Échec lors de la sauvegarde des paramètres",
- "Failed to send email": "Échec lors de l’envoi de l’e-mail",
- "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 up conference call": "Échec lors de l’établissement de l’appel",
- "Failed to toggle moderator status": "Échec lors de l’activation du statut de modérateur",
+ "Devices will not yet be able to decrypt history from before they joined the room": "Les appareils ne pourront pas encore déchiffrer l'historique de messages d'avant leur arrivée sur le salon",
+ "Failed to join room": "Échec de l’inscription au salon",
+ "Failed to kick": "Échec de l'exclusion",
+ "Failed to leave room": "Échec du départ du salon",
+ "Failed to load timeline position": "Échec du chargement de la position dans l'historique",
+ "Failed to lookup current room": "Échec de la recherche du salon actuel",
+ "Failed to mute user": "Échec de la mise en sourdine de l'utilisateur",
+ "Failed to reject invite": "Échec du rejet de l'invitation",
+ "Failed to reject invitation": "Échec du rejet de l'invitation",
+ "Failed to save settings": "Échec de la sauvegarde des paramètres",
+ "Failed to send email": "Échec de l’envoi de l’e-mail",
+ "Failed to send request.": "Échec de l'envoi de la requête.",
+ "Failed to set display name": "Échec de l'enregistrement du nom affiché",
+ "Failed to set up conference call": "Échec de l’établissement de la téléconférence",
+ "Failed to toggle moderator status": "Échec de l’activation du statut de modérateur",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s a accepté l’invitation de %(displayName)s.",
"Access Token:": "Jeton d’accès :",
"Always show message timestamps": "Toujours afficher l'heure des messages",
@@ -281,83 +135,75 @@
"%(senderName)s answered the call.": "%(senderName)s a répondu à l’appel.",
"An error has occurred.": "Une erreur est survenue.",
"Email": "E-mail",
- "Failed to unban": "Échec de l'amnistie",
- "Failed to upload file": "Échec du téléchargement",
+ "Failed to unban": "Échec de la révocation du bannissement",
+ "Failed to upload file": "Échec de l'envoi du fichier",
"Failed to verify email address: make sure you clicked the link in the email": "Échec de la vérification de l’adresse e-mail : vérifiez que vous avez bien cliqué sur le lien dans l’e-mail",
"Failure to create room": "Échec de la création du salon",
- "favourite": "favoris",
"Favourites": "Favoris",
"Fill screen": "Plein écran",
"Filter room members": "Filtrer les membres du salon",
"Forget room": "Oublier le salon",
- "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.",
- "Found a bug?": "Trouvé un problème ?",
+ "Forgot your password?": "Mot de passe oublié ?",
+ "For security, this session has been signed out. Please sign in again.": "Par mesure de sécurité, la session a expiré. Merci de vous authentifier à nouveau.",
+ "Found a bug?": "Vous avez trouvé un problème ?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s à %(toPowerLevel)s",
- "Guest users can't create new rooms. Please register to create room and start a chat.": "Les visiteurs ne peuvent créer de nouveaux salons. Merci de vous 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 inscrire pour télécharger.",
- "had": "avait",
"Hangup": "Raccrocher",
"Hide read receipts": "Cacher les accusés de lecture",
"Hide Text Formatting Toolbar": "Cacher la barre de formatage de texte",
"Historical": "Historique",
- "Homeserver is": "Le homeserver est",
+ "Homeserver is": "Le serveur d'accueil est",
"Identity Server is": "Le serveur d'identité est",
"I have verified my email address": "J’ai vérifié mon adresse e-mail",
- "Import E2E room keys": "Importer les clés de chiffrement de bout-en-bout",
+ "Import E2E room keys": "Importer les clés de chiffrement de bout en bout",
"Incorrect verification code": "Code de vérification incorrect",
"Interface Language": "Langue de l'interface",
- "Invalid alias format": "Format de l'alias invalide",
- "Invalid address format": "Format d'adresse invalide",
- "Invalid Email Address": "Adresse e-mail invalide",
+ "Invalid alias format": "Format d'alias non valide",
+ "Invalid address format": "Format d'adresse non valide",
+ "Invalid Email Address": "Adresse e-mail non valide",
"%(senderName)s invited %(targetName)s.": "%(senderName)s a invité %(targetName)s.",
"Invite new room members": "Inviter de nouveaux membres",
"Invited": "Invités",
"Invites": "Invitations",
- "Invites user with given id to current room": "Inviter l’utilisateur avec un ID donné dans le salon actuel",
- "is a": "est un",
+ "Invites user with given id to current room": "Invite un utilisateur dans le salon actuel à partir de son identifiant",
"'%(alias)s' is not a valid format for an address": "'%(alias)s' n'est pas un format valide pour une adresse",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' n'est pas un format valide pour un alias",
- "%(displayName)s is typing": "%(displayName)s est en train d'écrire",
- "Sign in with": "Je veux m'identifier avec",
+ "%(displayName)s is typing": "%(displayName)s écrit",
+ "Sign in with": "Se connecter avec",
"Join Room": "Rejoindre le salon",
- "joined and left": "a rejoint et quitté",
- "joined": "a rejoint",
"%(targetName)s joined the room.": "%(targetName)s a rejoint le salon.",
- "Joins room with given alias": "Rejoint le salon avec l'alias défini",
- "%(senderName)s kicked %(targetName)s.": "%(senderName)s a expulsé %(targetName)s.",
- "Kick": "Expulser",
- "Kicks user with given id": "Expulse l'utilisateur avec l'ID donné",
+ "Joins room with given alias": "Rejoint le salon avec l'alias renseigné",
+ "%(senderName)s kicked %(targetName)s.": "%(senderName)s a exclu %(targetName)s.",
+ "Kick": "Exclure",
+ "Kicks user with given id": "Exclut l'utilisateur à partir de son identifiant",
"Labs": "Laboratoire",
"Leave room": "Quitter le salon",
- "left and rejoined": "a quitté et rejoint",
- "left": "a quitté",
"%(targetName)s left the room.": "%(targetName)s a quitté le salon.",
- "Level": "Niveau",
- "Local addresses for this room:": "Adresse locale pour ce salon :",
+ "Local addresses for this room:": "Adresses locales pour ce salon :",
"Logged in as:": "Identifié en tant que :",
- "Login as guest": "S'identifier en tant que visiteur",
+ "Login as guest": "Se connecter en tant que visiteur",
"Logout": "Se déconnecter",
"Low priority": "Priorité basse",
- "%(senderName)s made future room history visible to": "%(senderName)s a rendu l'historique visible de",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s a rendu l'historique visible à tous les membres du salon, depuis le moment où ils ont été invités.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s a rendu l'historique visible à tous les membres du salon, depuis le moment où ils ont rejoint.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s a rendu l'historique visible à tous les membres du salon.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s a rendu l'historique visible à n'importe qui.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s a rendu l'historique visible à inconnu (%(visibility)s).",
"Manage Integrations": "Gestion des intégrations",
- "Markdown is disabled": "Le formatage \"Markdown\" est désactivé",
- "Markdown is enabled": "Le formatage “Markdown” est activé",
- "matrix-react-sdk version:": "Version du matrix-react-sdk :",
+ "Markdown is disabled": "Le formatage Markdown est désactivé",
+ "Markdown is enabled": "Le formatage Markdown est activé",
+ "matrix-react-sdk version:": "Version de matrix-react-sdk :",
"Members only": "Membres uniquement",
- "Message not sent due to unknown devices being present": "Message non-envoyé à cause de la présence d’appareils non-vérifiés",
+ "Message not sent due to unknown devices being present": "Message non envoyé à cause de la présence d’appareils inconnus",
"Missing room_id in request": "Absence du room_id dans la requête",
"Missing user_id in request": "Absence du user_id dans la requête",
"Mobile phone number": "Numéro de téléphone mobile",
"Moderator": "Modérateur",
"Must be viewing a room": "Doit être en train de visualiser un salon",
- "my Matrix ID": "mon identifiant Matrix",
+ "%(serverName)s Matrix ID": "%(serverName)s identifiant Matrix",
"Name": "Nom",
- "Never send encrypted messages to unverified devices from this device": "Ne jamais envoyer de message chiffré aux appareils non-vérifiés depuis cet appareil",
- "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 from this device": "Ne jamais envoyer de message chiffré aux appareils non vérifiés 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 Composer & Autocomplete": "Nouveau compositeur et autocomplétion",
"New password": "Nouveau mot de passe",
"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.",
@@ -369,12 +215,11 @@
"NOT verified": "NON vérifié",
"No devices with registered encryption keys": "Pas d’appareil avec des clés de chiffrement enregistrées",
"No more results": "Fin des résultats",
- "No results": "Pas de résultats",
- "unknown error code": "Code erreur inconnu",
+ "No results": "Pas de résultat",
+ "unknown error code": "Code d'erreur inconnu",
"OK": "OK",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "Une fois le chiffrement activé dans un salon il ne peut pas être désactivé (pour le moment)",
"Only people who have been invited": "Seul les personnes ayant été invitées",
- "or": "ou",
"Password": "Mot de passe",
"Passwords can't be empty": "Le mot de passe ne peut pas être vide",
"People": "Personnes",
@@ -382,54 +227,49 @@
"Phone": "Numéro de téléphone",
"Operation failed": "L'opération a échoué",
"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 l’historique chiffré illisible, à moins d’exporter 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.": "Pour le moment, changer le mot de passe réinitialise les clés de chiffrement sur tous les appareils, rendant l’historique des discussions chiffrées illisible, à moins d’exporter d'abord les clés de salon puis de les ré-importer. Ceci sera amélioré prochainement.",
"Default": "Par défaut",
"Email address": "Adresse e-mail",
"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.",
- "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 l’historique de votre conversation lors de sessions futures de Riot, merci d’exporter 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 inscrire.",
- "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.",
- "Invalid file%(extra)s": "Fichier %(extra)s invalide",
- "Mute": "Couper le son",
+ "Failed to set avatar.": "Échec de la définition de l'avatar.",
+ "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 mesure de sécurité une déconnexion supprimera toutes les clés de chiffrement de ce navigateur. Si vous voulez être capable de déchiffrer l’historique de votre conversation lors des prochaines sessions de Riot, veuillez exporter les clés de salon pour les garder en lieu sûr.",
+ "Guests cannot join this room even if explicitly invited.": "Les visiteurs ne peuvent pas rejoindre ce salon, même s'ils ont été explicitement invités.",
+ "Invalid file%(extra)s": "Fichier %(extra)s non valide",
+ "Mute": "Mettre en sourdine",
"No users have specific privileges in this room": "Aucun utilisateur n’a de privilège spécifique dans ce salon",
"olm version:": "version de olm :",
- "Once you've followed the link it contains, click below": "Une fois que vous aurez suivi le lien qu’il contient, cliquez ci-dessous",
- "%(senderName)s placed a %(callType)s call.": "%(senderName)s a placé un appel %(callType)s.",
+ "Once you've followed the link it contains, click below": "Une fois que vous aurez suivi le lien qu’il contient, cliquez ci-dessous",
+ "%(senderName)s placed a %(callType)s call.": "%(senderName)s a passé un appel %(callType)s.",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Veuillez vérifier vos e-mails et cliquer sur le lien que vous avez reçu. Puis cliquez sur continuer.",
"Power level must be positive integer.": "Le niveau d'autorité doit être un entier positif.",
- "Press": "Cliquer",
"Privacy warning": "Alerte de confidentialité",
- "Privileged Users": "Utilisateur privilégié",
+ "Privileged Users": "Utilisateurs privilégiés",
"Profile": "Profil",
"Reason": "Raison",
"Revoke Moderator": "Révoquer le modérateur",
"Refer a friend to Riot:": "Recommander Riot à un ami :",
- "rejected": "rejeté",
"%(targetName)s rejected the invitation.": "%(targetName)s a rejeté l’invitation.",
"Reject invitation": "Rejeter l'invitation",
"Remove Contact Information?": "Supprimer les informations du contact ?",
- "%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s a supprimé son nom d’affichage (%(oldDisplayName)s).",
- "%(senderName)s removed their profile picture.": "%(senderName)s a supprimé sa photo de profil.",
+ "%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s a supprimé son nom affiché (%(oldDisplayName)s).",
+ "%(senderName)s removed their profile picture.": "%(senderName)s a supprimé son image de profil.",
"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 téléconférence audio.",
"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 l’historique 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": "restaurer",
+ "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.": "Pour le moment, réinitialiser le mot de passe va réinitialiser les clés de chiffrement sur tous les appareils, rendant l’historique des salons chiffrés illisible, à moins que vous exportiez d'abord les clés de salon puis que vous les ré-importiez après. Cela sera amélioré prochainement.",
"Return to app": "Retourner à l’application",
- "Return to login screen": "Retourner à l’écran d’identification",
+ "Return to login screen": "Retourner à l’écran de connexion",
"Riot does not have permission to send you notifications - please check your browser settings": "Riot n’a 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 n’a pas reçu la permission de vous envoyer des notifications - merci d’essayer à nouveau",
+ "Riot was not given permission to send notifications - please try again": "Riot n’a pas reçu la permission de vous envoyer des notifications - veuillez réessayer",
"riot-web version:": "Version de riot-web :",
"Room %(roomId)s not visible": "Le salon %(roomId)s n'est pas visible",
"Room Colour": "Couleur du salon",
"Room name (optional)": "Nom du salon (facultatif)",
"Rooms": "Salons",
"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",
"Search": "Rechercher",
- "Search failed": "Erreur lors de la recherche",
+ "Search failed": "Échec de la recherche",
"Searches DuckDuckGo for results": "Recherche des résultats dans DuckDuckGo",
"Send a message (unencrypted)": "Envoyer un message (non chiffré)",
"Send an encrypted message": "Envoyer un message chiffré",
@@ -444,66 +284,48 @@
"Server may be unavailable or overloaded": "Le serveur semble être inaccessible ou surchargé",
"Server may be unavailable, overloaded, or search timed out :(": "Le serveur semble être inaccessible, surchargé ou la recherche a expiré :(",
"Server may be unavailable, overloaded, or the file too big": "Le serveur semble être inaccessible, surchargé ou le fichier 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é.",
"Session ID": "Identifiant de session",
- "%(senderName)s set a profile picture.": "%(senderName)s a défini une photo de profil.",
- "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s a défini son nom d’affichage comme %(displayName)s.",
+ "%(senderName)s set a profile picture.": "%(senderName)s a défini une image de profil.",
+ "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s a défini son nom affiché comme %(displayName)s.",
"Show panel": "Dévoiler le panneau",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Afficher l’heure au format am/pm (par ex. 2:30pm)",
"Signed Out": "Déconnecté",
- "Sign in": "S'identifier",
+ "Sign in": "Se connecter",
"Sign out": "Se déconnecter",
"since the point in time of selecting this option": "depuis le moment où cette option a été sélectionnée",
"since they joined": "depuis qu’ils ont rejoint le salon",
"since they were invited": "depuis qu’ils ont été invités",
"Some of your messages have not been sent.": "Certains de vos messages n’ont pas été envoyés.",
"Someone": "Quelqu'un",
- "Sorry, this homeserver is using a login which is not recognised ": "Désolé, ce homeserver utilise un identifiant qui n’est pas reconnu ",
- "Start a chat": "Démarrer une discussion",
- "Start Chat": "Démarrer une discussion",
+ "Sorry, this homeserver is using a login which is not recognised ": "Désolé, ce serveur d'accueil utilise un identifiant qui n’est pas reconnu ",
+ "Start a chat": "Commencer une discussion",
+ "Start Chat": "Commencer une discussion",
"Submit": "Soumettre",
"Success": "Succès",
- "tag as %(tagName)s": "marquer comme %(tagName)s",
- "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 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 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 was not found": "Cette adresse e-mail n’a pas été trouvée",
"%(actionVerb)s this person?": "%(actionVerb)s cette personne ?",
- "The email address linked to your account must be entered.": "L’adresse e-mail liée à votre compte doit être entrée.",
- "The file '%(fileName)s' exceeds this home server's size limit for uploads": "Le fichier '%(fileName)s' dépasse la taille limite autorisée pour les téléchargements sur ce homeserver",
- "The file '%(fileName)s' failed to upload": "Le fichier '%(fileName)s' n’a pas pu être téléchargé",
+ "The email address linked to your account must be entered.": "L’adresse e-mail liée à votre compte doit être renseignée.",
+ "The file '%(fileName)s' exceeds this home server's size limit for uploads": "Le fichier '%(fileName)s' dépasse la taille limite autorisée pour les envois sur ce serveur d'accueil",
+ "The file '%(fileName)s' failed to upload": "Le fichier '%(fileName)s' n’a pas pu être envoyé",
"The remote side failed to pick up": "Le correspondant n’a pas décroché",
"This room has no local addresses": "Ce salon n'a pas d'adresse locale",
- "This room is not recognised.": "Ce salon n'a pas été reconnu.",
- "These are experimental features that may break in unexpected ways": "Ces fonctionnalités sont expérimentales et risquent de mal fonctionner",
- "The visibility of existing history will be unchanged": "La visibilité de l’historique existant sera inchangée",
- "This doesn't appear to be a valid email address": "Cette adresse n’a pas l’air d’être valide",
- "this invitation?": "cette invitation ?",
+ "This room is not recognised.": "Ce salon n'est pas reconnu.",
+ "These are experimental features that may break in unexpected ways": "Ce sont des fonctionnalités expérimentales qui peuvent créer des problèmes inattendus",
+ "The visibility of existing history will be unchanged": "La visibilité de l’historique existant restera inchangée",
+ "This doesn't appear to be a valid email address": "Cette adresse e-mail ne semble pas valide",
"This is a preview of this room. Room interactions have been disabled": "Ceci est un aperçu du salon. Les interactions avec le salon ont été désactivées",
- "This phone number is already in use": "Ce numéro de téléphone est déja utilisé",
+ "This phone number is already in use": "Ce numéro de téléphone est déjà utilisé",
"This room is not accessible by remote Matrix servers": "Ce salon n’est pas accessible par les serveurs Matrix distants",
"This room's internal ID is": "L'identifiant interne de ce salon est",
- "times": "fois",
- "To ban users": "Pour bannir des utilisateurs",
- "to browse the directory": "pour parcourir le répertoire",
- "To configure the room": "Pour configurer le salon",
"to demote": "pour réduire la priorité",
"to favourite": "pour marquer comme favori",
- "To invite users into the room": "Pour inviter des utilisateurs dans le salon",
- "to join the discussion": "pour rejoindre la discussion",
- "To kick users": "Pour expulser des utilisateurs",
- "To link to a room it must have": "Pour avoir un lien vers un salon, il doit avoir",
- "to make a room or": "pour créer un salon ou",
- "To remove other users' messages": "Pour supprimer les messages des autres utilisateurs",
"To reset your password, enter the email address linked to your account": "Pour réinitialiser votre mot de passe, merci d’entrer l’adresse e-mail liée à votre compte",
"to restore": "pour restaurer",
- "To send events of type": "Pour envoyer des évènements du type",
- "To send messages": "Pour envoyer des messages",
- "to start a chat with someone": "pour démarrer une discussion avec quelqu’un",
- "to tag as %(tagName)s": "pour marquer comme %(tagName)s",
"to tag direct chat": "pour marquer comme conversation directe",
"To use it, just wait for autocomplete results to load and tab through them.": "Pour l’utiliser, attendez simplement que les résultats de l’auto-complétion s’affichent et défilez avec la touche Tab.",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Un instant donné de la chronologie n’a pu être chargé car vous n’avez pas la permission de le visualiser.",
@@ -513,18 +335,16 @@
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s a activé le chiffrement de bout-en-bout (algorithme %(algorithm)s).",
"Unable to add email address": "Impossible d'ajouter l'adresse e-mail",
"Unable to remove contact information": "Impossible de supprimer les informations du contact",
- "Unable to restore previous session": "Impossible de rétablir la session précédente",
"Unable to verify email address.": "Impossible de vérifier l’adresse e-mail.",
- "Unban": "Amnistier (annuler le bannissement)",
- "%(senderName)s unbanned %(targetName)s.": "%(senderName)s a amnistié %(targetName)s.",
+ "Unban": "Révoquer le bannissement",
+ "%(senderName)s unbanned %(targetName)s.": "%(senderName)s a révoqué le bannissement de %(targetName)s.",
"Unable to capture screen": "Impossible de capturer l'écran",
"Unable to enable Notifications": "Impossible d'activer les notifications",
- "Unable to load device list": "Impossible de charger la liste d'appareils",
+ "Unable to load device list": "Impossible de charger la liste des appareils",
"Unencrypted room": "Salon non chiffré",
"unencrypted": "non chiffré",
"unknown device": "appareil inconnu",
"Unknown room %(roomId)s": "Salon inconnu %(roomId)s",
- "unknown": "inconnu",
"Unmute": "Activer le son",
"uploaded a file": "téléchargé un fichier",
"Upload avatar": "Télécharger une photo de profil",
@@ -538,44 +358,39 @@
"User name": "Nom d'utilisateur",
"Users": "Utilisateurs",
"User": "Utilisateur",
- "Verification Pending": "Vérification en cours",
+ "Verification Pending": "Vérification en attente",
"Verification": "Vérification",
"verified": "vérifié",
"Video call": "Appel vidéo",
"Voice call": "Appel vocal",
- "VoIP conference finished.": "Conférence audio terminée.",
- "VoIP conference started.": "Conférence audio démarrée.",
- "VoIP is unsupported": "Appels voix non supportés",
- "(warning: cannot be disabled again!)": "(attention : ne peut être désactivé !)",
+ "VoIP conference finished.": "Téléconférence VoIP terminée.",
+ "VoIP conference started.": "Téléconférence VoIP démarrée.",
+ "VoIP is unsupported": "Voix sur IP non supportée",
+ "(warning: cannot be disabled again!)": "(attention : ne peut pas être désactivé !)",
"Warning!": "Attention !",
"Who can access this room?": "Qui peut accéder au salon ?",
"Who can read history?": "Qui peut lire l'historique ?",
- "Who would you like to add to this room?": "Qui voulez-vous inviter dans ce salon ?",
+ "Who would you like to add to this room?": "Qui voulez-vous ajouter à ce salon ?",
"Who would you like to communicate with?": "Avec qui voulez-vous communiquer ?",
- "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s a révoqué l’invitation de %(targetName)s.",
- "Would you like to": "Voulez-vous",
- "You are already in a call.": "Vous êtes déjà dans un appel.",
- "You're not in any rooms yet! Press": "Vous n’êtes dans aucun salon ! Cliquez",
+ "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s a annulé l’invitation de %(targetName)s.",
+ "You are already in a call.": "Vous avez déjà un appel en cours.",
"You are trying to access %(roomName)s.": "Vous essayez d'accéder à %(roomName)s.",
"You cannot place a call with yourself.": "Vous ne pouvez pas passer d'appel avec vous-même.",
- "You cannot place VoIP calls in this browser.": "Vous ne pouvez pas passer d'appel vocal dans ce navigateur.",
+ "You cannot place VoIP calls in this browser.": "Vous ne pouvez pas passer d'appel en Voix sur IP dans ce navigateur.",
"You do not have permission to post to this room": "Vous n’avez pas la permission de poster dans ce salon",
- "You have been invited to join this room by %(inviterName)s": "Vous avez été invité à joindre ce salon par %(inviterName)s",
- "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Vous avez été déconnecté de tous vos appareils et ne recevrez plus de notifications. Pour réactiver les notifications, identifiez vous à nouveau sur tous les appareils",
- "You have no visible notifications": "Vous n'avez pas de notifications visibles",
- "you must be a": "vous devez être un",
+ "You have been invited to join this room by %(inviterName)s": "Vous avez été invité(e) à rejoindre ce salon par %(inviterName)s",
+ "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Vous avez été déconnecté de tous vos appareils et ne recevrez plus de notifications. Pour réactiver les notifications, reconnectez-vous sur tous les appareils",
+ "You have no visible notifications": "Vous n'avez pas de notification visible",
"You need to be able to invite users to do that.": "Vous devez être capable d’inviter des utilisateurs pour faire ça.",
"You need to be logged in.": "Vous devez être identifié.",
"You need to enter a user name.": "Vous devez entrer un nom d’utilisateur.",
- "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 être associée à un identifiant Matrix sur ce serveur d'accueil.",
"Your password has been reset": "Votre mot de passe a été réinitialisé",
- "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Votre mot de passe a été mis à jour avec succès. Vous ne recevrez plus de notification sur vos appareils jusqu’à ce que vous vous identifiez à nouveau",
- "You seem to be in a call, are you sure you want to quit?": "Vous semblez avoir un appel en cours, êtes-vous sûr(e) de vouloir quitter ?",
- "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 ?",
+ "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Votre mot de passe a été mis à jour avec succès. Vous ne recevrez plus de notification sur vos autres appareils jusqu’à ce que vous vous identifiez à nouveau",
+ "You seem to be in a call, are you sure you want to quit?": "Vous semblez avoir un appel en cours, voulez-vous vraiment partir ?",
+ "You seem to be uploading files, are you sure you want to quit?": "Vous semblez être en train d'envoyer des fichiers, voulez-vous vraiment partir ?",
"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é",
- "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 l’utilisateur au même niveau d'autorité que le vôtre.",
+ "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 cette modification car vous promouvez l’utilisateur au même rang que le vôtre.",
"Sun": "Dim",
"Mon": "Lun",
"Tue": "Mar",
@@ -584,29 +399,29 @@
"Fri": "Ven",
"Sat": "Sam",
"Jan": "Jan",
- "Feb": "Fev",
+ "Feb": "Fév",
"Mar": "Mar",
"Apr": "Avr",
"May": "Mai",
- "Jun": "Jun",
- "Jul": "Jul",
- "Aug": "Aou",
+ "Jun": "Juin",
+ "Jul": "Juil",
+ "Aug": "Aoû",
"Sep": "Sep",
"Oct": "Oct",
"Nov": "Nov",
- "Dec": "Dec",
+ "Dec": "Déc",
"%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s %(day)s %(monthName)s %(time)s",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s %(day)s %(monthName)s %(fullYear)s %(time)s",
"%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
- "Set a display name:": "Définir un nom d’affichage :",
- "Upload an avatar:": "Télécharger une photo de profil :",
- "This server does not support authentication with a phone number.": "Ce serveur ne supporte pas l’identification avec un numéro de téléphone.",
+ "Set a display name:": "Définir le nom affiché :",
+ "Upload an avatar:": "Envoyer un avatar :",
+ "This server does not support authentication with a phone number.": "Ce serveur ne prend pas en charge l’authentification avec un numéro de téléphone.",
"Missing password.": "Mot de passe manquant.",
"Passwords don't match.": "Les mots de passe ne correspondent pas.",
"Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Mot de passe trop court (min %(MIN_PASSWORD_LENGTH)s).",
- "This doesn't look like a valid email address.": "Cela ne semble pas être une adresse e-mail valide.",
- "This doesn't look like a valid phone number.": "Cela ne semble pas être un numéro de téléphone valide.",
- "User names may only contain letters, numbers, dots, hyphens and underscores.": "Les noms d’utilisateurs ne peuvent contenir que des lettres, chiffres, points et tirets hauts ou bas.",
+ "This doesn't look like a valid email address.": "Cette adresse e-mail ne semble pas valide.",
+ "This doesn't look like a valid phone number.": "Ce numéro de téléphone ne semble pas valide.",
+ "User names may only contain letters, numbers, dots, hyphens and underscores.": "Les noms d’utilisateurs ne peuvent contenir que des lettres, des chiffres, des points, des traits d'union et des tirets bas.",
"An unknown error occurred.": "Une erreur inconnue est survenue.",
"I already have an account": "J’ai déjà un compte",
"An error occurred: %(error_string)s": "Une erreur est survenue : %(error_string)s",
@@ -618,17 +433,12 @@
"There are no visible files in this room": "Il n'y a pas de fichier visible dans ce salon",
"Room": "Salon",
"Connectivity to the server has been lost.": "La connectivité au serveur a été perdue.",
- "Sent messages will be stored until your connection has returned.": "Les messages envoyés seront stockés jusqu’à ce que votre connection revienne.",
- "Auto-complete": "Auto-complétion",
- "Resend all": "Tout renvoyer",
- "(~%(searchCount)s results)": "(~%(searchCount)s résultats)",
+ "Sent messages will be stored until your connection has returned.": "Les messages envoyés seront stockés jusqu’à ce que votre connexion revienne.",
"Cancel": "Annuler",
- "cancel all": "tout annuler",
- "now. You can also select individual messages to resend or cancel.": "maintenant. Vous pouvez aussi sélectionner individuellement les messages que vous voulez renvoyer ou annuler.",
"Active call": "Appel en cours",
"code": "code",
"quote": "citer",
- "bullet": "puce",
+ "bullet": "liste à puces",
"numbullet": "liste numérotée",
"%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)sont rejoint le salon %(repeats)s fois",
"%(oneUser)sjoined %(repeats)s times": "%(oneUser)sa rejoint le salon %(repeats)s fois",
@@ -637,162 +447,157 @@
"%(severalUsers)sleft %(repeats)s times": "%(severalUsers)sont quitté le salon %(repeats)s fois",
"%(oneUser)sleft %(repeats)s times": "%(oneUser)sa quitté le salon %(repeats)s fois",
"%(severalUsers)sleft": "%(severalUsers)sont quitté le salon",
- "%(oneUser)sleft": "%(oneUser)sont quitté le salon",
+ "%(oneUser)sleft": "%(oneUser)sa quitté le salon",
"%(severalUsers)sjoined and left %(repeats)s times": "%(severalUsers)sont rejoint et quitté le salon %(repeats)s fois",
"%(oneUser)sjoined and left %(repeats)s times": "%(oneUser)sa rejoint et quitté le salon%(repeats)s fois",
"%(severalUsers)sjoined and left": "%(severalUsers)sont rejoint et quitté le salon",
"%(oneUser)sjoined and left": "%(oneUser)sa rejoint et quitté le salon",
- "%(severalUsers)sleft and rejoined %(repeats)s times": "%(severalUsers)sont quitté et à nouveau joint le salon %(repeats)s fois",
- "%(oneUser)sleft and rejoined %(repeats)s times": "%(oneUser)sa quitté et à nouveau joint le salon %(repeats)s fois",
- "%(severalUsers)sleft and rejoined": "%(severalUsers)sont 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)sleft and rejoined %(repeats)s times": "%(severalUsers)sont quitté et sont revenus dans le salon %(repeats)s fois",
+ "%(oneUser)sleft and rejoined %(repeats)s times": "%(oneUser)sa quitté et est revenu dans le salon %(repeats)s fois",
+ "%(severalUsers)sleft and rejoined": "%(severalUsers)sont quitté et sont revenus dans le salon",
+ "%(oneUser)sleft and rejoined": "%(oneUser)sa quitté et est revenu dans le salon",
+ "%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)sont rejeté leur 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é leur invitation",
"%(oneUser)srejected their invitation": "%(oneUser)sa rejeté son invitation",
- "%(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",
- "%(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",
+ "%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)sont vu leur invitation révoquée %(repeats)s fois",
+ "%(oneUser)shad their invitation withdrawn %(repeats)s times": "%(oneUser)sa vu son invitation révoquée %(repeats)s fois",
+ "%(severalUsers)shad their invitations withdrawn": "%(severalUsers)sont vu leur invitation révoquée",
+ "%(oneUser)shad their invitation withdrawn": "%(oneUser)sa vu son invitation révoquée",
"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",
"were invited": "ont été invité(e)s",
"were banned %(repeats)s times": "ont été banni(e)s %(repeats)s fois",
- "was banned %(repeats)s times": "été banni(e) %(repeats)s fois",
+ "was banned %(repeats)s times": "a été banni(e) %(repeats)s fois",
"were banned": "ont été banni(e)s",
- "were unbanned %(repeats)s times": "ont été amnistié(e)s %(repeats)s fois",
- "was unbanned %(repeats)s times": "a été amnistié(e) %(repeats)s fois",
- "were unbanned": "ont été amnistié(e)s",
- "were kicked %(repeats)s times": "ont été expulsé(e)s %(repeats)s fois",
- "was kicked %(repeats)s times": "a été expulsé(e) %(repeats)s fois",
- "were kicked": "ont été expulsé(e)s",
+ "were unbanned %(repeats)s times": "ont vu leur bannissement révoqué %(repeats)s fois",
+ "was unbanned %(repeats)s times": "a vu son bannissement révoqué %(repeats)s fois",
+ "were unbanned": "ont vu leur bannissement révoqué",
+ "were kicked %(repeats)s times": "ont été exclu(e)s %(repeats)s fois",
+ "was kicked %(repeats)s times": "a été exclu(e) %(repeats)s fois",
+ "were kicked": "ont été exclu(e)s",
"%(severalUsers)schanged their name %(repeats)s times": "%(severalUsers)sont changé leur nom %(repeats)s fois",
"%(oneUser)schanged their name %(repeats)s times": "%(oneUser)sa changé son nom %(repeats)s fois",
"%(severalUsers)schanged their name": "%(severalUsers)sont changé leur nom",
"%(oneUser)schanged their name": "%(oneUser)sa changé son nom",
- "%(severalUsers)schanged their avatar %(repeats)s times": "%(severalUsers)sont changé leur photo de profil %(repeats)s fois",
- "%(oneUser)schanged their avatar %(repeats)s times": "%(oneUser)sa changé sa photo de profil %(repeats)s fois",
- "%(severalUsers)schanged their avatar": "%(severalUsers)sont changé leur photo de profil",
- "%(oneUser)schanged their avatar": "%(oneUser)sa changé sa photo de profil",
- "Please select the destination room for this message": "Merci de sélectionner un salon de destination pour ce message",
+ "%(severalUsers)schanged their avatar %(repeats)s times": "%(severalUsers)sont changé leur avatar %(repeats)s fois",
+ "%(oneUser)schanged their avatar %(repeats)s times": "%(oneUser)sa changé son avatar %(repeats)s fois",
+ "%(severalUsers)schanged their avatar": "%(severalUsers)sont changé leur avatar",
+ "%(oneUser)schanged their avatar": "%(oneUser)sa changé son avatar",
+ "Please select the destination room for this message": "Merci de sélectionner le salon de destination pour ce message",
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s a supprimé le nom du salon.",
- "Analytics": "Outils d'analyse",
- "Opt out of analytics": "Refuser de participer",
- "Riot collects anonymous analytics to allow us to improve the application.": "Riot recueille des données anonymes qui nous permettent d’analyser et améliorer l’application.",
- "Passphrases must match": "Les phrases secrètes doivent être identiques",
- "Passphrase must not be empty": "La phrase secrète ne doit pas être vide",
- "Export room keys": "Exporter les clés du salon",
- "Enter passphrase": "Entrer la phrase secrète",
- "Confirm passphrase": "Confirmer la phrase secrète",
- "Import room keys": "Importer les clés du salon",
+ "Analytics": "Collecte de données",
+ "Opt out of analytics": "Ne pas envoyer ses données",
+ "Riot collects anonymous analytics to allow us to improve the application.": "Riot collecte des données anonymes qui nous permettent d’améliorer l’application.",
+ "Passphrases must match": "Les phrases de passe doivent être identiques",
+ "Passphrase must not be empty": "La phrase de passe ne peut pas être vide",
+ "Export room keys": "Exporter les clés de salon",
+ "Enter passphrase": "Saisir la phrase de passe",
+ "Confirm passphrase": "Confirmer la phrase de passe",
+ "Import room keys": "Importer les clés de salon",
"File to import": "Fichier à importer",
"This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "Ce processus vous permet d’exporter dans un fichier local les clés pour les messages que vous avez reçus dans des salons chiffrés. Il sera ensuite possible d’importer ce fichier dans un autre client Matrix, afin de permettre à ce client de pouvoir déchiffrer ces messages.",
- "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "Le fichier exporté permettra à tout ceux qui peuvent le lire de déchiffrer tous les messages chiffrés auxquels vous avez accès, vous devez donc être vigilant et le stocker dans un endroit sûr. Afin de protéger ce fichier, entrez ci-dessous une phrase secrète qui sera utilisée pour chiffrer les données exportées. Seule l’utilisation de la même phrase secrète permettra de déchiffrer et importer les données.",
- "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Ce processus vous permet d’importer les clés de chiffrement que vous avez précédemment exportées depuis un autre client Matrix. Vous serez alors capable de déchiffrer n’importe quel messages que l’autre client peut déchiffer.",
- "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",
+ "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "Le fichier exporté permettra à tous ceux qui peuvent le lire de déchiffrer tous les messages chiffrés auxquels vous avez accès, vous devez donc être vigilant et le stocker dans un endroit sûr. Afin de protéger ce fichier, saisissez ci-dessous une phrase secrète qui sera utilisée pour chiffrer les données exportées. Seule l’utilisation de la même phrase secrète permettra de déchiffrer et importer les données.",
+ "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Ce processus vous permet d’importer les clés de chiffrement que vous avez précédemment exportées depuis un autre client Matrix. Vous serez alors capable de déchiffrer n’importe quel message que l’autre client pouvait déchiffrer.",
+ "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 de passe. Vous devez saisir cette phrase de passe ici pour déchiffrer le fichier.",
+ "You must join the room to see its files": "Vous devez rejoindre le salon pour voir ses fichiers",
"Reject all %(invitedRooms)s invites": "Rejeter la totalité des %(invitedRooms)s invitations",
"Start new chat": "Démarrer une nouvelle discussion",
- "Guest users can't invite users. Please register.": "Les visiteurs ne peuvent inviter d’autres utilisateurs. Merci de vous inscrire.",
"Failed to invite": "Echec de l'invitation",
"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 l’invitation des utilisateurs suivants dans le salon %(roomName)s :",
"Confirm Removal": "Confirmer la suppression",
- "Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Êtes vous sûr de vouloir supprimer cet événement ? Notez que si vous supprimez le changement de nom d’un salon ou la mise à jour du sujet d’un salon, il est possible que le changement soit annulé.",
+ "Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Voulez-vous vraiment supprimer cet événement ? Notez que si vous supprimez le changement du nom ou du sujet d’un salon, il est possible que ce changement soit annulé.",
"Unknown error": "Erreur inconnue",
"Incorrect password": "Mot de passe incorrect",
- "This will make your account permanently unusable. You will not be able to re-register the same user ID.": "Ceci rendra votre compte inutilisable de manière permanente. Vous ne pourrez pas enregistrer à nouveau le même identifiant utilisateur.",
+ "This will make your account permanently unusable. You will not be able to re-register the same user ID.": "Ceci rendra votre compte inutilisable de manière permanente. Vous ne pourrez pas vous réinscrire avec le même identifiant utilisateur.",
"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, veuillez saisir 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é qu’il/elle voit dans ses Paramètres Utilisateur pour cet appareil correspond à la clé ci-dessous :",
"Device name": "Nom de l'appareil",
"Device key": "Clé de l'appareil",
- "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Si les clés correspondent, cliquer sur le bouton ’Vérifier’ ci-dessous. Si non, alors quelqu’un d’autre est en train d’intercepter cet appareil et vous devriez certainement cliquer sur le bouton ’Blacklister' (Ajouter à la liste noire) à la place.",
- "In future this verification process will be more sophisticated.": "À l’avenir ce processus de vérification sera simplifié et plus sophistiqué.",
+ "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Si les clés correspondent, cliquer sur le bouton \"Vérifier\" ci-dessous. Sinon quelqu’un d’autre est en train d’intercepter cet appareil et vous devriez certainement cliquer sur le bouton \"Ajouter à la liste noire\" à la place.",
+ "In future this verification process will be more sophisticated.": "À l’avenir ce processus de vérification sera plus sophistiqué.",
"Verify device": "Vérifier cet appareil",
"I verify that the keys match": "J’ai vérifié que les clés correspondaient",
- "We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Nous avons rencontré une erreur en essayant de rétablir votre session précédente. Si vous continuez, vous devrez vous identifier à nouveau et l’historique chiffré de vos conversations sera illisible.",
+ "We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Nous avons rencontré une erreur en essayant de rétablir votre session précédente. Si vous continuez, vous devrez vous identifier à nouveau et l’historique de vos discussions chiffrées sera illisible.",
"Unable to restore session": "Impossible de restaurer la session",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Si vous avez utilisé une version plus récente de Riot précédemment, votre session risque d’être incompatible avec cette version. Fermez cette fenêtre et retournez à la version plus récente.",
"Continue anyway": "Continuer quand même",
- "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Votre nom d’affichage est la manière dont vous allez apparaître pour les autres quand vous parlerez dans les salons. Que voulez-vous qu’il soit ?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Vous êtes en train d’ajouter à 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 d’effectuer le processus de vérification pour tous les appareils afin de confirmer qu’ils appartiennent à leurs propriétaires légitimes, mais vous pouvez renvoyer le(s) message(s) sans vérifier si vous préférez.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contient des appareils que vous n'avez encore jamais vus.",
"Unknown devices": "Appareils inconnus",
"Unknown Address": "Adresse inconnue",
- "Unblacklist": "Réhabiliter",
- "Blacklist": "Blacklister",
- "Unverify": "Non-vérifié",
+ "Unblacklist": "Supprimer de la liste noire",
+ "Blacklist": "Ajouter à la liste noire",
+ "Unverify": "Annuler la vérification",
"Verify...": "Vérifier...",
"ex. @bob:example.com": "ex. @bob:exemple.com",
"Add User": "Ajouter l'utilisateur",
- "This Home Server would like to make sure you are not a robot": "Ce homeserver veut vérifier que vous n’êtes pas un robot",
+ "This Home Server would like to make sure you are not a robot": "Ce serveur d'accueil veut vérifier que vous n’êtes pas un robot",
"Sign in with CAS": "S'identifier avec CAS",
"Custom Server Options": "Options de serveur personnalisées",
- "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Vous pouvez utiliser les options de serveur personnalisées pour vous identifier auprès d’un autre serveur Matrix en spécifiant l’URL d’un homeserver différent.",
- "This allows you to use this app with an existing Matrix account on a different home server.": "Cela vous permet d’utiliser l’application avec un compte Matrix existant sur un homeserver différent.",
- "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Vous pouvez également configurer un serveur d’identité différent mais cela risque entre autres d’empêcher les interactions par e-mail avec les autres utilisateurs.",
+ "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Vous pouvez utiliser les options de serveur personnalisées pour vous identifier auprès d’un autre serveur Matrix en spécifiant l’URL d’un serveur d'accueil différent.",
+ "This allows you to use this app with an existing Matrix account on a different home server.": "Cela vous permet d’utiliser l’application avec un compte Matrix existant sur un serveur d'accueil différent.",
+ "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Vous pouvez également configurer un serveur d’identité différent mais cela risque entre autres d’empêcher les interactions basées sur l'adresse e-mail avec les autres utilisateurs.",
"Dismiss": "Ignorer",
"Please check your email to continue registration.": "Merci de vérifier votre e-mail afin de continuer votre inscription.",
"Token incorrect": "Jeton incorrect",
- "A text message has been sent to": "Un message texte a été envoyé au",
- "Please enter the code it contains:": "Merci d'entre le code qu'il contient :",
+ "A text message has been sent to": "Un SMS a été envoyé au",
+ "Please enter the code it contains:": "Merci de saisir le code qu'il contient :",
"powered by Matrix": "propulsé par Matrix",
- "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Si vous n’entrez pas d’adresse e-mail, vous ne pourrez pas réinitialiser votre mot de passe. Êtes vous sûr ?",
- "You are registering with %(SelectedTeamName)s": "Vous vous enregistrez auprès de %(SelectedTeamName)s",
+ "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Si vous ne renseignez pas d’adresse e-mail, vous ne pourrez pas réinitialiser votre mot de passe. En êtes vous sûr(e) ?",
+ "You are registering with %(SelectedTeamName)s": "Vous vous inscrivez auprès de %(SelectedTeamName)s",
"Default server": "Serveur par défaut",
"Custom server": "Serveur personnalisé",
- "Home server URL": "URL du homeserver",
+ "Home server URL": "URL du serveur d'accueil",
"Identity server URL": "URL du serveur d’identité",
"What does this mean?": "Qu’est ce que cela signifie ?",
"Error decrypting audio": "Erreur lors du déchiffrement de l’audio",
"Error decrypting image": "Erreur lors du déchiffrement de l’image",
- "Image '%(Body)s' cannot be displayed.": "L'image '%(Body)s' ne peut être affichée.",
- "This image cannot be displayed.": "Cette image ne peut être affichée.",
+ "Image '%(Body)s' cannot be displayed.": "L'image \"%(Body)s\" ne peut pas être affichée.",
+ "This image cannot be displayed.": "Cette image ne peut pas être affichée.",
"Error decrypting video": "Erreur lors du déchiffrement de la vidéo",
"Add an Integration": "Ajouter une intégration",
- "URL Previews": "Aperçus d'URL",
- "Disable URL previews by default for participants in this room": "Désactiver les aperçus d'URL par défaut pour les participants de ce salon",
- "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "Les aperçus d'URL sont %(globalDisableUrlPreview)s par défaut pour les participants de ce salon.",
- "Enable URL previews for this room (affects only you)": "Activer les aperçus d'URL pour ce salon (n'affecte que vous)",
- "Drop file here to upload": "Déposer le fichier ici pour le télécharger",
- " (unsupported)": " (non supporté)",
- "Ongoing conference call%(supportedText)s.": "Appel conférence en cours%(supportedText)s.",
+ "URL Previews": "Aperçus des liens",
+ "Disable URL previews by default for participants in this room": "Désactiver les aperçus des liens par défaut pour les participants de ce salon",
+ "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "Les aperçus des liens sont %(globalDisableUrlPreview)s par défaut pour les participants de ce salon.",
+ "Enable URL previews for this room (affects only you)": "Activer les aperçus des liens pour ce salon (n'affecte que vous)",
+ "Drop file here to upload": "Déposer le fichier ici pour l'envoyer",
+ " (unsupported)": " (pas pris en charge)",
+ "Ongoing conference call%(supportedText)s.": "Téléconférence en cours%(supportedText)s.",
"Online": "En ligne",
- "Offline": "Déconnecté",
- "Disable URL previews for this room (affects only you)": "Désactiver les aperçus d'URL pour ce salon (n'affecte que vous)",
+ "Offline": "Hors ligne",
+ "Disable URL previews for this room (affects only you)": "Désactiver les aperçus des liens pour ce salon (n'affecte que vous)",
"Desktop specific": "Spécifique à l'application de bureau",
"Start automatically after system login": "Démarrer automatiquement après la phase d'authentification du système",
"Idle": "Inactif",
- "Jump to first unread message.": "Aller au premier message non-lu.",
+ "Jump to first unread message.": "Aller au premier message non lu.",
"Options": "Options",
- "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Vous êtes sur le point d’accéder à un site tiers afin de pouvoir vous identifier pour utiliser %(integrationsUrl)s. Voulez vous continuer ?",
+ "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Vous êtes sur le point d’accéder à un site tiers afin de pouvoir vous identifier pour utiliser %(integrationsUrl)s. Voulez-vous continuer ?",
"Removed or unknown message type": "Type de message inconnu ou supprimé",
"disabled": "désactivé",
"enabled": "activé",
- "Set a Display Name": "Définir un nom d’affichage",
"for %(amount)ss": "depuis %(amount)ss",
"for %(amount)sm": "depuis %(amount)sm",
"for %(amount)sh": "depuis %(amount)sh",
"for %(amount)sd": "depuis %(amount)sj",
- "$senderDisplayName changed the room avatar to
": "$senderDisplayName a changé l’image de profil du salon en
",
- "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s a supprimé l’image de profil du salon.",
- "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s a changé l’image de profil de %(roomName)s",
+ "%(senderDisplayName)s changed the room avatar to
": "%(senderDisplayName)s a changé l’avatar du salon en
",
+ "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s a supprimé l'avatar du salon.",
+ "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s a changé l’avatar de %(roomName)s",
"Device already verified!": "Appareil déjà vérifié !",
"Export": "Exporter",
- "Failed to register as guest:": "Échec de l’inscription en tant que visiteur :",
- "Guest access is disabled on this Home Server.": "L’accès en tant que visiteur est désactivé sur ce homeserver.",
+ "Guest access is disabled on this Home Server.": "L’accès en tant que visiteur est désactivé sur ce serveur d'accueil.",
"Import": "Importer",
"Incorrect username and/or password.": "Nom d’utilisateur et/ou mot de passe incorrect.",
"Results from DuckDuckGo": "Résultats de DuckDuckGo",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Les clés de signature que vous avez transmises correspondent aux clés que vous avez reçues de l’appareil %(deviceId)s de %(userId)s. L’appareil est vérifié.",
"This Home Server does not support login using email address.": "Ce serveur ne supporte pas l’identification par e-mail.",
- "There was a problem logging in.": "Un problème a été rencontré lors de l’identification.",
"Unknown (user, device) pair:": "Couple (utilisateur, appareil) inconnu :",
- "Unrecognised command:": "Commande non-reconnue :",
- "Unrecognised room alias:": "Alias de salon non-reconnu :",
- "Use compact timeline layout": "Utiliser l'affichage compact",
+ "Unrecognised command:": "Commande non reconnue :",
+ "Unrecognised room alias:": "Alias de salon non reconnu :",
+ "Use compact timeline layout": "Utiliser l'affichage compact de l'historique",
"Verified key": "Clé vérifiée",
"WARNING: Device already verified, but keys do NOT MATCH!": "ATTENTION : appareil déjà vérifié mais les clés NE CORRESPONDENT PAS !",
"WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "ATTENTION : ERREUR DE VÉRIFICATION DES CLÉS ! La clé de signature pour %(userId)s et l'appareil %(deviceId)s est “%(fprint)s” et ne correspond pas à la clé “%(fingerprint)s” qui a été fournie. Cela peut signifier que vos communications sont interceptées !",
@@ -801,78 +606,73 @@
"No Microphones detected": "Aucun micro détecté",
"No Webcams detected": "Aucune webcam détectée",
"No media permissions": "Pas de permission pour les médias",
- "You may need to manually permit Riot to access your microphone/webcam": "Il est possible que vous deviez manuellement permettre à Riot d’accéder à votre micro/webcam",
+ "You may need to manually permit Riot to access your microphone/webcam": "Il est possible que vous deviez manuellement autoriser Riot à accéder à votre micro/webcam",
"Default Device": "Appareil par défaut",
"Microphone": "Micro",
"Camera": "Caméra",
"Add a topic": "Ajouter un sujet",
"Anyone": "N'importe qui",
- "Are you sure you want to leave the room '%(roomName)s'?": "Êtes-vous sûr de vouloir quitter le salon '%(roomName)s' ?",
- "Custom level": "Niveau personnalisé",
+ "Are you sure you want to leave the room '%(roomName)s'?": "Voulez-vous vraiment quitter le salon \"%(roomName)s\" ?",
+ "Custom level": "Rang personnalisé",
"Device ID:": "Identifiant de l'appareil :",
- "device id: ": "identifiant appareil : ",
+ "device id: ": "identifiant de l'appareil : ",
"Device key:": "Clé de l’appareil :",
"Email address (optional)": "Adresse e-mail (facultatif)",
"Mobile phone number (optional)": "Numéro de téléphone (facultatif)",
"Password:": "Mot de passe :",
"Register": "S'inscrire",
- "Remote addresses for this room:": "Supprimer l'adresse pour ce salon :",
+ "Remote addresses for this room:": "Adresses distantes pour ce salon :",
"Save": "Enregistrer",
"Tagged as: ": "Étiquetter comme : ",
"You have disabled URL previews by default.": "Vous avez désactivé les aperçus d’URL par défaut.",
"You have enabled URL previews by default.": "Vous avez activé les aperçus d’URL par défaut.",
- "You have entered an invalid contact. Try using their Matrix ID or email address.": "Vous avez entré un contact invalide. Essayez d’utiliser leur identifiant Matrix ou leur adresse email.",
"Hide removed messages": "Cacher les messages supprimés",
"Add": "Ajouter",
- "%(count)s new messages.one": "%(count)s nouveau message",
- "%(count)s new messages.other": "%(count)s nouveaux messages",
- "Disable markdown formatting": "Désactiver le formattage markdown",
+ "%(count)s new messages|one": "%(count)s nouveau message",
+ "%(count)s new messages|other": "%(count)s nouveaux messages",
"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 l’URL de l’avatar",
"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.",
- "Uploading %(filename)s and %(count)s others.zero": "Téléchargement de %(filename)s",
- "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|zero": "Envoi de %(filename)s",
+ "Uploading %(filename)s and %(count)s others|one": "Envoi de %(filename)s et %(count)s autre",
+ "Uploading %(filename)s and %(count)s others|other": "Envoi de %(filename)s et %(count)s autres",
"You must register to use this functionality": "Vous devez vous inscrire pour utiliser cette fonctionnalité",
- "Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Tout renvoyer ou tout annuler maintenant. Vous pouvez aussi sélectionner des messages individuels à envoyer ou annuler.",
+ "Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Tout renvoyer ou tout annuler maintenant. Vous pouvez aussi sélectionner des messages individuels à renvoyer ou annuler.",
"Create new room": "Créer un nouveau salon",
- "Welcome page": "Page d'accueil",
"Room directory": "Répertoire des salons",
- "Start chat": "Démarrer une discussion",
+ "Start chat": "Commencer une discussion",
"New Password": "Nouveau mot de passe",
- "Start chatting": "Démarrer une discussion",
- "Start Chatting": "Démarrer une discussion",
+ "Start chatting": "Commencer une discussion",
+ "Start Chatting": "Commencer une discussion",
"Click on the button below to start chatting!": "Cliquer sur le bouton ci-dessous pour commencer une discussion !",
- "Create a new chat or reuse an existing one": "Démarrer une nouvelle discussion ou en réutiliser une existante",
- "You already have existing direct chats with this user:": "Vous avez déjà des discussions en cours avec cet utilisateur :",
+ "Create a new chat or reuse an existing one": "Commencer une nouvelle discussion ou en réutiliser une existante",
+ "You already have existing direct chats with this user:": "Vous avez déjà des discussions directes avec cet utilisateur :",
"Username available": "Nom d'utilisateur disponible",
"Username not available": "Nom d'utilisateur indisponible",
"Something went wrong!": "Quelque chose s’est mal passé !",
- "This will be your account name on the homeserver, or you can pick a different server.": "Cela sera le nom de votre compte sur le serveur , ou vous pouvez sélectionner un autre serveur.",
- "If you already have a Matrix account you can log in instead.": "Si vous avez déjà un compte Matrix vous pouvez vous identifier à la place.",
+ "This will be your account name on the homeserver, or you can pick a different server.": "Cela sera le nom de votre compte sur le serveur d'accueil , ou vous pouvez sélectionner un autre serveur.",
+ "If you already have a Matrix account you can log in instead.": "Si vous avez déjà un compte Matrix vous pouvez vous connecter à la place.",
"a room": "un salon",
"Accept": "Accepter",
"Active call (%(roomName)s)": "Appel en cours (%(roomName)s)",
- "Admin tools": "Outils d'administration",
"Alias (optional)": "Alias (facultatif)",
- "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate 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 certificat SSL de votre homeserver, et qu'aucune extension de navigateur ne bloque les requêtes.",
- "Click here to join the discussion!": "Cliquer ici pour joindre la discussion !",
+ "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Impossible de se connecter au serveur d'accueil - veuillez vérifier votre connexion, assurez-vous que le certificat SSL de votre serveur d'accueil est un certificat de confiance, et qu'aucune extension du navigateur ne bloque les requêtes.",
+ "Click here to join the discussion!": "Cliquer ici pour rejoindre la discussion !",
"Close": "Fermer",
"Custom": "Personnaliser",
"Decline": "Refuser",
"Disable Notifications": "Désactiver les notifications",
"Drop File Here": "Déposer le fichier Ici",
"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 de l'envoi de l'image de profil !",
"Incoming call from %(name)s": "Appel 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",
- "No display name": "Pas de nom d'affichage",
+ "No display name": "Pas de nom affiché",
"Otherwise, click here to send a bug report.": "Sinon, cliquer ici pour envoyer un rapport d'erreur.",
- "Private Chat": "Conversation privée",
- "Public Chat": "Conversation publique",
- "Reason: %(reasonText)s": "Raison: %(reasonText)s",
+ "Private Chat": "Discussion privée",
+ "Public Chat": "Discussion publique",
+ "Reason: %(reasonText)s": "Raison : %(reasonText)s",
"Rejoin": "Rejoindre",
"Room contains unknown devices": "Le salon contient des appareils inconnus",
"%(roomName)s does not exist.": "%(roomName)s n'existe pas.",
@@ -880,25 +680,25 @@
"Seen by %(userName)s at %(dateTime)s": "Vu par %(userName)s à %(dateTime)s",
"Send anyway": "Envoyer quand même",
"Show Text Formatting Toolbar": "Afficher la barre de formatage de texte",
- "Start authentication": "Démarrer une authentification",
+ "Start authentication": "Commencer une authentification",
"This invitation was sent to an email address which is not associated with this account:": "Cette invitation a été envoyée à une adresse e-mail qui n'est pas associée avec ce compte :",
"This room": "Ce salon",
"Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Impossible de vérifier que l'adresse à qui cette invitation a été envoyée correspond à celle associée à votre compte.",
"Undecryptable": "Indéchiffrable",
"Unencrypted message": "Message non chiffré",
"unknown caller": "appelant inconnu",
- "Unnamed Room": "Salon sans nom",
- "Unverified": "Non verifié",
+ "Unnamed Room": "Salon anonyme",
+ "Unverified": "Non vérifié",
"%(user)s is a": "%(user)s est un(e)",
- "Username invalid: %(errMessage)s": "Nom d'utilisateur invalide : %(errMessage)s",
- "Verified": "Verifié",
+ "Username invalid: %(errMessage)s": "Nom d'utilisateur non valide : %(errMessage)s",
+ "Verified": "Vérifié",
"Would you like to accept or decline this invitation?": "Souhaitez-vous accepter ou refuser cette invitation ?",
- "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 banned from %(roomName)s by %(userName)s.": "Vous avez été banni(e) de %(roomName)s par %(userName)s.",
+ "You have been kicked from %(roomName)s by %(userName)s.": "Vous avez été exclu de %(roomName)s par %(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.",
- "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).other": "(~%(count)s résultats)",
+ "Your home server does not support device management.": "Votre serveur d'accueil ne prend pas en charge la gestion d'appareils.",
+ "(~%(count)s results)|one": "(~%(count)s résultat)",
+ "(~%(count)s results)|other": "(~%(count)s résultats)",
"Device Name": "Nom de l'appareil",
"Encrypted by a verified device": "Chiffré par un appareil vérifié",
"Encrypted by an unverified device": "Chiffré par un appareil non vérifié",
@@ -906,78 +706,296 @@
"Encryption is not enabled in this room": "Le chiffrement n'est pas activé sur ce salon",
"Home": "Accueil",
"To link to a room it must have an address.": "Pour récupérer le lien vers un salon celui-ci doit avoir une adresse.",
- "Upload new:": "Télécharger un nouveau :",
- "And %(count)s more...": "Et %(count)s autres...",
- "Join as voice or video.": "Joindre avec audio ou vidéo.",
+ "Upload new:": "Envoyer un nouveau :",
+ "Join as voice or video.": "Rejoindre en audio ou en vidéo.",
"Last seen": "Vu pour la dernière fois",
"Level:": "Niveau :",
- "Searching known users": "Recherche d'utilisateurs connus",
- "Set": "Défini",
- "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (pouvoir %(powerLevelNumber)s)",
+ "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (rang %(powerLevelNumber)s)",
"(could not connect media)": "(impossible de se connecter au média)",
"(no answer)": "(pas de réponse)",
"(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",
"Not a valid Riot keyfile": "Fichier de clé Riot non valide",
- "Authentication check failed: incorrect password?": "Erreur d’identification: mot de passe incorrect ?",
- "Disable Peer-to-Peer for 1:1 calls": "Désactiver les appels 1:1 pair-à-pair",
+ "Authentication check failed: incorrect password?": "Erreur d’authentification : mot de passe incorrect ?",
+ "Disable Peer-to-Peer for 1:1 calls": "Désactiver les appels 1 à 1 pair-à-pair",
"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.",
- "Press to start a chat with someone": "Cliquez sur pour entamer une discussion avec quelqu'un",
- "You're not in any rooms yet! Press to make a room or to browse the directory": "Vous n'avez pas encore rejoint de salon ! Cliquez sur pour créer un salon ou sur 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",
+ "This will allow you to reset your password and receive notifications.": "Ceci vous permettra de réinitialiser votre mot de passe et de recevoir des notifications.",
+ "Press to start a chat with someone": "Appuyez sur pour commencer une discussion avec quelqu'un",
+ "You're not in any rooms yet! Press to make a room or to browse the directory": "Vous n'avez pas encore rejoint de salon ! Appuyez sur pour créer un salon ou sur 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 définir un mot de passe",
"Skip": "Passer",
"Start verification": "Commencer la vérification",
"Share without verifying": "Partager sans vérifier",
"Ignore request": "Ignorer la requête",
- "You added a new device '%(displayName)s', which is requesting encryption keys.": "Vous avez ajouté un nouvel appareil, '%(displayName)s', qui 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.",
+ "You added a new device '%(displayName)s', which is requesting encryption keys.": "Vous avez ajouté un nouvel appareil, \"%(displayName)s\", qui 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",
"Updates": "Mises à 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",
+ "Changes colour scheme of current room": "Change le jeu de couleurs du salon",
"Delete widget": "Supprimer le widget",
- "Define the power level of a user": "Définir le niveau de privilèges d'un utilisateur",
+ "Define the power level of a user": "Définir le rang d'un utilisateur",
"Edit": "Modifier",
- "Enable automatic language detection for syntax highlighting": "Activer la détection automatique de langue pour la correction orthographique",
+ "Enable automatic language detection for syntax highlighting": "Activer la détection automatique de la 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",
+ "Hide avatar and display name changes": "Masquer les changements d'avatar et de nom affiché",
+ "Revoke widget access": "Révoquer les accès du widget",
+ "Sets the room topic": "Défini le sujet du salon",
"Show Apps": "Afficher les applications",
- "To get started, please pick a username!": "Pour débuter, choisissez un nom d'utilisateur !",
+ "To get started, please pick a username!": "Pour commencer, 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",
+ "Unbans user with given id": "Révoque le bannissement de 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",
+ "Autocomplete Delay (ms):": "Délai pour l'auto-complétion (ms) :",
+ "Loading device info...": "Chargement des informations de l'appareil...",
"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 +example:matrix.org.": "Pour rejoindre un groupe existant, vous devez connaître son identifiant de groupe ; il ressemble à +exemple:matrix.org.",
+ "Room creation failed": "Échec de création du salon",
"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"
+ "Automatically replace plain text Emoji": "Remplacer automatiquement le texte par des Émoticônes",
+ "Failed to upload image": "Impossible d'envoyer l'image",
+ "Hide avatars in user and room mentions": "Masquer les avatars dans les mentions d'utilisateur et de salon",
+ "Do you want to load widget from URL:": "Voulez-vous charger le widget depuis l’URL :",
+ "%(widgetName)s widget added by %(senderName)s": "Widget %(widgetName)s ajouté par %(senderName)s",
+ "%(widgetName)s widget removed by %(senderName)s": "Widget %(widgetName)s supprimé par %(senderName)s",
+ "Publish this room to the public in %(domain)s's room directory?": "Publier ce salon dans le répertoire de salons public de %(domain)s ?",
+ "Integrations Error": "Erreur d'intégration",
+ "Cannot add any more widgets": "Impossible d'ajouter plus de widgets",
+ "The maximum permitted number of widgets have already been added to this room.": "Le nombre maximum de widgets autorisés a déjà été atteint pour ce salon.",
+ "NOTE: Apps are not end-to-end encrypted": "NOTE : Les applications ne sont pas chiffrées de bout en bout",
+ "AM": "AM",
+ "PM": "PM",
+ "Copied!": "Copié !",
+ "Failed to copy": "Échec de la copie",
+ "Verifies a user, device, and pubkey tuple": "Vérifie un utilisateur, un appareil et une clé publique",
+ "%(widgetName)s widget modified by %(senderName)s": "Widget %(widgetName)s modifié par %(senderName)s",
+ "Robot check is currently unavailable on desktop - please use a web browser": "La vérification robot n'est pas encore disponible pour le bureau - veuillez utiliser un navigateur",
+ "Who would you like to add to this community?": "Qui souhaitez-vous ajouter à cette communauté ?",
+ "Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Attention : toute personne ajoutée à une communauté sera visible par tous ceux connaissant l'identifiant de la communauté",
+ "Invite new community members": "Inviter de nouveaux membres dans cette communauté",
+ "Name or matrix ID": "Nom ou identifiant matrix",
+ "Which rooms would you like to add to this community?": "Quels salons souhaitez-vous ajouter à cette communauté ?",
+ "Warning: any room you add to a community will be publicly visible to anyone who knows the community ID": "Attention : tout salon ajouté à une communauté est visible par quiconque connaissant l'identifiant de la communauté",
+ "Add rooms to the community": "Ajouter des salons à la communauté",
+ "Room name or alias": "Nom du salon ou alias",
+ "Add to community": "Ajouter à la communauté",
+ "Failed to invite the following users to %(groupId)s:": "Échec de l'invitation des utilisateurs à %(groupId)s :",
+ "Failed to invite users to community": "Échec de l'invitation d'utilisateurs à la communauté",
+ "Failed to invite users to %(groupId)s": "Échec de l'invitation d'utilisateurs à %(groupId)s",
+ "Failed to add the following rooms to %(groupId)s:": "Échec de l'ajout des salons suivants à %(groupId)s :",
+ "Ignored user": "Utilisateur ignoré",
+ "You are now ignoring %(userId)s": "Dorénavant vous ignorez %(userId)s",
+ "Unignored user": "Utilisateur n'étant plus ignoré",
+ "You are no longer ignoring %(userId)s": "Vous n'ignorez plus %(userId)s",
+ "Invite to Community": "Inviter dans la Communauté",
+ "Communities": "Communautés",
+ "Message Pinning": "Épingler un message",
+ "Mention": "Mentionner",
+ "Unignore": "Ne plus ignorer",
+ "Ignore": "Ignorer",
+ "Invite": "Inviter",
+ "User Options": "Options d'utilisateur",
+ "Admin Tools": "Outils d'administration",
+ "Unpin Message": "Dépingler le message",
+ "Jump to message": "Aller au message",
+ "No pinned messages.": "Aucun message épinglé.",
+ "Loading...": "Chargement...",
+ "Pinned Messages": "Messages épinglés",
+ "Unknown": "Inconnu",
+ "Unnamed room": "Salon sans nom",
+ "No rooms to show": "Aucun salon à afficher",
+ "Remove avatar": "Supprimer l'avatar",
+ "To change the room's avatar, you must be a": "Pour modifier l'avatar du salon, vous devez être un",
+ "To change the room's name, you must be a": "Pour changer le nom du salon, vous devez être un",
+ "To change the room's main address, you must be a": "Pour changer l'adresse principale du salon, vous devez être un",
+ "To change the room's history visibility, you must be a": "Pour changer la visibilité de l'historique d'un salon, vous devez être un",
+ "To change the permissions in the room, you must be a": "Pour changer les autorisations du salon, vous devez être un",
+ "To change the topic, you must be a": "Pour changer le sujet, vous devez être un",
+ "To modify widgets in the room, you must be a": "Pour modifier les widgets, vous devez être un",
+ "Banned by %(displayName)s": "Banni par %(displayName)s",
+ "To send messages, you must be a": "Pour envoyer des messages, vous devez être un",
+ "%(senderName)s changed the pinned messages for the room.": "%(senderName)s a changé les messages épinglés du salon.",
+ "%(names)s and %(count)s others are typing|other": "%(names)s et %(count)s autres écrivent",
+ "Jump to read receipt": "Aller à l'accusé de lecture",
+ "World readable": "Lisible publiquement",
+ "Guests can join": "Les invités peuvent rejoindre le salon",
+ "To invite users into the room, you must be a": "Pour inviter des utilisateurs dans le salon, vous devez être un",
+ "To configure the room, you must be a": "Pour configurer le salon, vous devez être un",
+ "To kick users, you must be a": "Pour exclure des utilisateurs, vous devez être un",
+ "To ban users, you must be a": "Pour bannir des utilisateurs, vous devez être un",
+ "To remove other users' messages, you must be a": "Pour supprimer les messages d'autres utilisateurs, vous devez être un",
+ "To send events of type , you must be a": "Pour envoyer des évènements du type , vous devez être un",
+ "Invalid community ID": "Identifiant de communauté non valide",
+ "'%(groupId)s' is not a valid community ID": "\"%(groupId)s\" n'est pas un identifiant de communauté valide",
+ "Related Communities": "Communautés associées",
+ "Related communities for this room:": "Communautés associées à ce salon :",
+ "This room has no related communities": "Ce salon n'est associé à aucune communauté",
+ "%(names)s and %(count)s others are typing|one": "%(names)s et un autre écrivent",
+ "%(senderName)s sent an image": "%(senderName)s a envoyé une image",
+ "%(senderName)s sent a video": "%(senderName)s a envoyé une vidéo",
+ "%(senderName)s uploaded a file": "%(senderName)s a transféré un fichier",
+ "Disinvite this user?": "Désinviter l'utilisateur ?",
+ "Kick this user?": "Exclure cet utilisateur ?",
+ "Unban this user?": "Révoquer le bannissement de cet utilisateur ?",
+ "Ban this user?": "Bannir cet utilisateur ?",
+ "Drop here to favourite": "Déposer ici pour mettre en favori",
+ "Drop here to tag direct chat": "Déposer ici pour marquer comme conversation directe",
+ "Drop here to restore": "Déposer ici pour restaurer",
+ "Drop here to demote": "Déposer ici pour rétrograder",
+ "You have been kicked from this room by %(userName)s.": "Vous avez été exclu de ce salon par %(userName)s.",
+ "You have been banned from this room by %(userName)s.": "Vous avez été banni de ce salon par %(userName)s.",
+ "You are trying to access a room.": "Vous essayez d'accéder à un salon.",
+ "Members only (since the point in time of selecting this option)": "Seulement les membres (depuis la sélection de cette option)",
+ "Members only (since they were invited)": "Seulement les membres (depuis leur invitation)",
+ "Members only (since they joined)": "Seulement les membres (depuis leur arrivée)",
+ "New community ID (e.g. +foo:%(localDomain)s)": "Nouvel identifiant de communauté (par ex. +foo:%(localDomain)s)",
+ "Message removed by %(userId)s": "Message supprimé par %(userId)s",
+ "Message removed": "Message supprimé",
+ "An email has been sent to %(emailAddress)s": "Un e-mail a été envoyé à %(emailAddress)s",
+ "A text message has been sent to %(msisdn)s": "Un message a été envoyé à %(msisdn)s",
+ "Remove from community": "Supprimer de la communauté",
+ "Disinvite this user from community?": "Désinviter cet utilisateur de la communauté ?",
+ "Remove this user from community?": "Supprimer cet utilisateur de la communauté ?",
+ "Failed to withdraw invitation": "Échec de l'annulation de l'invitation",
+ "Failed to remove user from community": "Échec de la suppression de l'utilisateur de la communauté",
+ "Filter community members": "Filtrer les membres de la communauté",
+ "Filter community rooms": "Filtrer les salons de la communauté",
+ "Failed to remove room from community": "Échec de la suppression du salon de la communauté",
+ "Failed to remove '%(roomName)s' from %(groupId)s": "Échec de la suppression de \"%(roomName)s\" de %(groupId)s",
+ "Are you sure you want to remove '%(roomName)s' from %(groupId)s?": "Voulez-vous vraiment supprimer \"%(roomName)s\" de %(groupId)s ?",
+ "Removing a room from the community will also remove it from the community page.": "Supprimer un salon de la communauté le supprimera aussi de la page de la communauté.",
+ "Remove this room from the community": "Supprimer ce salon de la communauté",
+ "Delete Widget": "Supprimer le widget",
+ "Deleting a widget removes it for all users in this room. Are you sure you want to delete this widget?": "Supprimer un widget le supprime pour tous les utilisateurs du salon. Voulez-vous vraiment supprimer ce widget ?",
+ "%(nameList)s %(transitionList)s": "%(nameList)s %(transitionList)s",
+ "%(severalUsers)sjoined %(count)s times|other": "%(severalUsers)s ont rejoint le salon %(count)s fois",
+ "%(severalUsers)sjoined %(count)s times|one": "%(severalUsers)s ont rejoint le salon",
+ "%(oneUser)sjoined %(count)s times|other": "%(oneUser)s a rejoint le salon %(count)s fois",
+ "%(oneUser)sjoined %(count)s times|one": "%(oneUser)s a rejoint le salon",
+ "%(severalUsers)sleft %(count)s times|other": "%(severalUsers)s sont partis %(count)s fois",
+ "%(severalUsers)sleft %(count)s times|one": "%(severalUsers)s sont partis",
+ "%(oneUser)sleft %(count)s times|other": "%(oneUser)s est parti %(count)s fois",
+ "%(oneUser)sleft %(count)s times|one": "%(oneUser)s est parti",
+ "%(severalUsers)sjoined and left %(count)s times|other": "%(severalUsers)s ont rejoint le salon et en sont partis %(count)s fois",
+ "%(severalUsers)sjoined and left %(count)s times|one": "%(severalUsers)s ont rejoint le salon et en sont partis",
+ "%(oneUser)sjoined and left %(count)s times|other": "%(oneUser)s a rejoint le salon et en est parti %(count)s fois",
+ "%(oneUser)sjoined and left %(count)s times|one": "%(oneUser)s a rejoint le salon et en est parti",
+ "%(severalUsers)sleft and rejoined %(count)s times|other": "%(severalUsers)s sont partis et revenus %(count)s fois",
+ "%(severalUsers)sleft and rejoined %(count)s times|one": "%(severalUsers)s sont partis et revenus",
+ "%(oneUser)sleft and rejoined %(count)s times|other": "%(oneUser)s est parti et revenu %(count)s fois",
+ "%(oneUser)sleft and rejoined %(count)s times|one": "%(oneUser)s est parti et revenu",
+ "%(severalUsers)srejected their invitations %(count)s times|other": "%(severalUsers)s ont décliné leur invitation %(count)s fois",
+ "%(severalUsers)srejected their invitations %(count)s times|one": "%(severalUsers)s ont décliné leur invitation",
+ "%(oneUser)srejected their invitation %(count)s times|other": "%(oneUser)s a décliné son invitation %(count)s fois",
+ "%(oneUser)srejected their invitation %(count)s times|one": "%(oneUser)s a décliné son invitation",
+ "%(severalUsers)shad their invitations withdrawn %(count)s times|other": "%(severalUsers)s ont vu leur invitation révoquée %(count)s fois",
+ "%(severalUsers)shad their invitations withdrawn %(count)s times|one": "%(severalUsers)s ont vu leur invitation révoquée",
+ "%(oneUser)shad their invitation withdrawn %(count)s times|other": "%(oneUser)s a vu son invitation révoquée %(count)s fois",
+ "%(oneUser)shad their invitation withdrawn %(count)s times|one": "%(oneUser)s a vu son invitation révoquée",
+ "were invited %(count)s times|other": "ont été invités %(count)s fois",
+ "were invited %(count)s times|one": "ont été invités",
+ "was invited %(count)s times|other": "a été invité %(count)s fois",
+ "was invited %(count)s times|one": "a été invité",
+ "were banned %(count)s times|other": "ont été bannis %(count)s fois",
+ "were banned %(count)s times|one": "ont été bannis",
+ "was banned %(count)s times|other": "a été banni %(count)s fois",
+ "was banned %(count)s times|one": "a été banni",
+ "were unbanned %(count)s times|other": "ont vu leur bannissement révoqué %(count)s fois",
+ "were unbanned %(count)s times|one": "ont vu leur bannissement révoqué",
+ "was unbanned %(count)s times|other": "a vu son bannissement révoqué %(count)s fois",
+ "was unbanned %(count)s times|one": "a vu son bannissement révoqué",
+ "were kicked %(count)s times|other": "ont été exclus %(count)s fois",
+ "were kicked %(count)s times|one": "ont été exclus",
+ "was kicked %(count)s times|other": "a été exclu %(count)s fois",
+ "was kicked %(count)s times|one": "a été exclu",
+ "%(severalUsers)schanged their name %(count)s times|other": "%(severalUsers)s ont changé de nom %(count)s fois",
+ "%(severalUsers)schanged their name %(count)s times|one": "%(severalUsers)s ont changé de nom",
+ "%(oneUser)schanged their name %(count)s times|other": "%(oneUser)s a changé de nom %(count)s fois",
+ "%(oneUser)schanged their name %(count)s times|one": "%(oneUser)s a changé de nom",
+ "%(severalUsers)schanged their avatar %(count)s times|other": "%(severalUsers)s ont changé d'avatar %(count)s fois",
+ "%(severalUsers)schanged their avatar %(count)s times|one": "%(severalUsers)s ont changé d'avatar",
+ "%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)s a changé d'avatar %(count)s fois",
+ "%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)s a changé d'avatar",
+ "%(items)s and %(count)s others|other": "%(items)s et %(count)s autres",
+ "%(items)s and %(count)s others|one": "%(items)s et un autre",
+ "And %(count)s more...|other": "Et %(count)s autres...",
+ "Matrix ID": "Identifiant Matrix",
+ "Matrix Room ID": "Identifiant de salon Matrix",
+ "email address": "adresse e-mail",
+ "Try using one of the following valid address types: %(validTypesList)s.": "Essayez d'utiliser un des types d'adresse valide suivants : %(validTypesList)s.",
+ "You have entered an invalid address.": "L'adresse saisie n'est pas valide.",
+ "Community IDs may only contain characters a-z, 0-9, or '=_-./'": "Les identifiants de communauté ne peuvent contenir que les caractères a-z, 0-9 ou '=_-./'",
+ "Something went wrong whilst creating your community": "Une erreur est survenue lors de la création de votre communauté",
+ "Create Community": "Créer une communauté",
+ "Community Name": "Nom de la communauté",
+ "Community ID": "Identifiant de la communauté",
+ "example": "exemple",
+ "Advanced options": "Options avancées",
+ "Block users on other matrix homeservers from joining this room": "Empêcher les utilisateurs d'autres serveurs d'accueil Matrix de rejoindre ce salon",
+ "This setting cannot be changed later!": "Ce paramètre ne peut pas être changé plus tard !",
+ "Add rooms to the community summary": "Ajouter des salons au sommaire de la communauté",
+ "Which rooms would you like to add to this summary?": "Quels salons souhaitez-vous ajouter à ce sommaire ?",
+ "Add to summary": "Ajouter au sommaire",
+ "Failed to add the following rooms to the summary of %(groupId)s:": "Échec de l'ajout des salons suivants au sommaire de %(groupId)s :",
+ "Add a Room": "Ajouter un salon",
+ "Failed to remove the room from the summary of %(groupId)s": "Échec de la suppression du salon du sommaire de %(groupId)s",
+ "The room '%(roomName)s' could not be removed from the summary.": "Le salon \"%(roomName)s\" n'a pas pu être supprimé du sommaire.",
+ "Add users to the community summary": "Ajouter des utilisateurs au sommaire de la communauté",
+ "Who would you like to add to this summary?": "Qui souhaitez-vous ajouter à ce sommaire ?",
+ "Failed to add the following users to the summary of %(groupId)s:": "Échec de l'ajout des utilisateurs suivants au sommaire de %(groupId)s :",
+ "Add a User": "Ajouter un utilisateur",
+ "Failed to remove a user from the summary of %(groupId)s": "Échec de la suppression d'un utilisateur du sommaire de %(groupId)s",
+ "The user '%(displayName)s' could not be removed from the summary.": "L'utilisateur \"%(displayName)s\" n'a pas pu être supprimé du sommaire.",
+ "Failed to update community": "Échec de la mise à jour de la communauté",
+ "Unable to accept invite": "Impossible d'accepter l'invitation",
+ "Unable to reject invite": "Impossible de décliner l'invitation",
+ "Leave Community": "Quitter la communauté",
+ "Leave %(groupName)s?": "Quitter %(groupName)s ?",
+ "Leave": "Quitter",
+ "Unable to leave room": "Impossible de partir du salon",
+ "Community Settings": "Paramètres de la communauté",
+ "Add rooms to this community": "Ajouter des salons à cette communauté",
+ "%(inviter)s has invited you to join this community": "%(inviter)s vous a invité à rejoindre cette communauté",
+ "You are an administrator of this community": "Vous êtes un(e) administrateur(trice) de cette communauté",
+ "You are a member of this community": "Vous êtes un membre de cette communauté",
+ "Community Member Settings": "Paramètres de membre de la communauté",
+ "Publish this community on your profile": "Publier cette communauté sur votre profil",
+ "Long Description (HTML)": "Description longue (HTML)",
+ "Description": "Description",
+ "Community %(groupId)s not found": "Communauté %(groupId)s non trouvée",
+ "This Home server does not support communities": "Ce serveur d'accueil ne prend pas en charge les communautés",
+ "Failed to load %(groupId)s": "Échec du chargement de %(groupId)s",
+ "Your Communities": "Vos communautés",
+ "You're not currently a member of any communities.": "Vous n'ếtes actuellement membre d'aucune communauté.",
+ "Error whilst fetching joined communities": "Erreur lors de l'obtention des communautés rejointes",
+ "Create a new community": "Créer une nouvelle communauté",
+ "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Créez une communauté pour grouper des utilisateurs et des salons ! Construisez une page d'accueil personnalisée pour distinguer votre espace dans l'univers Matrix.",
+ "Join an existing community": "Rejoindre une communauté existante",
+ "To join an existing community you'll have to know its community identifier; this will look something like +example:matrix.org.": "Pour rejoindre une communauté existante, vous devrez connaître son identifiant. Cela ressemblera à +exemple:matrix.org.",
+ "There's no one else here! Would you like to invite others or stop warning about the empty room?": "Il n'y a personne d'autre ici ! Voulez-vous inviter d'autres personnes ou ne plus être notifié de ce salon vide ?",
+ "Disable Emoji suggestions while typing": "Désactiver les suggestions d'emojis lors de la saisie",
+ "Disable big emoji in chat": "Désactiver les gros emojis dans les discussions",
+ "Mirror local video feed": "Refléter le flux vidéo local",
+ "Light theme": "Thème clair",
+ "Dark theme": "Thème sombre",
+ "Ignored Users": "Utilisateurs ignorés",
+ "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "Un e-mail a été envoyé à %(emailAddress)s. Après avoir suivi le lien présent dans celui-ci, cliquez ci-dessous.",
+ "Ignores a user, hiding their messages from you": "Ignore un utilisateur, en masquant ses messages",
+ "Stops ignoring a user, showing their messages going forward": "N'ignore plus un utilisateur, en affichant ses messages à partir de maintenant",
+ "The visibility of '%(roomName)s' in %(groupId)s could not be updated.": "La visibilité de \"%(roomName)s\" dans %(groupId)s n'a pas pu être mise à jour.",
+ "Visibility in Room List": "Visibilité dans la liste des salons",
+ "Visible to everyone": "Visible pour tout le monde",
+ "Only visible to community members": "Visible uniquement par les membres de la communauté",
+ "Community Invites": "Invitations de communauté",
+ "Notify the whole room": "Notifier tout le salon",
+ "Room Notification": "Notification du salon",
+ "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "Ces salons sont affichés aux membres de la communauté sur la page de la communauté. Les membres de la communauté peuvent rejoindre ces salons en cliquant dessus.",
+ "HTML for your community's page
\n\n Use the long description to introduce new members to the community, or distribute\n some important links\n
\n\n You can even use 'img' tags\n
\n": "HTML pour votre page de communauté
\n\n Utilisez la description longue pour présenter la communauté aux nouveaux membres\n ou pour diffuser des liens importants\n
\n\n Vous pouvez même utiliser des balises \"img\"\n
\n",
+ "Your community hasn't got a Long Description, a HTML page to show to community members.
Click here to open settings and give it one!": "Votre communauté n'a pas de description longue, une page HTML à montrer aux membres de la communauté.
Cliquez ici pour ouvrir les réglages et créez-la !",
+ "Show these rooms to non-members on the community page and room list?": "Afficher ces salons aux non-membres sur la page de communauté et la liste des salons ?"
}
diff --git a/src/i18n/strings/gl.json b/src/i18n/strings/gl.json
new file mode 100644
index 0000000000..c3a103c4e5
--- /dev/null
+++ b/src/i18n/strings/gl.json
@@ -0,0 +1,18 @@
+{
+ "This email address is already in use": "Este enderezo de correo xa está a ser utilizado",
+ "This phone number is already in use": "Este número de teléfono xa está a ser utilizado",
+ "Failed to verify email address: make sure you clicked the link in the email": "Fallo na verificación do enderezo de correo: asegúrese de ter picado na ligazón do correo",
+ "The remote side failed to pick up": "O interlocutor non respondeu",
+ "Unable to capture screen": "Non se puido pillar a pantalla",
+ "Existing Call": "Chamada existente",
+ "You are already in a call.": "Xa está nunha chamada.",
+ "VoIP is unsupported": "VoIP non admitida",
+ "You cannot place VoIP calls in this browser.": "Non pode establecer chamadas VoIP en este navegador.",
+ "You cannot place a call with yourself.": "Non pode chamarse a vostede mesma.",
+ "Conference calls are not supported in this client": "Non pode establecer chamadas de Reunión en este cliente",
+ "Conference calls are not supported in encrypted rooms": "Nas salas cifradas non se pode establecer Chamadas de Reunión",
+ "Warning!": "Aviso!",
+ "Conference calling is in development and may not be reliable.": "As chamadas de Reunión poderían non ser totalmente estables xa que están en desenvolvemento.",
+ "Failed to set up conference call": "Fallo ao establecer a chamada de reunión",
+ "Conference call failed.": "Fallo na chamada de reunión."
+}
diff --git a/src/i18n/strings/he.json b/src/i18n/strings/he.json
index 2d9daecc49..0967ef424b 100644
--- a/src/i18n/strings/he.json
+++ b/src/i18n/strings/he.json
@@ -1,21 +1 @@
-{
- "ar-ae": "ערבית (U.A.E)",
- "ar-bh": "ערבית (בחריין)",
- "ar-dz": "ערבית (אלג'יריה)",
- "ar-eg": "ערבית (מצריים)",
- "ar-iq": "ערבית (עיראק)",
- "ar-jo": "ערבית (ירדן)",
- "af": "אפריקאית",
- "ar-kw": "ערבית (כווית)",
- "ar-lb": "ערבית (לבנון)",
- "ar-ly": "ערבית (לוב)",
- "ar-ma": "ערבית (מרוקו)",
- "ar-om": "ערבית (אומן)",
- "ar-qa": "ערבית (קטאר)",
- "ar-sa": "ערבית (ערב הסעודית)",
- "ar-sy": "ערבית (סוריה)",
- "ar-tn": "ערבית (תוניסיה)",
- "ar-ye": "ערבית (תימן)",
- "be": "בלארוסית",
- "bg": "בולגרית"
-}
+{}
diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json
index 7c38e41c9b..b316e994a1 100644
--- a/src/i18n/strings/hu.json
+++ b/src/i18n/strings/hu.json
@@ -3,146 +3,18 @@
"Search": "Keresés",
"OK": "Rendben",
"Custom Server Options": "Egyedi szerver beállítások",
- "Direct Chat": "Közvetlen csevegés",
"Dismiss": "Eltűntet",
"Drop here %(toAction)s": "%(toAction)s -t húzd ide",
"Error": "Hiba",
"Failed to forget room %(errCode)s": "Nem lehet eltávolítani a szobát: %(errCode)s",
- "Failed to join the room": "Nem lehet csatlakozni a szobához",
"Favourite": "Kedvenc",
"Mute": "Elnémít",
"Notifications": "Értesítések",
"Operation failed": "Művelet sikertelen",
- "Please Register": "Regisztrálj",
"powered by Matrix": "Matrixon alapul",
"Remove": "Törlés",
"Settings": "Beállítások",
"unknown error code": "ismeretlen hiba kód",
- "Sunday": "Vasárnap",
- "Monday": "Hétfő",
- "Tuesday": "Kedd",
- "Wednesday": "Szerda",
- "Thursday": "Csütörtök",
- "Friday": "Péntek",
- "Saturday": "Szombat",
- "af": "Afrikaans",
- "ar-ae": "Arabic (U.A.E.)",
- "ar-bh": "Arab (Bahrain)",
- "ar-dz": "Arab (Algeria)",
- "ar-eg": "Arab (Egypt)",
- "ar-iq": "Arab (Iraq)",
- "ar-jo": "Arab (Jordan)",
- "ar-kw": "Arab (Kuwait)",
- "ar-lb": "Arab (Lebanon)",
- "ar-ly": "Arab (Libya)",
- "ar-ma": "Arab (Morocco)",
- "ar-om": "Arab (Oman)",
- "ar-qa": "Arab (Qatar)",
- "ar-sa": "Arab (Saudi Arabia)",
- "ar-sy": "Arab (Syria)",
- "ar-tn": "Arab (Tunisia)",
- "ar-ye": "Arab (Yemen)",
- "be": "Belorusz",
- "bg": "Bolgár",
- "ca": "Katalán",
- "cs": "Cseh",
- "da": "Dán",
- "de-at": "Német (Osztrák)",
- "de-ch": "Német (Svájci)",
- "de": "Német",
- "de-li": "Német (Lichtenstein)",
- "de-lu": "Német (Luxemburg)",
- "el": "Görög",
- "en-au": "Angol (Ausztrál)",
- "en-bz": "Angol (Belize)",
- "en-ca": "Angol (Kanada)",
- "en": "Angol",
- "en-gb": "Angol (Egyesült Királyság)",
- "en-ie": "Angol (Ír)",
- "en-jm": "Angol (Jamaika)",
- "en-nz": "Angol (Új-Zéland)",
- "en-tt": "Angol (Trinidad)",
- "en-us": "Angol (Egyesült Államok)",
- "en-za": "Angol (Dél-Afrika)",
- "es-ar": "Spanyol (Argentína)",
- "es-bo": "Spanyol (Bolívia)",
- "es-cl": "Spanyol (Chile)",
- "es-co": "Spanyol (Kolumbia)",
- "es-cr": "Spanyol (Costa Rica)",
- "es-do": "Spanyol (Dominikai Köztársaság)",
- "es-ec": "Spanyol (Ecuador)",
- "es-gt": "Spanyol (Guatemala)",
- "es-hn": "Spanyol (Honduras)",
- "es-mx": "Spanyol (Mexikó)",
- "es-ni": "Spanyol (Nicaragua)",
- "es-pa": "Spanyol (Panama)",
- "es-pe": "Spanyol (Peru)",
- "es-pr": "Spanyol (Puerto Rico)",
- "es-py": "Spanyol (Paraguay)",
- "es": "Spanyol (Spanyol)",
- "es-sv": "Spanyol (El Salvador)",
- "es-uy": "Spanyol (Uruguay)",
- "es-ve": "Spanyol (Venezuela)",
- "et": "Észt",
- "eu": "Baszk (Baszk)",
- "fa": "Perzsa",
- "fi": "Finn",
- "fo": "Feröer",
- "fr-be": "Francia (Belgium)",
- "fr-ca": "Francia (Kanada)",
- "fr-ch": "Francia (Svájc)",
- "fr": "Francia",
- "fr-lu": "Francia (Luxemburg)",
- "ga": "Ír",
- "gd": "Gall (Skót)",
- "he": "Héber",
- "hi": "Hindu",
- "hr": "Horvát",
- "hu": "Magyar",
- "id": "Indonéz",
- "is": "Izland",
- "it-ch": "Olasz (Svájc)",
- "it": "Olasz",
- "ja": "Japán",
- "ji": "Jiddis",
- "ko": "Korea",
- "lt": "Litván",
- "lv": "Lett",
- "mk": "Macedónia (FYROM)",
- "ms": "Maláj",
- "mt": "Málta",
- "nl-be": "Holland (Belgium)",
- "nl": "Holland",
- "no": "Norvég",
- "pl": "Lengyel",
- "pt-br": "Portugál (Brazil)",
- "pt": "Portugál",
- "ro-mo": "Román (Moldova)",
- "ro": "Román",
- "ru-mo": "Orosz (Moldova)",
- "ru": "Orosz",
- "sk": "Szlovák",
- "sl": "Szlovén",
- "sq": "Albán",
- "sr": "Szerb",
- "sv-fi": "Svéd (Finn)",
- "sv": "Svéd",
- "sx": "Sutu",
- "sz": "Sami (Lapp)",
- "th": "Thai",
- "tr": "Török",
- "ts": "Tsonga",
- "uk": "Ukrán",
- "ur": "Urdu",
- "ve": "Venda",
- "vi": "Vietnám",
- "xh": "Xhosa",
- "zh-cn": "Kína (PRC)",
- "zh-hk": "Kína (Hong Kong SAR)",
- "zh-sg": "Kína (Szingapúr)",
- "zh-tw": "Kína (Tajvan)",
- "zu": "Zulu",
- "A registered account is required for this action": "Regisztrált fiókra van szükség ehhez a művelethez",
"a room": "egy szoba",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Elküldtük a szöveges üzenetet ide: +%(msisdn)s. Kérlek add meg az ellenőrző kódot ami benne van",
"Accept": "Elfogad",
@@ -156,8 +28,7 @@
"Add email address": "E-mail cím megadása",
"Add phone number": "Telefonszám megadása",
"Admin": "Adminisztrátor",
- "Admin tools": "Admin. eszközök",
- "And %(count)s more...": "És még %(count)s...",
+ "Admin Tools": "Admin. Eszközök",
"VoIP": "VoIP",
"Missing Media Permissions, click here to request.": "Hiányzó Média jogosultság, kattintson ide az igényléshez.",
"No Microphones detected": "Nem található mikrofon",
@@ -173,32 +44,22 @@
"Always show message timestamps": "Üzenet időbélyeg folyamatos megjelenítése",
"Authentication": "Azonosítás",
"Alias (optional)": "Becenév (opcionális)",
- "all room members": "minden szoba tagság",
"Failed to change password. Is your password correct?": "Nem sikerült megváltoztatni a jelszót. Helyesen írtad be a jelszavadat?",
"Continue": "Folytatás",
"Create new room": "Új szoba létrehozása",
- "sb": "Szorb",
- "rm": "Rétoromán",
- "tn": "Tswana",
"Close": "Bezár",
"Room directory": "Szobák listája",
"Start chat": "Csevegés indítása",
- "Welcome page": "Üdvözlő oldal",
- "all room members, from the point they are invited": "minden résztvevő a szobában, amióta meg van hívva",
- "all room members, from the point they joined": "minden résztvevő a szobában, amióta csatlakozott",
- "and": "é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 %(lastItem)s": "%(items)s és %(lastItem)s",
- "and %(count)s others....other": "és még: %(count)s ...",
- "and %(count)s others....one": "és még egy...",
+ "and %(count)s others...|other": "és még: %(count)s ...",
+ "and %(count)s others...|one": "és még egy...",
"%(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 %(count)s others are typing": "%(names)s és %(count)s ember ír",
"An email has been sent to": "Az e-mail ide lett küldve:",
"A new password must be entered.": "Új jelszót kell megadni.",
"%(senderName)s answered the call.": "%(senderName)s felvette a telefont.",
- "anyone": "bárki",
"An error has occurred.": "Hiba történt.",
"Anyone": "Bárki",
"Anyone who knows the room's link, apart from guests": "A vendégeken kívül bárki aki ismeri a szoba link-jét",
@@ -229,7 +90,6 @@
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s megváltoztatta a témát erre \"%(topic)s\".",
"Changes to who can read history will only apply to future messages in this room": "Változtatások a napló olvasási jogosultságon csak a szoba új üzeneteire fog vonatkozni",
"Changes your display nickname": "Becenév megváltoztatása",
- "changing room on a RoomView is not supported": "Szoba nézetben nem lehet szobát váltani",
"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.": "Jelszó megváltoztatása jelenleg alaphelyzetbe állítja a titkosításnál használt kulcsokat minden készüléken, ezzel a régi titkosított üzenetek olvashatatlanok lesznek hacsak először nem mented ki a kulcsokat és újra betöltöd. A jövőben ezen javítunk.",
"Claimed Ed25519 fingerprint key": "Igényelt Ed25519 ujjlenyomat kulcs",
"Clear Cache and Reload": "Gyorsítótár törlése és újratöltés",
@@ -250,8 +110,8 @@
"Confirm password": "Jelszó megerősítése",
"Confirm your new password": "Új jelszó megerősítése",
"Could not connect to the integration server": "Az integrációs szerverhez nem lehet kapcsolódni",
- "%(count)s new messages.one": "%(count)s új üzenet",
- "%(count)s new messages.other": "%(count)s új üzenet",
+ "%(count)s new messages|one": "%(count)s új üzenet",
+ "%(count)s new messages|other": "%(count)s új üzenet",
"Create a new chat or reuse an existing one": "Új csevegés indítása vagy egy meglévő használata",
"Create an account": "Fiók készítése",
"Create Room": "Szoba készítése",
@@ -267,7 +127,6 @@
"Decrypt %(text)s": "%(text)s visszafejtése",
"Decryption error": "Visszafejtési hiba",
"Delete": "Töröl",
- "demote": "hozzáférési szint csökkentése",
"Default": "Alapértelmezett",
"Device already verified!": "Készülék már ellenőrizve!",
"Device ID": "Készülék azonosító",
@@ -280,7 +139,6 @@
"Disable Notifications": "Értesítések tiltása",
"disabled": "letiltva",
"Disable inline URL previews by default": "Beágyazott URL előnézet alapértelmezetten tiltva",
- "Disable markdown formatting": "Markdown formázás tiltva",
"Disinvite": "Meghívás visszavonása",
"Display name": "Megjelenített név",
"Displays action": "Tevékenységek megjelenítése",
@@ -324,7 +182,6 @@
"Failed to load timeline position": "Az idővonal pozíciót nem sikerült betölteni",
"Failed to lookup current room": "Az aktuális szoba felkeresése sikertelen",
"Failed to mute user": "A felhasználót nem sikerült hallgatásra bírni",
- "Failed to register as guest:": "Nem sikerült vendégként regisztrálni:",
"Failed to reject invite": "A meghívót nem sikerült elutasítani",
"Failed to reject invitation": "A meghívót nem sikerült elutasítani",
"Failed to save settings": "A beállításokat nem sikerült elmenteni",
@@ -339,7 +196,6 @@
"Failed to upload profile picture!": "Profil kép feltöltése sikertelen!",
"Failed to verify email address: make sure you clicked the link in the email": "E-mail cím ellenőrzése sikertelen: ellenőrizd, hogy az e-mailnél lévő linkre rákattintottál",
"Failure to create room": "Szoba létrehozása sikertelen",
- "favourite": "kedvenc",
"Favourites": "Kedvencek",
"Fill screen": "Képernyő kitöltése",
"Filter room members": "Szoba tagság szűrése",
@@ -350,12 +206,7 @@
"Found a bug?": "Hibát találtál?",
"%(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 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.",
- "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.",
- "Guests can't use labs features. Please register.": "Vendégek nem használhatnak labor funkciókat. Kérlek regisztrálj.",
"Guests cannot join this room even if explicitly invited.": "Vendégek akkor sem csatlakozhatnak ehhez a szobához ha külön meghívók kaptak.",
- "had": "van",
"Hangup": "Megszakít",
"Hide read receipts": "Olvasási visszajelzés elrejtése",
"Hide Text Formatting Toolbar": "Szövegformázási menü elrejtése",
@@ -387,8 +238,6 @@
"Sign in with": "Belépés ezzel:",
"Join as voice or video.": "Csatlakozás hanggal vagy videóval.",
"Join Room": "Belépés a szobába",
- "joined and left": "be-, és kilépett",
- "joined": "belépett",
"%(targetName)s joined the room.": "%(targetName)s belépett a szobába.",
"Joins room with given alias": "A megadott becenévvel belépett a szobába",
"Jump to first unread message.": "Ugrás az első olvasatlan üzenetre.",
@@ -398,8 +247,6 @@
"Labs": "Labor",
"Last seen": "Utoljára láttuk",
"Leave room": "Szoba elhagyása",
- "left and rejoined": "ki-, és belépett",
- "left": "kilépett",
"%(targetName)s left the room.": "%(targetName)s elhagyta a szobát.",
"Level:": "Szint:",
"Local addresses for this room:": "A szoba helyi címe:",
@@ -407,7 +254,11 @@
"Login as guest": "Belépés vendégként",
"Logout": "Kilép",
"Low priority": "Alacsony prioritás",
- "%(senderName)s made future room history visible to": "%(senderName)s elérhetővé tette a szoba új üzeneteit nekik:",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s elérhetővé tette a szoba új üzeneteit nekik minden résztvevő a szobában, amióta meg van hívva.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s elérhetővé tette a szoba új üzeneteit nekik minden résztvevő a szobában, amióta csatlakozott.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s elérhetővé tette a szoba új üzeneteit nekik minden szoba tagság.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s elérhetővé tette a szoba új üzeneteit nekik bárki.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s elérhetővé tette a szoba új üzeneteit nekik ismeretlen (%(visibility)s).",
"Manage Integrations": "Integrációk kezelése",
"Markdown is disabled": "Markdown kikapcsolva",
"Markdown is enabled": "Markdown engedélyezett",
@@ -420,13 +271,11 @@
"Mobile phone number (optional)": "Mobill telefonszám (opcionális)",
"Moderator": "Moderátor",
"Must be viewing a room": "Meg kell nézni a szobát",
- "my Matrix ID": "Matrix azonosítóm",
+ "%(serverName)s Matrix ID": "%(serverName)s Matrix azonosítóm",
"Name": "Név",
"Never send encrypted messages to unverified devices from this device": "Soha ne küldj titkosított üzenetet ellenőrizetlen eszközre erről az eszközről",
- "Never send encrypted messages to unverified devices in this room": "Soha ne küldj titkosított üzenetet ebből a szobából ellenőrizetlen eszközre",
"Never send encrypted messages to unverified devices in this room from this device": "Soha ne küldj titkosított üzenetet ebből a szobából ellenőrizetlen eszközre erről az eszközről",
"New address (e.g. #foo:%(localDomain)s)": "Új cím (e.g. #foo:%(localDomain)s)",
- "New Composer & Autocomplete": "Új szerkesztő és automatikus kiegészítés",
"New password": "Új jelszó",
"New passwords don't match": "Az új jelszavak nem egyeznek",
"New passwords must match each other.": "Az új jelszavaknak meg kell egyezniük egymással.",
@@ -443,7 +292,7 @@
"No users have specific privileges in this room": "Egy felhasználónak sincsenek specifikus jogosultságai ebben a szobában",
"olm version:": "olm verzió:",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "Ha egyszer bekapcsolod a titkosítást a szobába utána nem lehet kikapcsolni (egyenlőre)",
- "Once you've followed the link it contains, click below": "Miután a linket követted, kattints alulra",
+ "Once you've followed the link it contains, click below": "Miután a linket követted, kattints alulra",
"Only people who have been invited": "Csak akiket meghívtak",
"Otherwise, click here to send a bug report.": "Különben hiba jelentés küldéséhez kattints ide.",
"Password": "Jelszó",
@@ -455,7 +304,6 @@
"%(senderName)s placed a %(callType)s call.": "%(senderName)s %(callType)s hívást kezdeményezett.",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Ellenőrizd az e-mail-edet és kattints a benne lévő linkre. Ha ez megvan, kattints a folytatásra.",
"Power level must be positive integer.": "A szintnek pozitív egésznek kell lennie.",
- "Press": "Nyomd meg",
"Private Chat": "Privát csevegés",
"Privileged Users": "Privilegizált felhasználók",
"Profile": "Profil",
@@ -464,8 +312,7 @@
"Reason: %(reasonText)s": "Ok: %(reasonText)s",
"Revoke Moderator": "Moderátor visszahívása",
"Refer a friend to Riot:": "Ismerős meghívása a Riotba:",
- "Register": "Regisztráció",
- "rejected": "elutasítva",
+ "Register": "Regisztrál",
"%(targetName)s rejected the invitation.": "%(targetName)s elutasította a meghívót.",
"Reject invitation": "Meghívó elutasítása",
"Rejoin": "Újracsatlakozás",
@@ -476,7 +323,6 @@
"Remove %(threePid)s?": "Töröl: %(threePid)s?",
"%(senderName)s requested a VoIP conference.": "%(senderName)s VoIP konferenciát kezdeményez.",
"Report it": "Jelent",
- "restore": "visszaállít",
"Results from DuckDuckGo": "Eredmények a DuckDuckGo-ból",
"Return to app": "Vissza az alkalmazáshoz",
"Return to login screen": "Vissza a bejelentkezési képernyőre",
@@ -495,7 +341,6 @@
"Scroll to unread messages": "Olvasatlan üzenetekhez görget",
"Search failed": "Keresés sikertelen",
"Searches DuckDuckGo for results": "Keresés DuckDuckGo-val",
- "Searching known users": "Ismert felhasználók keresése",
"Seen by %(userName)s at %(dateTime)s": "%(userName)s %(dateTime)s időpontban látta",
"Send a message (unencrypted)": "Üzenet küldése (titkosítás nélkül)",
"Send an encrypted message": "Titkosított üzenet küldése",
@@ -516,7 +361,6 @@
"Session ID": "Kapcsolat azonosító",
"%(senderName)s set a profile picture.": "%(senderName)s profil képet állított be.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s a megjelenítési nevét megváltoztatta erre: %(displayName)s.",
- "Set": "Beállít",
"Show panel": "Panel megjelenítése",
"Show Text Formatting Toolbar": "Szöveg formázási eszköztár megjelenítése",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Az időbélyegek 12 órás formátumban mutatása (pl.: 2:30pm)",
@@ -534,14 +378,11 @@
"Start Chat": "Csevegés indítása",
"Submit": "Elküld",
"Success": "Sikeres",
- "tag as %(tagName)s": "címke beállítása: %(tagName)s",
- "tag direct chat": "megjelölés közvetlen csevegésnek",
"Tagged as: ": "Címkék: ",
"The default role for new room members is": "Az alapértelmezett szerep új tagoknak:",
"The main address for this room is": "A szoba elsődleges címe:",
"The phone number entered looks invalid": "A megadott telefonszám érvénytelennek tűnik",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Az általad megadott aláíró kulcs megegyezik %(userId)s felhasználótól kapott kulccsal amit %(deviceId)s eszközhöz használ. Az eszköz ellenőrzöttnek jelölve.",
- "This action cannot be performed by a guest user. Please register to be able to do this.": "Ezt nem teheti vendég felhasználó. Kérlek regisztrálj, hogy megtehesd.",
"This email address is already in use": "Ez az e-mail cím már használatban van",
"This email address was not found": "Az e-mail cím nem található",
"%(actionVerb)s this person?": "Ezt a felhasználót %(actionVerb)s?",
@@ -553,7 +394,6 @@
"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.": "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:",
- "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 is not recognised.": "Ez a szoba nem ismerős.",
"These are experimental features that may break in unexpected ways": "Ezek kísérleti funkciók amik kiszámíthatatlanok lehetnek",
@@ -564,22 +404,10 @@
"This room": "Ebben a szobában",
"This room is not accessible by remote Matrix servers": "Ez a szoba távoli Matrix szerverről nem érhető el",
"This room's internal ID is": "A szoba belső azonosítója:",
- "times": "alkalommal",
- "To ban users": "Felhasználó kizárásához",
- "to browse the directory": "a könyvtárban való kereséshez",
- "To configure the room": "A szoba beállításához",
"to favourite": "kedvencekhez",
- "To invite users into the room": "Felhasználó szobába való meghívásához",
- "To kick users": "Felhasználó kirúgásához",
"To link to a room it must have an address.": "Szobához való kötéshez szükséges egy cím.",
- "to make a room or": "szoba létrehozásához vagy",
- "To remove other users' messages": "Más felhasználók üzeneteinek törléséhez",
"To reset your password, enter the email address linked to your account": "A jelszó alaphelyzetbe állításához add meg a fiókodhoz kötött e-mail címet",
"to restore": "visszaállításhoz",
- "To send events of type": "Az alábbi típusú üzenetek küldéséhez",
- "To send messages": "Üzenetek küldéséhez",
- "to start a chat with someone": "csevegés indításához valakivel",
- "to tag as %(tagName)s": "megjelölni mint: %(tagName)s",
"to tag direct chat": "megjelölni közvetlen csevegésnek",
"To use it, just wait for autocomplete results to load and tab through them.": "A használatához csak várd meg az automatikus kiegészítéshez a találatok betöltését és TAB-bal választhatsz közülük.",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Megpróbáltam betölteni a szoba megadott időpontjának megfelelő adatait, de nincs jogod a kérdéses üzenetek megjelenítéséhez.",
@@ -589,7 +417,6 @@
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s bekapcsolta a titkosítást ponttól pontig (algoritmus %(algorithm)s).",
"Unable to add email address": "Az e-mail címet nem sikerült hozzáadni",
"Unable to remove contact information": "A névjegy információkat nem sikerült törölni",
- "Unable to restore previous session": "Az előző kapcsolat visszaállítása sikertelen",
"Unable to verify email address.": "Az e-mail cím ellenőrzése sikertelen.",
"Unban": "Kitiltás visszavonása",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s visszaengedte %(targetName)s felhasználót.",
@@ -604,15 +431,14 @@
"unknown device": "ismeretlen eszköz",
"Unknown room %(roomId)s": "Ismeretlen szoba %(roomId)s",
"Unknown (user, device) pair:": "Ismeretlen (felhasználó, eszköz) pár:",
- "unknown": "ismeretlen",
"Unmute": "Némítás kikapcsolása",
"Unnamed Room": "Névtelen szoba",
"Unrecognised command:": "Ismeretlen parancs:",
"Unrecognised room alias:": "Ismeretlen szoba becenév:",
"Unverified": "Nem ellenőrzött",
- "Uploading %(filename)s and %(count)s others.zero": "%(filename)s feltöltése",
- "Uploading %(filename)s and %(count)s others.one": "%(filename)s és még %(count)s db másik feltöltése",
- "Uploading %(filename)s and %(count)s others.other": "%(filename)s és még %(count)s db másik feltöltése",
+ "Uploading %(filename)s and %(count)s others|zero": "%(filename)s feltöltése",
+ "Uploading %(filename)s and %(count)s others|one": "%(filename)s és még %(count)s db másik feltöltése",
+ "Uploading %(filename)s and %(count)s others|other": "%(filename)s és még %(count)s db másik feltöltése",
"uploaded a file": "fájl feltöltése",
"Upload avatar": "Avatar kép feltöltése",
"Upload Failed": "Feltöltés sikertelen",
@@ -665,10 +491,8 @@
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Kijelentkeztél minden eszközről így nem fogsz \"push\" értesítéseket kapni. Az értesítések engedélyezéséhez jelentkezz vissza mindegyik eszközön",
"You have disabled URL previews by default.": "Az URL előnézet alapból tiltva van.",
"You have enabled URL previews by default.": "Az URL előnézet alapból engedélyezve van.",
- "You have entered an invalid contact. Try using their Matrix ID or email address.": "Érvénytelen kapcsolatot adtál meg. Próbáld meg a Matrix azonosítóját vagy e-mail címét használni.",
"You have no visible notifications": "Nincsenek látható értesítéseid",
"You may wish to login with a different account, or add this email to this account.": "Lehet, hogy más fiókba szeretnél belépni vagy ezt az e-mail címet szeretnéd ehhez a fiókhoz kötni.",
- "you must be a": "szükséges szerep:",
"You must register to use this functionality": "Regisztrálnod kell hogy ezt használhasd",
"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.",
@@ -706,7 +530,6 @@
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s",
"%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
"Set a display name:": "Megjelenítési név beállítása:",
- "Set a Display Name": "Megjelenítési név beállítása",
"Upload an avatar:": "Avatar kép feltöltése:",
"This server does not support authentication with a phone number.": "Ez a szerver nem támogatja a telefonszámmal való azonosítást.",
"Missing password.": "Hiányzó jelszó.",
@@ -727,11 +550,9 @@
"Room": "Szoba",
"Connectivity to the server has been lost.": "A szerverrel a kapcsolat megszakadt.",
"Sent messages will be stored until your connection has returned.": "Az elküldött üzenetek addig lesznek tárolva amíg a kapcsolatod újra elérhető lesz.",
- "Auto-complete": "Automatikus kiegészítés",
"Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Most újraküldöd mind vagy eldobod mind. Újraküldésre vagy eldobásra egyenként is kiválaszthatod az üzeneteket.",
- "(~%(count)s results).one": "(~%(count)s db eredmény)",
- "(~%(count)s results).other": "(~%(count)s db eredmény)",
- "or": "vagy",
+ "(~%(count)s results)|one": "(~%(count)s db eredmény)",
+ "(~%(count)s results)|other": "(~%(count)s db eredmény)",
"Active call": "Folyamatban lévő hívás",
"bold": "félkövér",
"italic": "dőlt",
@@ -807,7 +628,6 @@
"You must join the room to see its files": "Ahhoz hogy lásd a fájlokat be kell lépned a szobába",
"Reject all %(invitedRooms)s invites": "Minden %(invitedRooms)s meghívó elutasítása",
"Start new chat": "Új csevegés indítása",
- "Guest users can't invite users. Please register.": "Vendég felhasználók nem tudnak másokat meghívni. Kérlek regisztrálj.",
"Failed to invite": "Meghívás sikertelen",
"Failed to invite user": "Felhasználó meghívása sikertelen",
"Failed to invite the following users to the %(roomName)s room:": "Az alábbi felhasználókat nem sikerült meghívni a(z) %(roomName)s szobába:",
@@ -870,7 +690,7 @@
"Start chatting": "Csevegés indítása",
"Start Chatting": "Csevegés indítása",
"Click on the button below to start chatting!": "Csevegés indításához kattints a gombra alább!",
- "$senderDisplayName changed the room avatar to
": "$senderDisplayName megváltoztatta a szoba avatar képét:
",
+ "%(senderDisplayName)s changed the room avatar to
": "%(senderDisplayName)s megváltoztatta a szoba avatar képét:
",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s törölte a szoba avatar képét.",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s megváltoztatta %(roomName)s szoba avatar képét",
"Username available": "Szabad felhasználói név",
@@ -893,7 +713,6 @@
"If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Ha megegyezik, nyomd meg az megerősítő gombot alul. Ha nem akkor valaki más használja az eszközt és inkább a Feketelista gombot szeretnéd használni.",
"We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Az előző kapcsolat visszaállításánál hibára akadtunk. Ha folytatod újra be kell jelentkezned és a titkosított csevegések olvashatatlanok lesznek.",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Ha egy újabb Riot verziót használtál valószínűleg ez kapcsolat nem lesz kompatibilis vele. Zárd be az ablakot és térj vissza az újabb verzióhoz.",
- "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.",
"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 Saját szerver URL megadásával.",
@@ -924,7 +743,6 @@
"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",
@@ -937,29 +755,251 @@
"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 +example:matrix.org.": "Ahhoz, hogy meglévő csoporthoz csatlakozhass tudnod kell a csoport azonosítóját ami valahogy így nézhet ki: +példa:matrix.org.",
"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"
+ "Hide avatars in user and room mentions": "Profilképek elrejtése felhasználó és szoba említésekben",
+ "Cannot add any more widgets": "Nem lehet több kisalkalmazást hozzáadni",
+ "Do you want to load widget from URL:": "Betöltöd a kisalkalmazást erről az URL-ről:",
+ "Integrations Error": "Integrációs hiba",
+ "Publish this room to the public in %(domain)s's room directory?": "Publikálod a szobát a(z) %(domain)s szoba listájába?",
+ "NOTE: Apps are not end-to-end encrypted": "Megjegyzés: Az alkalmazások nem végponttól végpontig titkosítottak",
+ "The maximum permitted number of widgets have already been added to this room.": "A maximálisan megengedett számú kisalkalmazás már hozzá van adva a szobához.",
+ "%(widgetName)s widget added by %(senderName)s": "%(widgetName)s kisalkalmazást %(senderName)s hozzáadta",
+ "%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s kisalkalmazást %(senderName)s eltávolította",
+ "Robot check is currently unavailable on desktop - please use a web browser": "Robot ellenőrzés az asztali verzióban nem érhető el - használd a web böngészőt",
+ "%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s kisalkalmazást %(senderName)s módosította",
+ "Copied!": "Lemásolva!",
+ "Failed to copy": "Sikertelen másolás",
+ "Advanced options": "További beállítások",
+ "Block users on other matrix homeservers from joining this room": "Felhasználók szobába való belépésének megakadályozása távoli szerverekről",
+ "This setting cannot be changed later!": "Ezt a beállítást később nem lehet megváltoztatni!",
+ "Ignored Users": "Figyelmen kívül hagyott felhasználók",
+ "Ignore": "Figyelmen kívül hagy",
+ "Unignore": "Figyelembe vesz",
+ "User Options": "Felhasználói beállítások",
+ "You are now ignoring %(userId)s": "Most figyelmen kívül hagyod: %(userId)s",
+ "You are no longer ignoring %(userId)s": "Ismét figyelembe veszed: %(userId)s",
+ "Unignored user": "Figyelembe vett felhasználó",
+ "Ignored user": "Figyelmen kívül hagyott felhasználó",
+ "Stops ignoring a user, showing their messages going forward": "Felhasználót újra figyelembe vesszük és megmutatjuk az új üzeneteit",
+ "Ignores a user, hiding their messages from you": "Felhasználó figyelmen kívül hagyásával elrejtheted az üzeneteit magad elől",
+ "Disable Emoji suggestions while typing": "Emoji ajánlások kikapcsolása gépelés közben",
+ "Banned by %(displayName)s": "Kitiltotta: %(displayName)s",
+ "Message removed by %(userId)s": "Üzenetet törölte: %(userId)s",
+ "To send messages, you must be a": "Ahhoz, hogy üzenetet tudj küldeni, neked ilyen szinten kell lenned:",
+ "To invite users into the room, you must be a": "Hogy meghívj valakit a szobába, ilyen szinten kell lenned:",
+ "To configure the room, you must be a": "A szoba beállításához ilyen szinten kell lenned:",
+ "To kick users, you must be a": "Felhasználó kirúgásához ilyen szinten kell lenned:",
+ "To ban users, you must be a": "Felhasználó kizárásához ilyen szinten kell lenned:",
+ "To remove other users' messages, you must be a": "Más üzenetének a törléséhez ilyen szinten kell lenned:",
+ "To send events of type , you must be a": " esemény küldéséhez ilyen szinten kell lenned:",
+ "To change the room's avatar, you must be a": "A szoba avatarjának a megváltoztatásához ilyen szinten kell lenned:",
+ "To change the room's name, you must be a": "A szoba nevének megváltoztatásához ilyen szinten kell lenned:",
+ "To change the room's main address, you must be a": "A szoba elsődleges címének a megváltoztatásához ilyen szinten kell lenned:",
+ "To change the room's history visibility, you must be a": "A szoba naplója elérhetőségének a megváltoztatásához ilyen szinten kell lenned:",
+ "To change the permissions in the room, you must be a": "A szobában a jogosultság megváltoztatásához ilyen szinten kell lenned:",
+ "To change the topic, you must be a": "A téma megváltoztatásához ilyen szinten kell lenned:",
+ "To modify widgets in the room, you must be a": "A szoba kisalkalmazásainak megváltoztatásához ilyen szinten kell lenned:",
+ "Description": "Leírás",
+ "Name or matrix ID": "Név vagy Matrix azonosító",
+ "Unable to accept invite": "A meghívót nem lehet elfogadni",
+ "Unable to leave room": "A szobát nem lehet elhagyni",
+ "Leave": "Elhagy",
+ "Failed to invite the following users to %(groupId)s:": "Az alábbi felhasználókat nem sikerült meghívni a(z) %(groupId)s:",
+ "Failed to invite users to %(groupId)s": "Nem sikerült meghívni a felhasználókat ebbe a csoportba: %(groupId)s",
+ "Unable to reject invite": "Nem sikerül elutasítani a meghívót",
+ "Leave %(groupName)s?": "Elhagyod a csoportot: %(groupName)s?",
+ "Add a Room": "Szoba hozzáadása",
+ "Add a User": "Felhasználó hozzáadása",
+ "Who would you like to add to this summary?": "Kit szeretnél hozzáadni ehhez az összefoglalóhoz?",
+ "Add to summary": "Összefoglalóhoz adás",
+ "Failed to add the following users to the summary of %(groupId)s:": "Az alábbi felhasználókat nem sikerült hozzáadni a(z) %(groupId)s csoport összefoglalójához:",
+ "Which rooms would you like to add to this summary?": "Melyik szobákat szeretnéd hozzáadni ehhez az összefoglalóhoz?",
+ "Room name or alias": "Szoba neve vagy beceneve",
+ "Failed to add the following rooms to the summary of %(groupId)s:": "Az alábbi szobákat nem sikerült hozzáadni a(z) %(groupId)s csoport összefoglalójához:",
+ "Failed to remove the room from the summary of %(groupId)s": "Az alábbi szobákat nem sikerült eltávolítani a(z) %(groupId)s csoport összefoglalójából",
+ "The room '%(roomName)s' could not be removed from the summary.": "Nem sikerült törölni az összefoglalóból ezt a szobát: '%(roomName)s'.",
+ "Failed to remove a user from the summary of %(groupId)s": "Nem sikerült törölni az összefoglalóból ezt a felhasználót: %(groupId)s",
+ "The user '%(displayName)s' could not be removed from the summary.": "Nem sikerült törölni az összefoglalóból ezt a felhasználót: %(groupId)s.",
+ "Light theme": "Világos téma",
+ "Dark theme": "Sötét téma",
+ "Unknown": "Ismeretlen",
+ "Failed to add the following rooms to %(groupId)s:": "Az alábbi szobákat nem sikerült hozzáadni a(z) %(groupId)s csoporthoz:",
+ "Matrix ID": "Matrix azonosító",
+ "Matrix Room ID": "Szoba Matrix azonosító",
+ "email address": "E-mail cím",
+ "Try using one of the following valid address types: %(validTypesList)s.": "Próbáld meg valamelyik érvényes cím típust: %(validTypesList)s.",
+ "You have entered an invalid address.": "Érvénytelen címet adtál meg.",
+ "Failed to remove '%(roomName)s' from %(groupId)s": "A(z) %(groupId)s csoportból nem sikerült törölni: %(roomName)s",
+ "Are you sure you want to remove '%(roomName)s' from %(groupId)s?": "Biztos, hogy törlöd a(z) %(roomName)s szobát a(z) %(groupId)s csoportból?",
+ "Invites sent": "Meghívó elküldve",
+ "Jump to read receipt": "Olvasási visszaigazolásra ugrás",
+ "Disable big emoji in chat": "Nagy emoji-k tiltása a csevegésben",
+ "There's no one else here! Would you like to invite others or stop warning about the empty room?": "Itt nincs senki más! Szeretnél meghívni másokat vagy ne figyelmeztessünk az üres szobával kapcsolatban?",
+ "Message Pinning": "Üzenet kitűzése",
+ "Remove avatar": "Avatar törlése",
+ "Pinned Messages": "Kitűzött üzenetek",
+ "%(senderName)s changed the pinned messages for the room.": "%(senderName)s megváltoztatta a szoba kitűzött szövegeit.",
+ "Who would you like to add to this community?": "Kit szeretnél hozzáadni ehhez a közösséghez?",
+ "Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Figyelem: minden személy akit hozzáadsz a közösséghez mindenki számára látható lesz aki ismeri a közösség azonosítóját",
+ "Invite new community members": "Új tagok meghívása a közösségbe",
+ "Invite to Community": "Meghívás a közösségbe",
+ "Which rooms would you like to add to this community?": "Melyik szobákat szeretnéd hozzáadni a közösséghez?",
+ "Warning: any room you add to a community will be publicly visible to anyone who knows the community ID": "Figyelem: minden szoba amit a közösséghez adsz látható lesz bárki számára aki ismeri a közösség azonosítóját",
+ "Add rooms to the community": "Szobák hozzáadása a közösséghez",
+ "Add to community": "Hozzáadás a közösséghez",
+ "Your community invitations have been sent.": "Elküldtük a közösségi meghívókat.",
+ "Failed to invite users to community": "Nem sikerült tagokat meghívni a közösségbe",
+ "Communities": "Közösségek",
+ "Unpin Message": "Üzenet levétele",
+ "Jump to message": "Üzenetre ugrás",
+ "No pinned messages.": "Nincsenek kitűzött üzenetek.",
+ "Loading...": "Betöltés...",
+ "Unnamed room": "Névtelen szoba",
+ "World readable": "Nyilvános",
+ "Guests can join": "Vendégek is csatlakozhatnak",
+ "No rooms to show": "Nincsenek megjelenítendő szobák",
+ "Invalid community ID": "Érvénytelen közösségi azonosító",
+ "'%(groupId)s' is not a valid community ID": "%(groupId)s nem egy érvényes közösségi azonosító",
+ "Related Communities": "Kapcsolódó közösségek",
+ "Related communities for this room:": "Kapcsolódó közösségek ehhez a szobához:",
+ "This room has no related communities": "Ebben a szobában nincsenek kapcsolódó közösségek",
+ "New community ID (e.g. +foo:%(localDomain)s)": "Új közösségi azonosító (pl.: +foo:%(localDomain)s)",
+ "Remove from community": "Elküldés a közösségből",
+ "Failed to remove user from community": "Nem sikerült elküldeni felhasználót a közösségből",
+ "Filter community members": "Közösségi tagok szűrése",
+ "Filter community rooms": "Közösségi szobák szűrése",
+ "Failed to remove room from community": "Nem sikerült kivenni a szobát a közösségből",
+ "Removing a room from the community will also remove it from the community page.": "A szoba kivétele a közösségből törölni fogja a közösség oldaláról is.",
+ "Community IDs may only contain alphanumeric characters": "A közösségi azonosító csak alfanumerikus karaktereket tartalmazhat",
+ "Create Community": "Új közösség",
+ "Community Name": "Közösség neve",
+ "Community ID": "Közösség azonosító",
+ "Add rooms to the community summary": "Szobák hozzáadása a közösségi összefoglalóhoz",
+ "Add users to the community summary": "Felhasználók hozzáadása a közösségi összefoglalóhoz",
+ "Failed to update community": "Közösség frissítése sikertelen",
+ "Leave Community": "Közösség elhagyása",
+ "Add rooms to this community": "Szobák hozzáadása ehhez a közösséghez",
+ "%(inviter)s has invited you to join this community": "%(inviter)s meghívott ebbe a közösségbe",
+ "You are a member of this community": "Tagja vagy ennek a közösségnek",
+ "You are an administrator of this community": "Adminisztrátora vagy ennek a közösségnek",
+ "Community Member Settings": "Közösségi tag beállítások",
+ "Publish this community on your profile": "Közösség publikálása a profilodon",
+ "Long Description (HTML)": "Hosszú leírás (HTML)",
+ "Community Settings": "Közösségi beállítások",
+ "Community %(groupId)s not found": "%(groupId)s közösség nem található",
+ "This Home server does not support communities": "Ez a saját szerver nem támogatja a közösségeket",
+ "Error whilst fetching joined communities": "Hiba a csatlakozott közösségek betöltésénél",
+ "Create a new community": "Új közösség létrehozása",
+ "Create a community to represent your community! Define a set of rooms and your own custom homepage to mark out your space in the Matrix universe.": "Közösséged megjelenítéséhez hozz létre egy közösséget! Add meg a szobákat és az egyedi kezdő oldaladat amivel kijelölheted a helyed a Matrix univerzumban.",
+ "Join an existing community": "Meglévő közösséghez csatlakozás",
+ "To join an existing community you'll have to know its community identifier; this will look something like +example:matrix.org.": "Ahhoz hogy csatlakozni tudj egy meglévő közösséghez ismerned kell a közösségi azonosítót ami például így nézhet ki: +pelda:matrix.org.",
+ "example": "példa",
+ "Failed to load %(groupId)s": "Nem sikerült betölteni: %(groupId)s",
+ "Your Communities": "Közösségeid",
+ "You're not currently a member of any communities.": "Nem vagy tagja egyetlen közösségnek sem.",
+ "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Készíts közösséget hogy egybegyűjtsd a felhasználókat és szobákat! Készíts egy saját kezdőlapot amivel meghatározhatod magad a Matrix univerzumában.",
+ "%(names)s and %(count)s others are typing|other": "%(names)s és még %(count)s felhasználó gépel",
+ "And %(count)s more...|other": "És még %(count)s...",
+ "Something went wrong whilst creating your community": "Valami nem sikerült a közösség létrehozásánál",
+ "Mention": "Említ",
+ "Invite": "Meghív",
+ "Message removed": "Üzenet eltávolítva",
+ "Remove this room from the community": "A szoba törlése a közösségből",
+ "Delete Widget": "Kisalkalmazás törlése",
+ "Deleting a widget removes it for all users in this room. Are you sure you want to delete this widget?": "A kisalkalmazás törlése minden felhasználót érint a szobában. Tényleg törölni szeretnéd?",
+ "Mirror local video feed": "Helyi videó folyam tükrözése",
+ "Failed to withdraw invitation": "Nem sikerült visszavonni a meghívót",
+ "Community IDs may only contain characters a-z, 0-9, or '=_-./'": "A közösségi azonosítók csak az alábbi karaktereket tartalmazhatják: a-z, 0-9 vagy '=_-./'",
+ "%(names)s and %(count)s others are typing|one": "%(names)s és más ír",
+ "%(senderName)s sent an image": "%(senderName)s küldött egy képet",
+ "%(senderName)s sent a video": "%(senderName)s küldött egy videót",
+ "%(senderName)s uploaded a file": "%(senderName)s feltöltött egy fájlt",
+ "Disinvite this user?": "Visszavonod a felhasználó meghívását?",
+ "Kick this user?": "Kirúgod a felhasználót?",
+ "Unban this user?": "Visszaengeded a felhasználót?",
+ "Ban this user?": "Kitiltod a felhasználót?",
+ "Drop here to favourite": "Kedvencnek jelöléshez ejtsd ide",
+ "Drop here to tag direct chat": "Közvetlen csevegéshez való megjelöléshez ejtsd ide",
+ "Drop here to restore": "Visszaállításhoz ejtsd ide",
+ "Drop here to demote": "Lefokozáshoz ejtsd ide",
+ "You have been kicked from this room by %(userName)s.": "%(userName)s kirúgott ebből a szobából.",
+ "You have been banned from this room by %(userName)s.": "%(userName)s kitiltott ebből a szobából.",
+ "You are trying to access a room.": "Megpróbálod elérni ezt a szobát.",
+ "Members only (since the point in time of selecting this option)": "Csak tagok számára (a beállítás kiválasztásától)",
+ "Members only (since they were invited)": "Csak tagoknak (a meghívásuk idejétől)",
+ "Members only (since they joined)": "Csak tagoknak (amióta csatlakoztak)",
+ "An email has been sent to %(emailAddress)s": "E-mail-t neki küldtünk: %(emailAddress)s",
+ "A text message has been sent to %(msisdn)s": "Szöveges üzenetet küldtünk neki: %(msisdn)s",
+ "Disinvite this user from community?": "Visszavonod a felhasználó meghívóját a közösségből?",
+ "Remove this user from community?": "Eltávolítod a felhasználót a közösségből?",
+ "%(nameList)s %(transitionList)s": "%(nameList)s %(transitionList)s",
+ "%(severalUsers)sjoined %(count)s times|other": "%(severalUsers)s %(count)s alkalommal csatlakozott",
+ "%(severalUsers)sjoined %(count)s times|one": "%(severalUsers)s csatlakozott",
+ "%(oneUser)sjoined %(count)s times|other": "%(oneUser)s %(count)s alkalommal csatlakozott",
+ "%(oneUser)sjoined %(count)s times|one": "%(oneUser)s csatlakozott",
+ "%(severalUsers)sleft %(count)s times|other": "%(severalUsers)s %(count)s alkalommal távozott",
+ "%(severalUsers)sleft %(count)s times|one": "%(severalUsers)s távozott",
+ "%(oneUser)sleft %(count)s times|other": "%(oneUser)s %(count)s alkalommal távozott",
+ "%(oneUser)sleft %(count)s times|one": "%(oneUser)s távozott",
+ "%(severalUsers)sjoined and left %(count)s times|other": "%(severalUsers)s %(count)s alkalommal csatlakozott és távozott",
+ "%(severalUsers)sjoined and left %(count)s times|one": "%(severalUsers)s csatlakozott és távozott",
+ "%(oneUser)sjoined and left %(count)s times|other": "%(oneUser)s %(count)s alkalommal csatlakozott és távozott",
+ "%(oneUser)sjoined and left %(count)s times|one": "%(oneUser)s csatlakozott és távozott",
+ "%(severalUsers)sleft and rejoined %(count)s times|other": "%(severalUsers)s %(count)s alkalommal távozott és újra csatlakozott",
+ "%(severalUsers)sleft and rejoined %(count)s times|one": "%(severalUsers)s távozott és újra csatlakozott",
+ "%(oneUser)sleft and rejoined %(count)s times|other": "%(oneUser)s %(count)s alkalommal távozott és újra csatlakozott",
+ "%(oneUser)sleft and rejoined %(count)s times|one": "%(oneUser)s távozott és újra csatlakozott",
+ "%(severalUsers)srejected their invitations %(count)s times|other": "%(severalUsers)s %(count)s alkalommal elutasította a meghívóit",
+ "%(severalUsers)srejected their invitations %(count)s times|one": "%(severalUsers)s elutasította a meghívóit",
+ "%(oneUser)srejected their invitation %(count)s times|other": "%(oneUser)s %(count)s alkalommal elutasította a meghívóit",
+ "%(oneUser)srejected their invitation %(count)s times|one": "%(oneUser)s elutasította a meghívóit",
+ "%(severalUsers)shad their invitations withdrawn %(count)s times|other": "%(severalUsers)s meghívóit %(count)s alkalommal visszavonták",
+ "%(severalUsers)shad their invitations withdrawn %(count)s times|one": "%(severalUsers)s visszavonták a meghívóit",
+ "%(oneUser)shad their invitation withdrawn %(count)s times|other": "%(oneUser)s meghívóit %(count)s alkalommal vonták vissza",
+ "%(oneUser)shad their invitation withdrawn %(count)s times|one": "%(oneUser)s meghívóit visszavonták",
+ "were invited %(count)s times|other": "%(count)s alkalommal lett meghívva",
+ "were invited %(count)s times|one": "meg lett hívva",
+ "was invited %(count)s times|other": "%(count)s alkalommal lett meghívva",
+ "was invited %(count)s times|one": "meg lett hívva",
+ "were banned %(count)s times|other": "%(count)s alkalommal lett kitiltva",
+ "were banned %(count)s times|one": "lett kitiltva",
+ "was banned %(count)s times|other": "%(count)s alkalommal lett kitiltva",
+ "was banned %(count)s times|one": "ki lett tiltva",
+ "were unbanned %(count)s times|other": "%(count)s alkalommal lett visszaengedve",
+ "were unbanned %(count)s times|one": "vissza lett engedve",
+ "was unbanned %(count)s times|other": "%(count)s alkalommal lett visszaengedve",
+ "was unbanned %(count)s times|one": "vissza lett engedve",
+ "were kicked %(count)s times|other": "%(count)s alkalommal lett kirúgva",
+ "were kicked %(count)s times|one": "ki lett rúgva",
+ "was kicked %(count)s times|other": "%(count)s alkalommal ki lett rúgva",
+ "was kicked %(count)s times|one": "ki lett rúgva",
+ "%(severalUsers)schanged their name %(count)s times|other": "%(severalUsers)s %(count)s alkalommal megváltoztatta a nevét",
+ "%(severalUsers)schanged their name %(count)s times|one": "%(severalUsers)s megváltoztatta a nevét",
+ "%(oneUser)schanged their name %(count)s times|other": "%(oneUser)s %(count)s alkalommal megváltoztatta a nevét",
+ "%(oneUser)schanged their name %(count)s times|one": "%(oneUser)s megváltoztatta a nevét",
+ "%(severalUsers)schanged their avatar %(count)s times|other": "%(severalUsers)s %(count)s alkalommal megváltoztatta az avatarját",
+ "%(severalUsers)schanged their avatar %(count)s times|one": "%(severalUsers)s megváltoztatta az avatarját",
+ "%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)s %(count)s alkalommal megváltoztatta az avatarját",
+ "%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)s megváltoztatta az avatarját",
+ "%(items)s and %(count)s others|other": "%(items)s és még %(count)s másik",
+ "%(items)s and %(count)s others|one": "%(items)s és még egy másik",
+ "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "Az e-mail leküldésre került ide: %(emailAddress)s. Ha követte a levélben lévő linket kattints alább.",
+ "The visibility of '%(roomName)s' in %(groupId)s could not be updated.": "%(roomName)s szoba láthatóságát nem lehet frissíteni ebben a közösségben: %(groupId)s",
+ "Visibility in Room List": "Láthatóság a szoba listában",
+ "Visible to everyone": "Mindenki számára látható",
+ "Only visible to community members": "Csak a közösség számára látható",
+ "Community Invites": "Közösségi meghívók",
+ "HTML for your community's page
\n\n Use the long description to introduce new members to the community, or distribute\n some important links\n
\n\n You can even use 'img' tags\n
\n": "HTML a közösségi oldalhoz
\n\n Használj hosszú leírást az tagok közösségbe való bemutatásához vagy terjessz\n hasznos linkeket\n
\n\n Még 'img' tagokat is használhatsz\n
\n",
+ "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "Ezek a szobák megjelennek a közösség tagjainak a közösségi oldalon. A közösség tagjai kattintással csatlakozhatnak a szobákhoz.",
+ "Your community hasn't got a Long Description, a HTML page to show to community members.
Click here to open settings and give it one!": "A közösségednek nincs bő leírása, HTML oldala ami megjelenik a közösség tagjainak.
A létrehozáshoz kattints ide!",
+ "Notify the whole room": "Az egész szoba értesítése",
+ "Room Notification": "Szoba értesítések",
+ "Show these rooms to non-members on the community page and room list?": "Mutassuk meg ezeket a szobákat kívülállóknak a közösségi oldalon és a szobák listájában?"
}
diff --git a/src/i18n/strings/id.json b/src/i18n/strings/id.json
index a4edd6892d..5ec9252dd2 100644
--- a/src/i18n/strings/id.json
+++ b/src/i18n/strings/id.json
@@ -10,8 +10,6 @@
"Microphone": "Mikrofon",
"Camera": "Kamera",
"Alias (optional)": "Alias (pilihan)",
- "and": "dan",
- "all room members": "Seluruh peserta ruang",
"Are you sure?": "Anda yakin?",
"An error has occurred.": "Telah terjadi kesalahan.",
"Are you sure you want to reject the invitation?": "Anda yakin menolak undangannya?",
@@ -45,7 +43,6 @@
"Decline": "Tolak",
"Default": "Bawaan",
"Device ID:": "ID Perangkat:",
- "Direct Chat": "Obrolan Langsung",
"Direct chats": "Obrolan langsung",
"Display name": "Nama yang ditampilkan",
"Download %(text)s": "Unduh %(text)s",
@@ -59,7 +56,6 @@
"Failed to reject invitation": "Gagal menolak undangan",
"Failed to send email": "Gagal mengirim email",
"Favourite": "Favorit",
- "favourite": "favorit",
"Favourites": "Favorit",
"Forgot your password?": "Lupa password?",
"Found a bug?": "Menemukan bug?",
@@ -68,8 +64,6 @@
"Invalid Email Address": "Alamat email tidak benar",
"Invited": "Diundang",
"Sign in with": "Masuk dengan",
- "joined": "bergabung",
- "joined and left": "bergabung dan berpisah",
"Leave room": "Meninggalkan ruang",
"Level:": "Tingkat:",
"Login as guest": "Masuk sebagai tamu",
@@ -80,7 +74,6 @@
"Members only": "Hanya anggota",
"Mobile phone number": "Nomor telpon seluler",
"Mute": "Bisu",
- "my Matrix ID": "ID Matrix saya",
"Name": "Nama",
"New password": "Password Baru",
"New passwords don't match": "Password baru tidak cocok",
@@ -93,13 +86,11 @@
"People": "Orang",
"Passwords can't be empty": "Password tidak boleh kosong",
"Permissions": "Izin",
- "Please Register": "Mohon registrasi",
"Private Chat": "Obrolan Privat",
"Profile": "Profil",
"Public Chat": "Obrolan Publik",
"Reason": "Alasan",
"Register": "Registrasi",
- "rejected": "ditolak",
"Report it": "Laporkan",
"Return to app": "Kembali ke aplikasi",
"riot-web version:": "riot-web versi:",
@@ -116,7 +107,6 @@
"Server error": "Server bermasalah",
"Session ID": "ID Sesi",
"Settings": "Pengaturan",
- "Set": "Isi",
"Show panel": "Tampilkan panel",
"Sign in": "Masuk",
"Sign out": "Keluar",
@@ -126,15 +116,12 @@
"Success": "Sukses",
"This email address was not found": "Alamat email ini tidak ada",
"This room": "Ruang ini",
- "times": "kali",
"Turn Markdown off": "Matikan Markdown",
"Unable to add email address": "Tidak dapat menambahkan alamat email",
"Unable to verify email address.": "Tidak dapat memverifikasi alamat email.",
"Unable to load device list": "Tidak dapat memuat daftar perangkat",
"unencrypted": "tidak terenkripsi",
- "Unknown command": "Perintah tidak diketahui",
"unknown error code": "kode kesalahan tidak diketahui",
- "unknown": "tidak diketahui",
"unknown device": "perangkat tidak diketahui",
"User ID": "ID Pengguna",
"User name": "Nama pengguna",
@@ -174,8 +161,7 @@
"Access Token:": "Token Akses:",
"Active call (%(roomName)s)": "Panggilan aktif (%(roomName)s)",
"Admin": "Admin",
- "Admin tools": "Alat admin",
- "And %(count)s more...": "Dan %(count)s lagi...",
+ "Admin Tools": "Alat admin",
"VoIP": "VoIP",
"Missing Media Permissions, click here to request.": "Tidak ada Izin Media, klik disini untuk meminta.",
"No Webcams detected": "Tidak ada Webcam terdeteksi",
@@ -185,15 +171,12 @@
"Hide removed messages": "Sembunyikan pesan yang dihapus",
"Always show message timestamps": "Selalu tampilkan cap waktu dari pesan",
"Authentication": "Autentikasi",
- "and one other...": "dan satu lainnya...",
"An email has been sent to": "Sebuah email telah dikirim ke",
"Are you sure you want to leave the room '%(roomName)s'?": "Anda yakin ingin meninggalkan ruang '%(roomName)s'?",
"A new password must be entered.": "Password baru harus diisi.",
"%(names)s and one other are typing": "%(names)s dan satu lagi sedang mengetik",
"%(items)s and %(lastItem)s": "%(items)s dan %(lastItem)s",
"%(names)s and %(lastPerson)s are typing": "%(names)s dan %(lastPerson)s sedang mengetik",
- "%(names)s and %(count)s others are typing": "%(names)s dan %(count)s lainnya sedang mengetik",
- "and %(overflowCount)s others...": "dan %(overflowCount)s lainnya...",
"%(items)s and %(remaining)s others": "%(items)s dan %(remaining)s lainnya",
"%(items)s and one other": "%(items)s dan satu lainnya",
"%(senderName)s answered the call.": "%(senderName)s telah menjawab panggilan.",
@@ -214,7 +197,6 @@
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s telah mengubah nama ruang menjadi %(roomName)s.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s telah mengubah topik menjadi \"%(topic)s\".",
"Changes to who can read history will only apply to future messages in this room": "Pengubahan siapa yang dapat membaca sejarah akan berlaku untuk pesan selanjutnya di ruang ini",
- "changing room on a RoomView is not supported": "tidak dapat mengubah ruang di RoomView",
"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.": "Mengubah password saat ini akan mengatur ulang semua kunci enkripsi end-to-end di semua perangkat, menyebabkan sejarah obrolan yang terenkripsi menjadi tidak dapat dibaca, kecuali sebelumnya Anda ekspor dahulu kunci ruang lalu kemudian impor ulang setelahnya. Ke depan hal ini akan diperbaiki.",
"Click here to join the discussion!": "Klik di sini untuk gabung diskusi!",
"click to reveal": "Klik untuk menampilkan",
diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json
index 71b2f145a6..1bc002f5f4 100644
--- a/src/i18n/strings/it.json
+++ b/src/i18n/strings/it.json
@@ -3,7 +3,6 @@
"Mute": "Silenzia",
"Notifications": "Notifiche",
"Operation failed": "Operazione fallita",
- "Please Register": "Per favore registrati",
"powered by Matrix": "offerto da Matrix",
"Remove": "Rimuovi",
"Search": "Cerca",
@@ -15,138 +14,13 @@
"Close": "Chiudi",
"Create new room": "Crea una nuova stanza",
"Custom Server Options": "Opzioni Server Personalizzate",
- "Direct Chat": "Chat Diretta",
"Dismiss": "Scarta",
"Error": "Errore",
- "Failed to join the room": "Impossibile entrare nella stanza",
"Favourite": "Preferito",
- "ar-ae": "Arabo (U.A.E.)",
- "ar-bh": "Arabo (Bahrain)",
- "ar-dz": "Arabo (Algeria)",
- "ar-eg": "Arabo (Egitto)",
- "Sunday": "Domenica",
- "Monday": "Lunedì",
- "Tuesday": "Martedì",
- "Wednesday": "Mercoledì",
- "Thursday": "Giovedì",
- "Friday": "Venerdì",
- "Saturday": "Sabato",
"OK": "OK",
- "Welcome page": "Pagina di benvenuto",
"Drop here %(toAction)s": "Rilascia qui %(toAction)s",
"Failed to change password. Is your password correct?": "Modifica password fallita. La tua password è corretta?",
"Continue": "Continua",
- "ar-iq": "Arabo (Iraq)",
- "ar-jo": "Arabo (Giordania)",
- "ar-kw": "Arabo (Kuwait)",
- "ar-lb": "Arabo (Libano)",
- "ar-ly": "Arabo (Libia)",
- "ar-ma": "Arabo (Marocco)",
- "ar-om": "Arabo (Oman)",
- "ar-qa": "Arabo (Qatar)",
- "ar-sa": "Arabo (Arabia Saudita)",
- "ar-sy": "Arabo (Siria)",
- "ar-tn": "Arabo (Tunisia)",
- "ar-ye": "Arabo (Yemen)",
- "be": "Bielorusso",
- "bg": "Bulgaro",
- "ca": "Catalano",
- "da": "Danese",
- "de-at": "Tedesco (Austria)",
- "de-ch": "Tedesco (Svizzera)",
- "de": "Tedesco",
- "de-li": "Tedesco (Liechtenstein)",
- "de-lu": "Tedesco (Lussemburgo)",
- "el": "Greco",
- "en-au": "Inglese (Australia)",
- "en-bz": "Inglese (Belize)",
- "en-ca": "Inglese (Canada)",
- "en": "Inglese",
- "en-gb": "Inglese (Regno Unito)",
- "en-ie": "Inglese (Irlanda)",
- "en-jm": "Inglese (Jamaica)",
- "en-nz": "Inglese (Nuova Zelanda)",
- "en-tt": "Inglese (Trinidad)",
- "en-us": "Inglese (Stati Uniti)",
- "en-za": "Inglese (Sud Africa)",
- "es-ar": "Spagnolo (Argentina)",
- "es-bo": "Spagnolo (Bolivia)",
- "es-cl": "Spagnolo (Cile)",
- "es-co": "Spagnolo (Colombia)",
- "es-cr": "Spagnolo (Costa Rica)",
- "es-do": "Spagnolo (Repubblica Dominicana)",
- "es-ec": "Spagnolo (Ecuador)",
- "es-gt": "Spagnolo (Guatemala)",
- "es-hn": "Spagnolo (Honduras)",
- "es-mx": "Spagnolo (Messico)",
- "es-ni": "Spagnolo (Nicaragua)",
- "es-pa": "Spagnolo (Panama)",
- "es-pe": "Spagnolo (Perù)",
- "es-pr": "Spagnolo (Porto Rico)",
- "es-py": "Spagnolo (Paraguay)",
- "es": "Spagnolo (Spagna)",
- "es-sv": "Spagnolo (El Salvador)",
- "es-uy": "Spagnolo (Uruguay)",
- "es-ve": "Spagnolo (Venezuela)",
- "et": "Estone",
- "eu": "Basco (Basco)",
- "fa": "Farsi",
- "fi": "Finlandese",
- "fo": "Faeroese",
- "fr-be": "Francese (Belgio)",
- "fr-ca": "Francese (Canada)",
- "fr-ch": "Francese (Svizzera)",
- "fr": "Francese",
- "fr-lu": "Francese (Lussemburgo)",
- "ga": "Irlandese",
- "gd": "Gaelico (Scozia)",
- "he": "Ebraico",
- "hi": "Hindi",
- "hr": "Croato",
- "hu": "Ungherese",
- "id": "Indonesiano",
- "is": "Islandese",
- "it-ch": "Italiano (Svizzera)",
- "it": "Italiano",
- "ja": "Giapponese",
- "ji": "Yiddish",
- "ko": "Coreano",
- "lt": "Lituano",
- "lv": "Lettone",
- "mk": "Macedone (FYROM)",
- "ms": "Malese",
- "mt": "Maltese",
- "nl-be": "Olandese (Belgio)",
- "nl": "Olandese",
- "no": "Norvegese",
- "pl": "Polacco",
- "pt-br": "Portoghese Brasiliano",
- "pt": "Portoghese",
- "rm": "Romancio",
- "ro-mo": "Rumeno (Repubblica di Moldavia)",
- "ro": "Rumeno",
- "ru-mo": "Russo (Repubblica di Moldavia)",
- "ru": "Russo",
- "sk": "Slovacco",
- "sl": "Sloveno",
- "sq": "Albanese",
- "sr": "Serbo",
- "sv-fi": "Svedese (Finlandia)",
- "sv": "Svedese",
- "sx": "Sutu",
- "th": "Tailandese",
- "tn": "Tswana",
- "tr": "Turco",
- "ts": "Tsonga",
- "uk": "Ucraino",
- "ur": "Urdu",
- "vi": "Vietnamese",
- "xh": "Xhosa",
- "zh-cn": "Cinese (PRC)",
- "zh-hk": "Cinese (Honk Kong SAR)",
- "zh-sg": "Cinese (Singapore)",
- "zh-tw": "Cinese (Taiwan)",
- "zu": "Zulu",
"a room": "una stanza",
"%(targetName)s accepted an invitation.": "%(targetName)s ha accettato un invito.",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s ha accettato l'invito per %(displayName)s.",
@@ -157,7 +31,7 @@
"Add email address": "Aggiungi indirizzo email",
"Add phone number": "Aggiungi numero di telefono",
"Admin": "Amministratore",
- "Admin tools": "Strumenti di amministrazione",
+ "Admin Tools": "Strumenti di amministrazione",
"VoIP": "VoIP",
"No Microphones detected": "Nessun Microfono rilevato",
"No Webcams detected": "Nessuna Webcam rilevata",
@@ -171,8 +45,7 @@
"Always show message timestamps": "Mostra sempre il timestamps dei messaggi",
"Authentication": "Autenticazione",
"Alias (optional)": "Alias (opzionale)",
- "all room members": "Tutti i membri della stanza",
- "all room members, from the point they are invited": "Tutti i membri della stanza, dal punto in cui sono stati/e invitati/e",
- "all room members, from the point they joined": "tutti i membri della stanza, dal punto in cui si sono uniti",
- "and": "e"
+ "Add a widget": "Aggiungi un widget",
+ "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Un messaggio di testo è stato inviato a +%(msisdn)s. Inserisci il codice di verifica che contiene",
+ "Edit": "Modifica"
}
diff --git a/src/i18n/strings/ja.json b/src/i18n/strings/ja.json
index 04a7c8877c..73b1a915ec 100644
--- a/src/i18n/strings/ja.json
+++ b/src/i18n/strings/ja.json
@@ -1,5 +1,4 @@
{
- "ja": "日本語",
"Anyone": "誰でも",
"Anyone who knows the room's link, apart from guests": "誰でも部屋に参加できる (ゲストユーザは不可)",
"Anyone who knows the room's link, including guests": "誰でも部屋に参加できる (ゲストユーザも可能)",
@@ -9,13 +8,11 @@
"Create Room": "部屋を作成",
"Current password": "現在のパスワード",
"Delete": "削除",
- "Direct Chat": "対話",
"Direct chats": "対話",
"Display name": "表示名",
"Enable encryption": "暗号会話開始",
"Encryption is enabled in this room": "この部屋の発言は暗号化されています",
"Favourite": "お気に入り",
- "favourite": "お気に入り",
"Favourites": "お気に入り",
"Hide read receipts": "発言を読んでも既読状態にしない",
"Invited": "招待中",
@@ -27,25 +24,17 @@
"Notifications": "通知",
"Cancel": "取消",
"Create new room": "新しい部屋を作成",
- "Failed to join the room": "部屋への参加に失敗しました",
"Room directory": "公開部屋一覧",
"Search": "検索",
"Settings": "設定",
"Start chat": "対話開始",
"New Password": "新しいパスワード",
- "Sunday": "日曜日",
- "Monday": "月曜日",
- "Tuesday": "火曜日",
- "Wednesday": "水曜日",
- "Thursday": "木曜日",
- "Friday": "金曜日",
- "Saturday": "土曜日",
"Failed to change password. Is your password correct?": "パスワード変更に失敗しました。パスワードは正しいですか?",
"Only people who have been invited": "この部屋に招待された人のみ参加可能",
"Hide removed messages": "削除された発言の印を表示しない",
"Always show message timestamps": "発言時刻を常に表示",
- "%(count)s new messages.one": "新しい発言 %(count)s",
- "%(count)s new messages.other": "新しい発言 %(count)s",
+ "%(count)s new messages|one": "新しい発言 %(count)s",
+ "%(count)s new messages|other": "新しい発言 %(count)s",
"Don't send typing notifications": "文字入力中であることを公表しない",
"Filter room members": "参加者検索",
"Send a message (unencrypted)": "ここに送信文を入力 (暗号化なし)",
@@ -63,130 +52,10 @@
"Riot collects anonymous analytics to allow us to improve the application.": "Riotはアプリケーションを改善するために匿名の分析情報を収集しています。",
"Start chatting": "対話開始",
"Start Chatting": "対話開始",
- "af": "アフリカーンス語",
- "be": "ベラルーシ語",
- "bg": "ブルガリア語",
- "ca": "カタルーニャ語",
- "cs": "チェコ語",
- "da": "デンマーク語",
- "de-at": "ドイツ語(オーストリア)",
- "de-ch": "ドイツ語(スイス)",
- "de": "ドイツ語",
- "de-li": "ドイツ語(リヒテンシュタイン)",
- "de-lu": "ドイツ語(ルクセンブルク)",
- "el": "ギリシア語",
- "en-au": "英語(オーストラリア)",
- "en-bz": "英語(ベリーズ)",
- "en-ca": "英語(カナダ)",
- "en": "英語",
- "en-gb": "英語(イギリス)",
- "en-ie": "英語(アイルランド)",
- "en-jm": "英語(ジャマイカ)",
- "en-nz": "英語 (ニュージーランド)",
- "en-tt": "英語 (トリニダード)",
- "ar-ae": "アラビア語 (アラブ首長国連邦)",
- "ar-bh": "アラビア語 (バーレーン)",
- "ar-dz": "アラビア語 (アルジェリア)",
- "ar-eg": "アラビア語 (エジプト)",
- "ar-iq": "アラビア語 (イラク)",
- "ar-jo": "アラビア語 (ヨルダン)",
- "ar-kw": "アラビア語 (クウェート)",
- "ar-lb": "アラビア語 (レバノン)",
- "ar-ly": "アラビア語 (リビア)",
- "ar-ma": "アラビア語 (モロッコ)",
- "ar-om": "アラビア語 (オマーン)",
- "ar-qa": "アラビア語 (カタール)",
- "ar-sa": "アラビア語 (サウジアラビア)",
- "ar-sy": "アラビア語 (シリア)",
- "ar-tn": "アラビア語 (チュニジア)",
- "ar-ye": "アラビア語 (イエメン)",
- "en-us": "英語 (アメリカ合衆国)",
- "en-za": "英語 (南アフリカ)",
- "es-ar": "スペイン語 (アルゼンチン)",
- "es-bo": "スペイン語 (ボリビア)",
- "es-cl": "スペイン語 (チリ)",
- "es-co": "スペイン語 (コロンビア)",
- "es-cr": "スペイン語 (コスタリカ)",
- "es-do": "スペイン語 (ドミニカ共和国)",
- "es-ec": "スペイン語 (エクアドル)",
- "es-gt": "スペイン語 (グアテマラ)",
- "es-hn": "スペイン語 (ホンジュラス)",
- "es-mx": "スペイン語 (メキシコ)",
- "es-ni": "スペイン語 (ニカラグア)",
- "es-pa": "スペイン語 (パナマ)",
- "es-pe": "スペイン語 (ペルー)",
- "es-pr": "スペイン語 (プエルトリコ)",
- "es-py": "スペイン語 (パラグアイ)",
- "es": "スペイン語 (スペイン)",
- "es-sv": "スペイン語 (エルサルバドル)",
- "es-uy": "スペイン語 (ウルグアイ)",
- "es-ve": "スペイン語 (ベネズエラ)",
- "et": "エストニア語",
- "eu": "バスク語",
- "fa": "ペルシャ語",
- "fi": "フィンランド語",
- "fo": "フェロー語",
- "fr-be": "フランス語 (ベルギー)",
- "fr-ca": "フランス語 (カナダ)",
- "fr-ch": "フランス語 (スイス)",
- "fr": "フランス語 (フランス)",
- "fr-lu": "フランス語 (ルクセンブルグ)",
- "ga": "アイルランド語",
- "gd": "ゲール語 (スコットランド)",
- "he": "ヘブライ語",
- "hi": "ヒンズー語",
- "hr": "クロアチア語",
- "hu": "ハンガリー語",
- "id": "インドネシア語",
- "is": "アイスランド語",
- "it-ch": "イタリア語 (スイス)",
- "it": "イタリア語 (イタリア)",
- "ji": "イディッシュ語",
- "ko": "韓国語",
- "lt": "リトアニア語",
- "lv": "ラトビア語",
- "mk": "マケドニア語 (FYROM)",
- "ms": "マレー語",
- "mt": "マルタ語",
- "nl-be": "オランダ語 (ベルギー)",
- "nl": "オランダ語",
- "no": "ノルウェー語 (ブークモール)",
- "pl": "ポーランド語",
- "pt-br": "ポルトガル語 (ブラジル)",
- "pt": "ポルトガル語 (ポルトガル)",
- "rm": "レトロマン語",
- "ro-mo": "ルーマニア語 (モルドバ)",
- "ro": "ルーマニア語",
- "ru-mo": "ロシア語 (モルドバ)",
- "ru": "ロシア語",
- "sb": "ソルビア語",
- "sk": "スロバキア語",
- "sl": "スロベニア語",
- "sq": "アルバニア語",
- "sr": "セルビア語",
- "sv-fi": "スウェーデン語 (フィンランド)",
- "sv": "スウェーデン語",
- "sx": "ソト語",
- "sz": "サーミ語 (ラップ語)",
- "th": "タイ語",
- "tn": "ツワナ語",
- "tr": "トルコ語",
- "ts": "ツォンガ語",
- "uk": "ウクライナ語",
- "ur": "ウルドゥー語",
- "ve": "ヴェンダ語",
- "vi": "ベトナム語",
- "xh": "コーサ語",
- "zh-cn": "中国語 (中華人民共和国)",
- "zh-hk": "中国語 (香港)",
- "zh-sg": "中国語 (シンガポール)",
- "zh-tw": "中国語 (台湾)",
- "zu": "ズールー語",
"Add": "追加",
"No Microphones detected": "マイクが見つかりません",
"No Webcams detected": "カメラが見つかりません",
"Microphone": "マイク",
"Camera": "カメラ",
- "%(names)s and %(count)s others are typing": "%(names)s と、他 %(count)s 名が入力中",
"Are you sure?": "本当によろしいですか?"
}
diff --git a/src/i18n/strings/ko.json b/src/i18n/strings/ko.json
index 411d1ccfe1..f3d54e9449 100644
--- a/src/i18n/strings/ko.json
+++ b/src/i18n/strings/ko.json
@@ -1,42 +1,12 @@
{
- "af": "아프리칸스어",
- "ar-ae": "아랍어 (아랍 에미리트 연방)",
- "ar-bh": "아랍어 (바레인)",
- "ar-dz": "아랍어 (알제리)",
- "ar-eg": "아랍어 (이집트)",
- "ar-iq": "아랍어 (이라크)",
- "ar-jo": "아랍어 (요르단)",
- "ar-kw": "아랍어 (쿠웨이트)",
- "ar-lb": "아랍어 (레바논)",
- "ar-ly": "아랍어 (리비아)",
- "ar-ma": "아랍어 (모로코)",
- "ar-om": "아랍어 (오만)",
- "ar-qa": "아랍어 (카타르)",
- "ar-sa": "아랍어 (사우디아라비아)",
- "ar-sy": "아랍어 (시리아)",
- "ar-tn": "아랍어 (튀니지)",
- "ar-ye": "아랍어 (예멘)",
- "be": "벨라루스어",
- "bg": "불가리아어",
- "ca": "카탈로니아어",
- "cs": "체코어",
- "da": "덴마크어",
- "de-at": "독일어 (오스트리아)",
- "de-ch": "독일어 (스위스)",
- "de": "독일어",
- "de-li": "독일어 (리히텐슈타인)",
- "de-lu": "독일어 (룩셈부르크)",
- "el": "그리스어",
"Cancel": "취소",
"Close": "닫기",
"Create new room": "새 방 만들기",
"Custom Server Options": "사용자 지정 서버 설정",
- "Direct Chat": "직접 이야기하기",
"Dismiss": "없애기",
"Error": "오류",
"Mute": "알림 끄기",
"Notifications": "알림",
- "Please Register": "계정을 등록해주세요",
"powered by Matrix": "매트릭스의 지원을 받고 있어요",
"Remove": "지우기",
"Room directory": "방 목록",
@@ -44,106 +14,8 @@
"Settings": "설정",
"Start chat": "이야기하기",
"unknown error code": "알 수 없는 오류 코드",
- "Sunday": "일요일",
- "Monday": "월요일",
- "Tuesday": "화요일",
- "Wednesday": "수요일",
- "Thursday": "목요일",
- "Friday": "금요일",
- "Saturday": "토요일",
"OK": "알았어요",
- "Welcome page": "환영 화면",
"Continue": "게속하기",
- "en-au": "영어 (호주)",
- "en-bz": "영어 (벨리즈)",
- "en-ca": "영어 (캐나다)",
- "en": "영어",
- "en-gb": "영어 (영국)",
- "en-ie": "영어 (아일랜드)",
- "en-jm": "영어 (자메이카)",
- "en-nz": "영어 (뉴질랜드)",
- "en-tt": "영어 (트리니다드토바고)",
- "en-us": "영어 (미국)",
- "en-za": "영어 (남아프리카)",
- "es-ar": "스페인어 (아르헨티나)",
- "es-bo": "스페인어 (볼리비아)",
- "es-cl": "스페인어 (칠레)",
- "es-co": "스페인어 (콜롬비아)",
- "es-cr": "스페인어 (코스타리카)",
- "es-do": "스페인어 (도미니카 공화국)",
- "es-ec": "스페인어 (에콰도르)",
- "es-gt": "스페인어 (과테말라)",
- "es-hn": "스페인어 (온두라스)",
- "es-mx": "스페인어 (멕시코)",
- "es-ni": "스페인어 (니카라과)",
- "es-pa": "스페인어 (파나마)",
- "es-pe": "스페인어 (페루)",
- "es-pr": "스페인어 (푸에르토리코)",
- "es-py": "스페인어 (파라과이)",
- "es": "스페인어 (스페인)",
- "es-sv": "스페인어 (엘살바도르)",
- "es-uy": "스페인어 (우루과이)",
- "es-ve": "스페인어 (베네수엘라)",
- "et": "에스토니아어",
- "eu": "바스크어 (바스크)",
- "fa": "페르시아어",
- "fi": "핀란드어",
- "fo": "페로스어",
- "fr-be": "프랑스어 (벨기에)",
- "fr-ca": "프랑스어 (캐나다)",
- "fr-ch": "프랑스어 (스위스)",
- "fr": "프랑스어",
- "fr-lu": "프랑스어 (룩셈부르크)",
- "ga": "아일랜드어",
- "gd": "게일어 (스코틀랜드)",
- "he": "히브리어",
- "hi": "힌디어",
- "hr": "크로아티아어",
- "hu": "헝가리어",
- "id": "인도네시아어",
- "is": "아이슬란드어",
- "it-ch": "이탈리아어 (스위스)",
- "it": "이탈리아어",
- "ja": "일본어",
- "ji": "이디시어",
- "ko": "한국어",
- "lt": "리투아니아어",
- "lv": "라트비아어",
- "mk": "마케도니아어 (마케도니아 공화국)",
- "ms": "말레이시아어",
- "mt": "몰타어",
- "nl-be": "네덜란드어 (벨기에)",
- "nl": "네덜란드어",
- "no": "노르웨이어",
- "pl": "폴란드어",
- "pt-br": "브라질 포르투갈어",
- "pt": "포르투갈어",
- "rm": "레토로만어",
- "ro-mo": "루마니아어 (몰도바 공화국)",
- "ro": "루마니아어",
- "ru-mo": "러시아어 (몰도바 공확국)",
- "ru": "러시아어",
- "sb": "소르비아어",
- "sk": "슬로바키아어",
- "sr": "세르비아어",
- "sv-fi": "스웨덴어 (핀란드)",
- "sv": "스웨덴어",
- "sx": "수투어",
- "sz": "라플란드어 (라플란드)",
- "th": "태국",
- "tn": "츠와나어",
- "tr": "터키어",
- "ts": "총가어",
- "uk": "우크라이나어",
- "ur": "우르두어",
- "ve": "벤다어",
- "vi": "베트남어",
- "xh": "코사어",
- "zh-cn": "중국어 (중국)",
- "zh-hk": "중국어 (홍콩)",
- "zh-sg": "중국어 (싱가포르)",
- "zh-tw": "중국어 (대만)",
- "zu": "줄루어",
"a room": "방",
"Accept": "수락",
"Account": "계정",
@@ -151,7 +23,7 @@
"Add email address": "이메일 주소 추가하기",
"Add phone number": "전화번호 추가하기",
"Admin": "관리자",
- "Admin tools": "관리 도구",
+ "Admin Tools": "관리 도구",
"VoIP": "인터넷전화",
"No Microphones detected": "마이크를 찾지 못했어요",
"No Webcams detected": "카메라를 찾지 못했어요",
@@ -165,11 +37,9 @@
"Always show message timestamps": "항상 메시지에 시간을 보이기",
"Authentication": "인증",
"Alias (optional)": "별명 (선택)",
- "and": "그리고",
"A new password must be entered.": "새 비밀번호를 입력해주세요.",
"An error has occurred.": "오류가 일어났어요.",
"Anyone": "누구나",
- "anyone": "누구나",
"Are you sure?": "정말이세요?",
"Are you sure you want to leave the room '%(roomName)s'?": "정말로 '%(roomName)s'를 떠나시겠어요?",
"Attachment": "붙이기",
@@ -204,34 +74,24 @@
"Email, name or matrix ID": "이메일, 이름 혹은 매트릭스 ID",
"Drop here %(toAction)s": "여기에 놓아주세요 %(toAction)s",
"Failed to forget room %(errCode)s": "방 %(errCode)s를 잊지 못했어요",
- "Failed to join the room": "방에 들어가지 못했어요",
"Favourite": "즐겨찾기",
"Operation failed": "작업 실패",
"Failed to change password. Is your password correct?": "비밀번호를 바꾸지 못했어요. 이 비밀번호가 정말 맞으세요?",
- "sl": "슬로베니아어",
- "sq": "알바니아어",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "+%(msisdn)s로 문자 메시지를 보냈어요. 인증 번호를 입력해주세요",
"%(targetName)s accepted an invitation.": "%(targetName)s님이 초대를 수락했어요.",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s님이 %(displayName)s님에게서 초대를 수락했어요.",
"Access Token:": "접근 토큰:",
"Active call (%(roomName)s)": "(%(roomName)s)에서 전화를 걸고 받을 수 있어요",
"Add a topic": "주제 추가",
- "And %(count)s more...": "그리고 %(count)s 더 보기...",
"Missing Media Permissions, click here to request.": "저장소 권한을 잃었어요, 여기를 눌러 다시 요청해주세요.",
"You may need to manually permit Riot to access your microphone/webcam": "수동으로 라이엇에 마이크와 카메라를 허용해야 할 수도 있어요",
- "all room members": "방 구성원 모두",
- "all room members, from the point they are invited": "방 구성원 모두, 초대받은 시점부터",
- "all room members, from the point they joined": "방 구성원 모두, 방에 들어온 시점부터",
"%(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": "그리고 다른 하나..."
- },
+ "and %(count)s others...|one": "그리고 다른 하나...",
+ "and %(count)s others...|other": "그리고 %(count)s...",
"%(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": "이메일을 보냈어요",
"%(senderName)s answered the call.": "%(senderName)s님이 전화를 받았어요.",
"Anyone who knows the room's link, apart from guests": "손님을 제외하고, 방의 주소를 아는 누구나",
@@ -250,7 +110,6 @@
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s님이 방 이름을 지우셨어요.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s님이 주제를 \"%(topic)s\"로 바꾸셨어요.",
"Changes to who can read history will only apply to future messages in this room": "방의 이후 메시지부터 기록을 읽을 수 있는 조건의 변화가 적용되어요",
- "changing room on a RoomView is not supported": "룸뷰에서 방을 바꾸는 건 지원하지 않아요",
"Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "비밀번호를 바꾸면 현재 모든 장치의 종단간 암호화 키가 다시 설정되고, 먼저 방의 키를 내보내고 나중에 다시 불러오지 않는 한, 암호화한 이야기 기록을 읽을 수 없게 되어요. 앞으로는 이 기능을 더 좋게 만들 거에요.",
"Claimed Ed25519 fingerprint key": "Ed25519 지문 키가 필요",
"Click here to join the discussion!": "여기를 눌러서 같이 논의해요!",
@@ -267,8 +126,8 @@
"Conference calls are not supported in encrypted rooms": "암호화한 방에서는 전화 회의를 할 수 없어요",
"Conference calls are not supported in this client": "이 클라이언트에서는 전화 회의를 할 수 없어요",
"Could not connect to the integration server": "통합 서버에 연결할 수 없어요",
- "%(count)s new messages.one": "%(count)s 새 메시지",
- "%(count)s new messages.other": "%(count)s 새 메시지",
+ "%(count)s new messages|one": "%(count)s 새 메시지",
+ "%(count)s new messages|other": "%(count)s 새 메시지",
"Create a new chat or reuse an existing one": "새 이야기를 시작하거나 기존에 하던 이야기를 이어하세요",
"Cryptography": "암호화",
"Current password": "현재 비밀번호",
@@ -281,13 +140,11 @@
"Decrypt %(text)s": "해독 %(text)s",
"Decryption error": "해독 오류",
"Delete": "지우기",
- "demote": "등급 낮추기",
"Deops user with given id": "받은 ID로 사용자의 등급을 낮추기",
"Device ID:": "장치 ID:",
"Device key:": "장치 키:",
"Devices will not yet be able to decrypt history from before they joined the room": "방에 들어가기 전에는 장치에서 기록을 해독할 수 없어요",
"Disable inline URL previews by default": "기본적으로 인라인 URL 미리보기를 끄기",
- "Disable markdown formatting": "마크다운 형식 끄기",
"Disinvite": "초대 취소",
"Displays action": "활동 보이기",
"Download %(text)s": "%(text)s 받기",
@@ -326,7 +183,6 @@
"Failed to load timeline position": "타임라인 위치를 불러오지 못했어요",
"Failed to lookup current room": "현재 방을 찾지 못했어요",
"Failed to mute user": "사용자의 알림을 끄지 못했어요",
- "Failed to register as guest:": "손님으로 등록하지 못했어요:",
"Failed to reject invite": "초대를 거절하지 못했어요",
"Failed to reject invitation": "초대를 거절하지 못했어요",
"Failed to save settings": "설정을 저장하지 못했어요",
@@ -341,7 +197,6 @@
"Failed to upload profile picture!": "자기 소개에 사진을 올리지 못했어요!",
"Failed to verify email address: make sure you clicked the link in the email": "이메일 주소를 확인하지 못했어요: 메일의 주소를 눌렀는지 확인해보세요",
"Failure to create room": "방을 만들지 못했어요",
- "favourite": "즐겨찾기",
"Favourites": "즐겨찾기",
"Fill screen": "화면 채우기",
"Filter room members": "방 구성원 거르기",
@@ -352,12 +207,7 @@
"Found a bug?": "오류를 찾으셨나요?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s를 %(fromPowerLevel)s에서 %(toPowerLevel)s로",
"Guest access is disabled on this Home Server.": "손님은 이 홈 서버에 접근하실 수 없어요.",
- "Guests can't set avatars. Please register.": "손님은 아바타를 설정하실 수 없어요. 계정을 등록해주세요.",
- "Guest users can't create new rooms. Please register to create room and start a chat.": "손님은 새 방을 만드실 수 없어요. 계정을 등록하셔서 방을 만드시고 이야기를 시작하세요.",
- "Guest users can't upload files. Please register to upload.": "손님은 파일을 올릴 수 없어요. 파일을 올리시려면 계정을 등록해주세요.",
- "Guests can't use labs features. Please register.": "손님은 실험실 기능을 쓸 수 없어요. 계정을 등록해주세요.",
"Guests cannot join this room even if explicitly invited.": "손님은 분명하게 초대받았어도 이 방에 들어가실 수 없어요.",
- "had": "했어요",
"Hangup": "전화 끊기",
"Hide read receipts": "읽음 확인 표시 숨기기",
"Hide Text Formatting Toolbar": "문자 서식 도구 숨기기",
@@ -390,8 +240,6 @@
"Sign in with": "로그인",
"Join as voice or video.": "음성 또는 영상으로 참여하세요.",
"Join Room": "방에 들어가기",
- "joined and left": "들어왔다가 떠남",
- "joined": "들어옴",
"%(targetName)s joined the room.": "%(targetName)s님이 방에 들어오셨어요.",
"Joins room with given alias": "받은 가명으로 방에 들어가기",
"Jump to first unread message.": "읽지 않은 첫 메시지로 이동할래요.",
@@ -401,8 +249,6 @@
"Labs": "실험실",
"Last seen": "마지막으로 본 곳",
"Leave room": "방 떠나기",
- "left and rejoined": "떠났다가 다시 들어옴",
- "left": "떠났음",
"%(targetName)s left the room.": "%(targetName)s님이 방을 떠나셨어요.",
"Level:": "등급:",
"Local addresses for this room:": "이 방의 로컬 주소:",
@@ -410,7 +256,11 @@
"Login as guest": "손님으로 로그인",
"Logout": "로그아웃",
"Low priority": "낮은 우선순위",
- "%(senderName)s made future room history visible to": "%(senderName)s님이 이후 방의 기록을 볼 수 있게 하셨어요",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s님이 이후 방의 기록을 볼 수 있게 하셨어요 방 구성원 모두, 초대받은 시점부터.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s님이 이후 방의 기록을 볼 수 있게 하셨어요 방 구성원 모두, 방에 들어온 시점부터.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s님이 이후 방의 기록을 볼 수 있게 하셨어요 방 구성원 모두.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s님이 이후 방의 기록을 볼 수 있게 하셨어요 누구나.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s님이 이후 방의 기록을 볼 수 있게 하셨어요 알 수 없음 (%(visibility)s).",
"Manage Integrations": "통합 관리",
"Markdown is disabled": "마크다운이 꺼져있어요",
"Markdown is enabled": "마크다운이 켜져있어요",
@@ -423,13 +273,10 @@
"Mobile phone number (optional)": "휴대 전화번호 (선택)",
"Moderator": "조정자",
"Must be viewing a room": "방을 둘러봐야만 해요",
- "my Matrix ID": "내 매트릭스 ID",
"Name": "이름",
"Never send encrypted messages to unverified devices from this device": "이 장치에서 인증받지 않은 장치로 암호화한 메시지를 보내지 마세요",
- "Never send encrypted messages to unverified devices in this room": "이 방에서 인증받지 않은 장치로 암호화한 메시지를 보내지 마세요",
"Never send encrypted messages to unverified devices in this room from this device": "이 장치에서 이 방의 인증받지 않은 장치로 암호화한 메시지를 보내지 마세요",
"New address (e.g. #foo:%(localDomain)s)": "새 주소 (예. #foo:%(localDomain)s)",
- "New Composer & Autocomplete": "새 구성 & 자동 완성",
"New password": "새 비밀번호",
"New passwords don't match": "새 비밀번호가 맞지 않아요",
"New passwords must match each other.": "새 비밀번호는 서로 같아야 해요.",
@@ -452,7 +299,7 @@
"People": "사람들",
"Phone": "전화",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "방을 암호화하면 암호화를 도중에 끌 수 없어요. (현재로서는)",
- "Once you've followed the link it contains, click below": "포함된 주소를 따라가서, 아래를 누르세요",
+ "Once you've followed the link it contains, click below": "포함된 주소를 따라가서, 아래를 누르세요",
"Only people who have been invited": "초대받은 사람만",
"Otherwise, click here to send a bug report.": "그 밖에는, 여기를 눌러 오류 보고서를 보내주세요.",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s님이 %(callType)s 전화를 걸었어요.",
@@ -460,7 +307,6 @@
"Power level must be positive integer.": "권한 등급은 양의 정수여야만 해요.",
"%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (권한 %(powerLevelNumber)s)",
"You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "사용자를 자신과 같은 권한 등급으로 승급시키면 되돌릴 수 없어요.",
- "Press": "누르세요",
"Privacy warning": "개인정보 경고",
"Private Chat": "비공개 이야기",
"Privileged Users": "권한 있는 사용자",
@@ -473,7 +319,6 @@
"Revoke Moderator": "조정자 철회",
"Refer a friend to Riot:": "라이엇을 친구에게 추천해주세요:",
"Register": "등록하기",
- "rejected": "거절함",
"%(targetName)s rejected the invitation.": "%(targetName)s님이 초대를 거절하셨어요.",
"Reject invitation": "초대 거절",
"Rejoin": "다시 들어가기",
@@ -484,7 +329,6 @@
"%(senderName)s requested a VoIP conference.": "%(senderName)s님이 인터넷전화 회의를 요청하셨어요.",
"Report it": "보고하기",
"Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "비밀번호를 다시 설정하면 현재 모든 장치의 종단간 암호화 키가 다시 설정되고, 먼저 방의 키를 내보내고 나중에 다시 불러오지 않는 한, 암호화한 이야기 기록을 읽을 수 없게 되어요. 앞으로는 이 기능을 더 좋게 만들 거에요.",
- "restore": "복구하기",
"Results from DuckDuckGo": "덕덕고에서 검색한 결과",
"Return to app": "앱으로 돌아가기",
"Return to login screen": "로그인 화면으로 돌아가기",
@@ -503,7 +347,6 @@
"Scroll to unread messages": "읽지 않은 메시지로 이동",
"Search failed": "찾지 못함",
"Searches DuckDuckGo for results": "덕덕고에서 검색",
- "Searching known users": "아는 사용자 검색중",
"Seen by %(userName)s at %(dateTime)s": "%(userName)s님이 %(dateTime)s에 확인",
"Send a message (unencrypted)": "메시지 보내기 (비암호화)",
"Send an encrypted message": "암호화한 메시지 보내기",
@@ -523,7 +366,6 @@
"Server unavailable, overloaded, or something else went wrong.": "서버를 쓸 수 없거나 과부하거나, 다른 문제가 있어요.",
"Session ID": "세션 ID",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s님이 별명을 %(displayName)s로 바꾸셨어요.",
- "Set": "설정하기",
"Show panel": "패널 보이기",
"Show Text Formatting Toolbar": "문자 서식 도구 보이기",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "시간을 12시간제로 보이기 (예. 오후 2:30)",
@@ -541,14 +383,11 @@
"Start Chat": "이야기하기",
"Submit": "보내기",
"Success": "성공",
- "tag as %(tagName)s": "%(tagName)s로 지정하기",
- "tag direct chat": "직접 이야기 지정하기",
"Tagged as: ": "지정함: ",
"The default role for new room members is": "방 새 구성원의 기본 역할",
"The main address for this room is": "이 방의 주요 주소",
"The phone number entered looks invalid": "입력한 전화번호가 잘못된 거 같아요",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "입력한 서명 키는 %(userId)s님의 장치 %(deviceId)s에서 받은 서명 키와 일치하네요. 인증한 장치로 표시할게요.",
- "This action cannot be performed by a guest user. Please register to be able to do this.": "손님은 이 작업을 할 수 없어요. 하려면 계정을 등록해주세요.",
"This email address is already in use": "이 이메일 주소는 사용중이에요",
"This email address was not found": "이 이메일 주소를 찾지 못했어요",
"%(actionVerb)s this person?": "이 사용자에게 %(actionVerb)s?",
@@ -558,7 +397,6 @@
"The remote side failed to pick up": "원격 측에서 찾지 못했어요",
"This Home Server does not support login using email address.": "이 홈 서버는 이메일 주소 로그인을 지원하지 않아요.",
"This invitation was sent to an email address which is not associated with this account:": "이 초대는 이 계정과 연결되지 않은 이메일 주소로 보냈어요:",
- "There was a problem logging in.": "로그인하는 데 문제가 있어요.",
"This room has no local addresses": "이 방은 로컬 주소가 없어요",
"This room is not recognised.": "이 방은 드러나지 않아요.",
"These are experimental features that may break in unexpected ways": "예상치 못한 방법으로 망가질 지도 모르는 실험 기능이에요",
@@ -569,23 +407,11 @@
"This room": "이 방",
"This room is not accessible by remote Matrix servers": "이 방은 원격 매트릭스 서버에 접근할 수 없어요",
"This room's internal ID is": "방의 내부 ID",
- "times": "번",
- "To ban users": "사용자를 차단하기",
- "to browse the directory": "목록에서 찾으려면",
- "To configure the room": "방을 구성하기",
"to demote": "우선순위 낮추기",
"to favourite": "즐겨찾기",
- "To invite users into the room": "방으로 사용자를 초대하기",
- "To kick users": "사용자를 내쫓기",
"To link to a room it must have an address.": "방에 연결하려면 주소가 있어야 해요.",
- "to make a room or": "방을 만들거나 혹은",
- "To remove other users' messages": "다른 사용자의 메시지를 지우기",
"To reset your password, enter the email address linked to your account": "비밀번호을 다시 설정하려면, 계정과 연결한 이메일 주소를 입력해주세요",
"to restore": "복구하려면",
- "To send events of type": "유형 이벤트 보내기",
- "To send messages": "메시지 보내기",
- "to start a chat with someone": "다른 사람과 이야기하기",
- "to tag as %(tagName)s": "%(tagName)s로 지정하려면",
"to tag direct chat": "직접 이야기를 지정하려면",
"To use it, just wait for autocomplete results to load and tab through them.": "이 기능을 사용하시려면, 자동완성 결과가 나오길 기다리신 뒤에 탭으로 움직여주세요.",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "이 방의 타임라인에서 특정 시점을 불러오려고 했지만, 문제의 메시지를 볼 수 있는 권한이 없어요.",
@@ -595,7 +421,6 @@
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s님이 종단간 암호화를 켜셨어요 (알고리즘 %(algorithm)s).",
"Unable to add email address": "이메일 주소를 추가할 수 없어요",
"Unable to remove contact information": "연락처를 지울 수 없어요",
- "Unable to restore previous session": "이전 세션을 복구할 수 없어요",
"Unable to verify email address.": "이메일 주소를 인증할 수 없어요.",
"Unban": "차단풀기",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s님이 %(targetName)s님의 차단을 푸셨어요.",
@@ -611,15 +436,14 @@
"unknown device": "알 수 없는 장치",
"Unknown room %(roomId)s": "알 수 없는 방 %(roomId)s",
"Unknown (user, device) pair:": "알 수 없는 (사용자, 장치) 연결:",
- "unknown": "알 수 없음",
"Unmute": "소리 켜기",
"Unnamed Room": "이름 없는 방",
"Unrecognised command:": "인식 할 수 없는 명령:",
"Unrecognised room alias:": "인식할 수 없는 방 가명:",
"Unverified": "인증하지 않음",
- "Uploading %(filename)s and %(count)s others.zero": "%(filename)s 올리는 중",
- "Uploading %(filename)s and %(count)s others.one": "%(filename)s 외 %(count)s 올리는 중",
- "Uploading %(filename)s and %(count)s others.other": "%(filename)s 외 %(count)s 올리는 중",
+ "Uploading %(filename)s and %(count)s others|zero": "%(filename)s 올리는 중",
+ "Uploading %(filename)s and %(count)s others|one": "%(filename)s 외 %(count)s 올리는 중",
+ "Uploading %(filename)s and %(count)s others|other": "%(filename)s 외 %(count)s 올리는 중",
"uploaded a file": "파일을 올렸어요",
"Upload avatar": "아바타 올리기",
"Upload Failed": "파일을 올리지 못했어요",
@@ -660,7 +484,6 @@
"Would you like to accept or decline this invitation?": "초대를 받아들이거나 거절하시겠어요?",
"You already have existing direct chats with this user:": "이미 이 사용자와 직접 이야기하는 중이에요:",
"You are already in a call.": "이미 자신이 통화 중이네요.",
- "You're not in any rooms yet! Press": "어떤 방에도 들어가 있지 않으세요! 누르세요",
"Press to start a chat with someone": "다른 사람과 이야기하려면 을 누르세요",
"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!": "주의: 키 확인 실패! %(userId)s와 장치 %(deviceId)s의 서명 키 \"%(fprint)s\"는 주어진 키 \"%(fingerprint)s\"와 맞지 않아요. 누가 이야기를 가로채는 중일 수도 있어요!",
"You're not in any rooms yet! Press to make a room or to browse the directory": "어떤 방에도 들어가 있지 않으세요! 을 눌러서 방을 만들거나 를 눌러 목록에서 방을 찾아보세요",
@@ -674,15 +497,12 @@
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "모든 장치에서 로그아웃되었고 더 이상 알림을 받지 않으실 거에요. 다시 알림을 받으시려면, 각 장치에 로그인해주세요",
"You have disabled URL previews by default.": "URL 미리보기 쓰지 않기를 기본으로 하셨어요.",
"You have enabled URL previews by default.": "URL 미리보기 쓰기를 기본으로 하셨어요.",
- "You have entered an invalid contact. Try using their Matrix ID or email address.": "잘못된 연락처를 입력하셨어요. 매트릭스 ID나 이메일 주소를 써보세요.",
"You have no visible notifications": "보여드릴 알림이 없어요",
"You may wish to login with a different account, or add this email to this account.": "다른 계정으로 로그인하거나, 이 이메일을 이 계정에 추가할 수도 있어요.",
- "you must be a": "해야해요",
"You must register to use this functionality": "이 기능을 쓰시려면 계정을 등록하셔야 해요",
"You need to be able to invite users to do that.": "그러려면 사용자를 초대하실 수 있어야 해요.",
"You need to be logged in.": "로그인하셔야 해요.",
"You need to enter a user name.": "사용자 이름을 입력하셔야 해요.",
- "You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.": "이 장치에 종단간 암호화 키를 만들고 공개 키를 홈 서버에 보내려면 다시 로그인해야해요. 한 번만 하시면 돼요. 불편을 드려 죄송합니다.",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "이메일 주소가 이 홈 서버의 매트릭스 ID와 관련이 없어요.",
"Your password has been reset": "비밀번호를 다시 설정했어요",
"Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "비밀번호를 바꾸었어요. 다른 장치에서 다시 로그인할 때까지 알림을 받지 않을 거에요",
@@ -713,7 +533,6 @@
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s일 %(fullYear)s년 %(time)s",
"%(weekDayName)s %(time)s": "%(weekDayName)s, %(time)s",
"Set a display name:": "별명 설정:",
- "Set a Display Name": "별명 설정",
"Upload an avatar:": "아바타 올리기:",
"This server does not support authentication with a phone number.": "이 서버는 전화번호 인증을 지원하지 않아요.",
"Missing password.": "비밀번호를 틀렸어요.",
@@ -734,11 +553,9 @@
"Room": "방",
"Connectivity to the server has been lost.": "서버 연결이 끊어졌어요.",
"Sent messages will be stored until your connection has returned.": "보내신 메시지는 다시 연결될 때까지 저장할 거에요.",
- "Auto-complete": "자동 완성",
"Resend all or cancel all now. You can also select individual messages to resend or cancel.": "전부 다시 보내거나 취소하세요. 다시 보내거나 취소할 메시지를 하나씩 고르실 수도 있어요.",
- "(~%(count)s results).one": "(~%(count)s 결과)",
- "(~%(count)s results).other": "(~%(count)s 결과)",
- "or": "혹은",
+ "(~%(count)s results)|one": "(~%(count)s 결과)",
+ "(~%(count)s results)|other": "(~%(count)s 결과)",
"Active call": "전화 중",
"bold": "굵은 획",
"italic": "기울임꼴",
@@ -812,7 +629,6 @@
"You must join the room to see its files": "파일을 보려면 방에 들어가야만 해요",
"Reject all %(invitedRooms)s invites": "모든 %(invitedRooms)s의 초대를 거절하기",
"Start new chat": "새로 이야기하기",
- "Guest users can't invite users. Please register.": "손님은 사용자를 초대할 수 없어요. 계정을 등록해주세요.",
"Failed to invite": "초대하지 못했어요",
"Failed to invite user": "사용자를 초대하지 못했어요",
"Failed to invite the following users to the %(roomName)s room:": "다음 사용자들을 %(roomName)s 방으로 초대하지 못했어요:",
@@ -839,7 +655,6 @@
"Unable to restore session": "세션을 복구할 수 없어요",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "이전에 더 최근 버전의 라이엇을 쓰셨다면, 이 버전과 맞지 않을 거에요. 창을 닫고 더 최근 버전으로 돌아가세요.",
"Continue anyway": "무시하고 계속하기",
- "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "별명은 방에서 말할 때 다른 사람에게 보일 이름을 정하는 거에요. 어떤 게 좋으세요?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "현재 인증하지 않은 장치를 요주의로 지정하셨어요. 이 장치들에 메시지를 보내려면 인증을 해야 해요.",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "각 장치가 알맞은 소유자에게 속해 있는지 인증 과정을 거치길 추천하지만, 원하신다면 그러지 않고 메시지를 다시 보내실 수 있어요.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\"에 본 적 없는 장치가 있어요.",
@@ -895,7 +710,7 @@
"Start chatting": "이야기하기",
"Start Chatting": "이야기하기",
"Click on the button below to start chatting!": "이야기하려면 아래 버튼을 누르세요!",
- "$senderDisplayName changed the room avatar to
": "$senderDisplayName님이 방 아바타를
로 바꾸셨어요",
+ "%(senderDisplayName)s changed the room avatar to
": "%(senderDisplayName)s님이 방 아바타를
로 바꾸셨어요",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s님이 방 아바타를 지우셨어요.",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s가 %(roomName)s 방의 아바타를 바꾸셨어요",
"Username available": "쓸 수 있는 사용자 이름",
diff --git a/src/i18n/strings/lv.json b/src/i18n/strings/lv.json
index c2a55b3fc2..63a504d71e 100644
--- a/src/i18n/strings/lv.json
+++ b/src/i18n/strings/lv.json
@@ -1,124 +1,4 @@
{
- "af": "Afrikandu",
- "ar-ae": "Arābu (A.A.E.)",
- "ar-bh": "Arābu (Bahraina)",
- "ar-dz": "Arābu (Alžīrija)",
- "ar-eg": "Arābu (Ēģipte)",
- "ar-iq": "Arābu (Irāka)",
- "ar-jo": "Arābu (Jordāna)",
- "ar-kw": "Arābu (Kuveita)",
- "ar-lb": "Arābu (Lebanēna)",
- "ar-ly": "Arābu (Lībija)",
- "ar-ma": "Arābu (Maroka)",
- "ar-om": "Arābu (Omāna)",
- "ar-qa": "Arābu (Kvatara)",
- "ar-sa": "Arābu (Saūda Arābija)",
- "ar-sy": "Arābu (Sīrija)",
- "ar-tn": "Arābu (Tunisija)",
- "ar-ye": "Arābu (Jemena)",
- "be": "Baltkrievu",
- "bg": "Bulgāru",
- "ca": "Katalāņu",
- "cs": "Čehu",
- "da": "Dāņu",
- "de-at": "Vācu (Austrija)",
- "de-ch": "Vācu (Šveice)",
- "de": "Vācu",
- "de-li": "Vācu (Lihtenšteina)",
- "de-lu": "Vācu (Luksemburga)",
- "el": "Grieķu",
- "en-au": "Angļu (Austrālija)",
- "en-bz": "Angļu (Beliza)",
- "en-ca": "Angļu (Kanāda)",
- "en": "Angļu",
- "en-gb": "Angļu (Apvienotā Karaliste)",
- "en-ie": "Angļu (Īrija)",
- "en-jm": "Angļu (Jamaika)",
- "en-nz": "Angļu (Jaunzēlande)",
- "en-tt": "Angļu (Trinidāda)",
- "en-us": "Angļu (ASV)",
- "en-za": "Angļu (Dienvidāfrika)",
- "es-ar": "Spāņu (Argentīna)",
- "es-bo": "Spāņu (Bolīvija)",
- "es-cl": "Spāņu (Čīle)",
- "es-co": "Spāņu (Kolumbija)",
- "es-cr": "Spāņu (Kostarika)",
- "es-do": "Spāņu (Dominikānas Republika)",
- "es-ec": "Spāņu (Ekvadora)",
- "es-gt": "Spāņu (Gvatemala)",
- "es-hn": "Spāņu (Hondurasa)",
- "es-mx": "Spāņu (Meksika)",
- "es-ni": "Spāņu (Nikaragva)",
- "es-pa": "Spāņu (Panama)",
- "es-pe": "Spāņu (Peru)",
- "es-pr": "Spāņu (Puertoriko)",
- "es-py": "Spāņu (Paragvaja)",
- "es": "Spāņu (Spānija)",
- "es-sv": "Spāņu (Salvadora)",
- "es-uy": "Spāņu (Urugvaja)",
- "es-ve": "Spāņu (Venecuēla)",
- "et": "Igauņu",
- "eu": "Basku (Basku Zeme)",
- "fa": "Farsi",
- "fi": "Somu",
- "fo": "Fēriešu",
- "fr-be": "Franču (Beļģija)",
- "fr-ca": "Franču (Kanāda)",
- "fr-ch": "Franču (Šveice)",
- "fr": "Franču",
- "fr-lu": "Franču (Luksemburga)",
- "ga": "Īru",
- "gd": "Gallu (Skotija)",
- "he": "Ebreju",
- "hi": "Hindi",
- "hr": "Kroātu",
- "hu": "Ungāru",
- "id": "Indonēziešu",
- "is": "Islandiešu",
- "it-ch": "Itāļu (Šveice)",
- "it": "Itāļu",
- "ja": "Japāņu",
- "ji": "Jidišs",
- "ko": "Korejiešu",
- "lt": "Lietuviešu",
- "lv": "Latviešu",
- "mk": "Maķedoniešu (FYROM)",
- "ms": "Malaiziešu",
- "mt": "Maltiešu",
- "nl-be": "Nīderlandiešu (Beļģija)",
- "nl": "Nīderlandiešu",
- "no": "Norvēģu",
- "pl": "Poļu",
- "pt-br": "Brazīlijas portugāļu",
- "pt": "Portugāļu",
- "rm": "Rhaeto-Rumāņu",
- "ro-mo": "Rumāņu (Moldovas Republika)",
- "ro": "Rumāņu",
- "ru-mo": "Krievu (Moldovas Republika)",
- "ru": "Krievu",
- "sb": "Sorbu",
- "sk": "Slovāku",
- "sl": "Slovēņu",
- "sq": "Albāniešu",
- "sr": "Serbu",
- "sv-fi": "Zviedru (Somija)",
- "sv": "Zviedru",
- "sx": "Sutu",
- "sz": "Sāmu (Lapu)",
- "th": "Taju",
- "tn": "Cvanu",
- "tr": "Turku",
- "ts": "Congu",
- "uk": "Ukraiņu",
- "ur": "Urdu",
- "ve": "Vendu",
- "vi": "Vjetnamiešu",
- "xh": "Khosu",
- "zh-cn": "Ķīniešu (ĶTR)",
- "zh-hk": "Ķīniešu (Honkongas SAR)",
- "zh-sg": "Ķīniešu (Singapūra)",
- "zh-tw": "Ķīniešu (Taivāna)",
- "zu": "Zulu",
"a room": "istaba",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Teksta ziņa tika nosūtīta +%(msisdn)s. Lūdzu ievadi tajā atrodamo verifikācijas kodu",
"Accept": "Apstiprināt",
@@ -132,8 +12,7 @@
"Add email address": "Pievieno Epasta adresi",
"Add phone number": "Pievieno tālruņa numuru",
"Admin": "Administrators",
- "Admin tools": "Administratora rīki",
- "And %(count)s more...": "Un vēl %(count)s citi...",
+ "Admin Tools": "Administratora rīki",
"VoIP": "VoIP",
"Missing Media Permissions, click here to request.": "Nav pieejas medija saturam. Klikšķini šeit, lai pieprasītu.",
"No Microphones detected": "Mikrofoni nav atrasti",
@@ -149,22 +28,14 @@
"Always show message timestamps": "Vienmēr rādīt ziņojumu laika zīmogu",
"Authentication": "Autentifikācija",
"Alias (optional)": "Aizstājējvārds (neobligāts)",
- "all room members": "visi istabas biedri",
- "all room members, from the point they are invited": "visi istabas biedri secībā, kādā tika uzaicināti",
- "all room members, from the point they joined": "visi istabas biedri secībā, kādā ir pievienojušies",
- "and": "un",
"%(items)s and %(remaining)s others": "%(items)s un %(remaining)s citi",
"%(items)s and one other": "%(items)s un viens cits",
"%(items)s and %(lastItem)s": "%(items)s un %(lastItem)s",
- "and %(overflowCount)s others...": "un %(overflowCount)s citi...",
- "and one other...": "un viens cits...",
"%(names)s and %(lastPerson)s are typing": "%(names)s un %(lastPerson)s raksta",
"%(names)s and one other are typing": "%(names)s un viens cits raksta",
- "%(names)s and %(count)s others are typing": "%(names)s un %(count)s citi raksta",
"An email has been sent to": "Epasts tika nosūtīts",
"A new password must be entered.": "Nepieciešams ievadīt jauno paroli.",
"%(senderName)s answered the call.": "%(senderName)s atbildēja zvanam.",
- "anyone": "ikviens",
"An error has occurred.": "Notikusi kļūda.",
"Anyone": "Ikviens",
"Anyone who knows the room's link, apart from guests": "Ikviens, kurš zina adreses saiti uz istabu, izņemot viesus",
@@ -195,7 +66,6 @@
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s nomainīja tēmas nosaukumu uz \"%(topic)s\".",
"Changes to who can read history will only apply to future messages in this room": "Izmaiņas attiecībā uz to, kurš varēs lasīt vēstures ziņas, stāsies spēkā tikai uz ziņām,kuras vēl tiks pievienotas šajā istabā",
"Changes your display nickname": "Nomaina tavu publisko segvārdu (niku)",
- "changing room on a RoomView is not supported": "istabas maiņa nav iespējama, atrodoties istabu skata lapā",
"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.": "Paroles maiņa dzēsīs pašreizējās šifrēšanas atslēgas visās savstarpēji saistītajās ierīcēs, padarot čata vēsturi neizlasāmu, ja vien vien istabas atslēgas nav tikušas iepriekš eksportētas un no jauna importētas atpakaļ. Nākotnē to plānojam uzlabot.",
"Claimed Ed25519 fingerprint key": "Norādīta Ed25519 identificējošās zīmju virknes atslēga",
"Clear Cache and Reload": "Iztīri kešatmiņu un pārlādē",
@@ -218,8 +88,8 @@
"Confirm your new password": "Apstiprini jauno paroli",
"Continue": "Turpināt",
"Could not connect to the integration server": "Neizdevās savienoties ar integrācijas serveri",
- "%(count)s new messages.one": "jaunu ziņu skaits: %(count)s",
- "%(count)s new messages.other": "%(count)s jaunas ziņas",
+ "%(count)s new messages|one": "jaunu ziņu skaits: %(count)s",
+ "%(count)s new messages|other": "%(count)s jaunas ziņas",
"Create a new chat or reuse an existing one": "Izveidot jaunu čatu vai izmantot eksistējošu",
"Create an account": "Reģistrēt kontu",
"Create Room": "Izveidot istabu",
@@ -235,7 +105,6 @@
"Decrypt %(text)s": "Atšifrēt %(text)s",
"Decryption error": "Atšifrēšanas kļūda",
"Delete": "Dzēst",
- "demote": "samazināt",
"Deops user with given id": "Noņemt operatora statusu lietotājam ar norādīto id",
"Default": "Noklusējuma",
"Device already verified!": "Ierīce ir jau verificēta!",
@@ -245,12 +114,10 @@
"Device key:": "Ierīces atslēga:",
"Devices": "Ierīces",
"Devices will not yet be able to decrypt history from before they joined the room": "Ierīces nevarēs atšifrēt to ziņu vēsturi, kuras ir tikušas pievienotas, pirms ierīce pieslēdzās istabai",
- "Direct Chat": "Tiešais čats",
"Direct chats": "Tiešie čati",
"Disable Notifications": "Atslēgt paziņojumus",
"disabled": "atslēgts",
"Disable inline URL previews by default": "Pēc noklusējuma atslēgt saišu priekšskatījumu",
- "Disable markdown formatting": "Atslēgt formatēšanas iespēju",
"Disinvite": "Atsaukt",
"Display name": "Redzamais vārds",
"Displays action": "Parāda darbību",
@@ -295,13 +162,11 @@
"Failed to fetch avatar URL": "Neizdevās noteikt avatara URL adresi",
"Failed to forget room %(errCode)s": "Neizdevās \"aizmirst\" istabu %(errCode)s",
"Failed to join room": "Neizdevās pievienoties istabai",
- "Failed to join the room": "Neizdevās pievienoties istabai",
"Failed to kick": "Neizdevās veikt \"kick\" darbību",
"Failed to leave room": "Neizdevās pamest istabu",
"Failed to load timeline position": "Neizdevās ielādēt laikpaziņojumu pozīciju",
"Failed to lookup current room": "Neizdevās pārlūkot pašreizējo istabu",
"Failed to mute user": "Neizdevās apklusināt lietotāju",
- "Failed to register as guest:": "Neizdevās reģistrēt kā viesi:",
"Failed to reject invite": "Neizdevās noraidīt uzaicinājumu",
"Failed to reject invitation": "Neizdevās noraidīt uzaicinājumu",
"Failed to save settings": "Neizdevās saglabāt uzstādījumus",
@@ -317,7 +182,6 @@
"Failed to verify email address: make sure you clicked the link in the email": "Neizdevās apstiprināt epasta adresi. Pārbaudi, vai Tu esi noklikšķinājis/usi saiti epasta ziņā",
"Failure to create room": "Neizdevās izveidot istabu",
"Favourite": "Favorīts",
- "favourite": "favorīts",
"Favourites": "Favorīti",
"Fill screen": "Aizpildīt ekrānu",
"Filter room members": "Filtrēt istabas biedrus",
@@ -328,12 +192,7 @@
"Found a bug?": "Pamanīji kļūdu?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s no %(fromPowerLevel)s uz %(toPowerLevel)s",
"Guest access is disabled on this Home Server.": "Šajā serverī viesu pierakstīšanās nav iespējama.",
- "Guests can't set avatars. Please register.": "Viesi nevar iestatīt profila attēlus. Lūdzu reģistrējies vai pieraksties.",
- "Guest users can't create new rooms. Please register to create room and start a chat.": "Viesi nevar izveidot jaunas istabas. Lūdzu reģistrējies vai pieraksties, un uzsāc čatu.",
- "Guest users can't upload files. Please register to upload.": "Viesi nevar augšuplādēt failus. Lūdzu reģistrējies vai pieraksties.",
- "Guests can't use labs features. Please register.": "Viesi nevar izmantot laboratorijas funkcijas. Lūdzu reģistrējies vai pieraksties.",
"Guests cannot join this room even if explicitly invited.": "Viesi nevar pievienoties šai istabai pat ja ir uzaicināti.",
- "had": "bija",
"Hangup": "Aizturēt",
"Hide read receipts": "Slēpt izlasītās receptes",
"Hide Text Formatting Toolbar": "Slēpt teksta formatēšanas rīkjoslu",
@@ -365,8 +224,6 @@
"Sign in with": "Pierakstīties ar",
"Join as voice or video.": "Pievienoties kā balss vai video.",
"Join Room": "Pievienoties istabai",
- "joined and left": "pievienojās un atstāja",
- "joined": "pievienojās",
"%(targetName)s joined the room.": "%(targetName)s pievienojās istabai.",
"Joins room with given alias": "Pievieno istabai ar uzdoto aizstājējvārdu",
"Jump to first unread message.": "Pārlekt uz pirmo neizlasīto ziņu.",
@@ -376,8 +233,6 @@
"Labs": "Laboratorija",
"Last seen": "Pēdējo reizi redzēts/a",
"Leave room": "Pamest istabu",
- "left and rejoined": "atstāja un pievienojās atkārtoti",
- "left": "atstāja",
"%(targetName)s left the room.": "%(targetName)s atstāja istabu.",
"Level:": "Līmenis:",
"Local addresses for this room:": "Šīs istabas lokālās adreses:",
@@ -385,7 +240,11 @@
"Login as guest": "Pierakstīties kā viesis",
"Logout": "Izrakstīties",
"Low priority": "Zema prioritāte",
- "%(senderName)s made future room history visible to": "%(senderName)s uzstādīja nākotnes istabas ziņu vēsturi redzamu",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s uzstādīja nākotnes istabas ziņu vēsturi redzamu visi istabas biedri secībā, kādā tika uzaicināti.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s uzstādīja nākotnes istabas ziņu vēsturi redzamu visi istabas biedri secībā, kādā ir pievienojušies.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s uzstādīja nākotnes istabas ziņu vēsturi redzamu visi istabas biedri.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s uzstādīja nākotnes istabas ziņu vēsturi redzamu ikviens.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s uzstādīja nākotnes istabas ziņu vēsturi redzamu nezināms (%(visibility)s).",
"Manage Integrations": "Pārvaldīt integrācijas",
"Markdown is disabled": "Formatēšanas iespēja ir atslēgta",
"Markdown is enabled": "Formatēšanas iespēja ir iespējota",
@@ -402,13 +261,11 @@
"Moderator": "Moderators",
"Must be viewing a room": "Jāapskata istaba",
"Mute": "Apklusināt",
- "my Matrix ID": "mans Matrix ID",
+ "%(serverName)s Matrix ID": "%(serverName)s Matrix ID",
"Name": "Vārds",
"Never send encrypted messages to unverified devices from this device": "Nekad nesūti no šīs ierīces šifrētas ziņas uz neverificētām ierīcēm",
- "Never send encrypted messages to unverified devices in this room": "Nekad nesūti šifrētas ziņas uz neverificētām ierīcēm šajā istabā",
"Never send encrypted messages to unverified devices in this room from this device": "Nekad nesūti no šīs ierīces šifrētas ziņas neverificētām ierīcēm šajā istabā",
"New address (e.g. #foo:%(localDomain)s)": "Jauna adrese (piemēram #kautkas:%(localDomain)s)",
- "New Composer & Autocomplete": "Jauns teksta izveidotājs & automātiskā aizpildīšana",
"New password": "Jauna parole",
"New passwords don't match": "Jaunās paroles nesakrīt",
"New passwords must match each other.": "Jaunajām parolēm ir jāsakrīt vienai ar otru.",
@@ -427,7 +284,7 @@
"OK": "LABI",
"olm version:": "olm versija:",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "Tiklīdz istabai tiks iespējota šifrēšana, tā vairs nebūs atslēdzama (pašlaik)",
- "Once you've followed the link it contains, click below": "Tiklīdz sekoji saturā esošajai saitei, noklikšķini zemāk",
+ "Once you've followed the link it contains, click below": "Tiklīdz sekoji saturā esošajai saitei, noklikšķini zemāk",
"Only people who have been invited": "Vienīgi personas, kuras ir tikušas uzaicinātas",
"Operation failed": "Darbība neizdevās",
"Otherwise, click here to send a bug report.": "pretējā gadījumā, klikšķini šeit, lai nosūtītu paziņojumu par kļūdu.",
@@ -439,8 +296,6 @@
"Phone": "Telefons",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s nolika %(callType)s zvanu.",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Lūdzu pārbaudi savu epastu un noklikšķini tajā esošo saiti. Tiklīdz tas ir izdarīts, klikšķini \"turpināt\".",
- "Please Register": "Lūdzu reģistrējies",
- "Press": "Nospied",
"Press to start a chat with someone": "Nospied , lai uzsāktu čatu ar kādu",
"Privacy warning": "Privātuma brīdinājums",
"Private Chat": "Privātais čats",
@@ -452,7 +307,6 @@
"Revoke Moderator": "Atcelt moderatoru",
"Refer a friend to Riot:": "Nosūtīt draugu uz Riot:",
"Register": "Reģistrēties",
- "rejected": "noraidīts",
"%(targetName)s rejected the invitation.": "%(targetName)s noraidīja uzaicinājumu.",
"Reject invitation": "Noraidīt uzaicinājumu",
"Rejoin": "Pievienoties atkārtoti",
@@ -465,7 +319,6 @@
"%(senderName)s requested a VoIP conference.": "%(senderName)s vēlas VoIP konferenci.",
"Report it": "Ziņot par to",
"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.": "Paroles atiestatīšana atiestatīs visas ierīce-ierīce šifrēšanas atslēgas visās ierīcēs, padarot čata šifrēto ziņu vēsturi nelasāmu, ja vien Tu pirms tam neesi eksportējis savas istabas atslēgas un atkārtoti importējis tās atpakaļ. Nākotnē šo ir plānots uzlabot.",
- "restore": "atjaunot",
"Results from DuckDuckGo": "Rezultāti no DuckDuckGo",
"Return to app": "Atgriezties aplikācijā",
"Return to login screen": "Atgriezties uz pierakstīšanās lapu",
@@ -485,18 +338,16 @@
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s nosūtīja uzaicinājumu %(targetDisplayName)s pievienoties istabai.",
"%(senderName)s set a profile picture.": "%(senderName)s uzstādīja profila attēlu.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s uzstādīja redzamo vārdu uz: %(displayName)s.",
- "tag as %(tagName)s": "birka kā %(tagName)s",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Tevis uzdotā pierakstīšanās atslēga sakrīt ar atslēgu, kuru Tu saņēmi no %(userId)s ierīces %(deviceId)s. Ierīce tika atzīmēta kā verificēta.",
"%(actionVerb)s this person?": "%(actionVerb)s šo personu?",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "Faila '%(fileName)s' izmērs pārsniedz šī mājas servera augšupielādes lieluma ierobežojumu",
"The file '%(fileName)s' failed to upload": "Failu '%(fileName)s' neizdevās augšuplādēt",
- "to tag as %(tagName)s": "uz birku kā %(tagName)s",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s ieslēdza ierīce-ierīce šifrēšanu (algorithm %(algorithm)s).",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s atcēla pieejas ierobežojumu (atbanoja) %(targetName)s.",
"Unknown room %(roomId)s": "Nezināma istaba %(roomId)s",
- "Uploading %(filename)s and %(count)s others.zero": "Tiek augšuplādēts %(filename)s",
- "Uploading %(filename)s and %(count)s others.one": "Tiek augšuplādēts %(filename)s un %(count)s citi",
- "Uploading %(filename)s and %(count)s others.other": "Tiek augšuplādēts %(filename)s un %(count)s citi",
+ "Uploading %(filename)s and %(count)s others|zero": "Tiek augšuplādēts %(filename)s",
+ "Uploading %(filename)s and %(count)s others|one": "Tiek augšuplādēts %(filename)s un %(count)s citi",
+ "Uploading %(filename)s and %(count)s others|other": "Tiek augšuplādēts %(filename)s un %(count)s citi",
"%(user)s is a": "%(user)s ir",
"%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (power %(powerLevelNumber)s)",
"Username invalid: %(errMessage)s": "Neatbilstošs lietotājvārds: %(errMessage)s",
@@ -512,8 +363,8 @@
"%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
"Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Parole ir par īsu (jābūt vismaz %(MIN_PASSWORD_LENGTH)s zīmēm).",
"An error occurred: %(error_string)s": "Notikusi kļūda: %(error_string)s",
- "(~%(count)s results).one": "(~%(count)s rezultāts)",
- "(~%(count)s results).other": "(~%(count)s rezultāti)",
+ "(~%(count)s results)|one": "(~%(count)s rezultāts)",
+ "(~%(count)s results)|other": "(~%(count)s rezultāti)",
"%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)s pievienojās %(repeats)s reizes",
"%(oneUser)sjoined %(repeats)s times": "%(oneUser)s pievienojās %(repeats)s reizes",
"%(severalUsers)sjoined": "%(severalUsers)s pievienojās",
@@ -580,7 +431,6 @@
"Search": "Meklēt",
"Search failed": "Meklēšana neizdevās",
"Searches DuckDuckGo for results": "Meklē DuckDuckGo rezultātus",
- "Searching known users": "Meklē zināmus lietotājus",
"Send a message (unencrypted)": "Nosūtīt ziņu (netiek šifrēta)",
"Send an encrypted message": "Nosūtīt šifrētu ziņu",
"Send anyway": "Nosūtīt jebkurā gadījumā",
@@ -596,7 +446,6 @@
"Server may be unavailable, overloaded, or you hit a bug.": "Serveris var nebūt pieejams, ir pārslogots, vai arī sastapi neparedzētu kļūdu.",
"Server unavailable, overloaded, or something else went wrong.": "Serveris nav pieejams, ir pārslogots, vai arī ir notikusi cita, neparedzēta, kļūda.",
"Session ID": "Sesijas identifikators (ID)",
- "Set": "Iestatīt",
"Settings": "Iestatījumi",
"Show panel": "Rādīt paneli",
"Show Text Formatting Toolbar": "Rādīt teksta formatēšanas rīkjoslu",
@@ -615,18 +464,15 @@
"Start Chat": "Sākt čatu",
"Submit": "Iesniegt",
"Success": "Veiksmīgi",
- "tag direct chat": "atzīmēt tiešo čatu",
"Tagged as: ": "Atzīmēts,kā: ",
"The main address for this room is": "Galvenā šīs istabas adrese ir",
"The phone number entered looks invalid": "Ievadītais telefona numurs izskatās nepareizs",
- "This action cannot be performed by a guest user. Please register to be able to do this.": "Viesi nevar veikt šo darbību. Lūdzu reģistrējies vai pieraksties.",
"This email address is already in use": "Šī epasta adrese jau tiek izmantota",
"This email address was not found": "Šāda epasta adrese nav atrasta",
"The email address linked to your account must be entered.": "Ir jāievada tavam kontam piesaistītā epasta adrese.",
"The remote side failed to pick up": "Neizdevās uzņemt attālināto pusi",
"This Home Server does not support login using email address.": "Šis serveris neatbalsta pierakstīšanos ar epasta adresi.",
"This invitation was sent to an email address which is not associated with this account:": "Šis uzaicinājums tika nosūtīts uz epasta adresi, kura nav piesaistīta šim kontam:",
- "There was a problem logging in.": "Radās problēma ar pierakstīšanos.",
"This room has no local addresses": "Šai istabai nav lokālo adrešu",
"This room is not recognised.": "Šī istaba netika atpazīta.",
"These are experimental features that may break in unexpected ways": "Šīs ir eksperimentālās iespējas, kuras var būt dažādos veidos nestrādājošas",
@@ -637,29 +483,17 @@
"This room": "Šī istaba",
"This room is not accessible by remote Matrix servers": "Šī istaba nav pieejama no attālinātajiem Matrix serveriem",
"This room's internal ID is": "Šīs istabas iekšējais ID ir",
- "times": "reizes",
- "To ban users": "lai banotu lietotājus",
- "to browse the directory": "lai pārlūkotu katalogu",
- "To configure the room": "Lai konfigurētu istabu",
"to demote": "lai samazinātu",
"to favourite": "lai pievienotu favorītiem",
- "To invite users into the room": "Lai uzaicinātu lietotājus uz istabu",
- "To kick users": "Lai \"iespertu\" (kicks) lietotājiem",
"To link to a room it must have an address.": "Lai ieliktu saiti uz istabu, tai ir jābūt piešķirtai adresei.",
- "to make a room or": "lai izveidotu istabu vai",
- "To remove other users' messages": "Lai dzēstu citu lietotāju ziņas",
"To reset your password, enter the email address linked to your account": "Lai atiestatītu savu paroli, ievadi tavam kontam piesaistīto epasta adresi",
"to restore": "lai atjaunotu",
- "To send events of type": "Lai sūtītu sekojošā tipa notikumus",
- "To send messages": "Lai nosūtītu ziņas",
- "to start a chat with someone": "lai uzstāktu čatu ar kādu",
"to tag direct chat": "lai pieliktu birku tiešajam čatam",
"To use it, just wait for autocomplete results to load and tab through them.": "Lai to izmantotu, vienkārši gaidi, kamēr ielādējas automātiski ieteiktie rezultāti, un pārvietojies caur tiem.",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Notika mēģinājums ielādēt šīs istabas specifisku laikpaziņojumu sadaļu, bet Tev nav atļaujas skatīt šo ziņu.",
"Tried to load a specific point in this room's timeline, but was unable to find it.": "Notika mēģinājums ielādēt šīs istabas specifisku laikpaziņojumu sadaļu, bet tā netika atrasta.",
"Unable to add email address": "Nav iespējams pievienot epasta adresi",
"Unable to remove contact information": "Nav iespējams dzēst kontaktinformāciju",
- "Unable to restore previous session": "Nav iespējams atjaunot iepriekšējo sesiju",
"Unable to verify email address.": "Nav iespējams apstiprināt epasta adresi.",
"Unban": "Atbanot",
"Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Nav iespējams pārliecināties, ka šis uzaicinājums tika nosūtīts uz to pašu adresi, kura ir piesaistīta tavam kontam.",
@@ -670,11 +504,9 @@
"unencrypted": "nešifrēts",
"Unencrypted message": "Nešifrēta ziņa",
"unknown caller": "nezināms zvanītājs",
- "Unknown command": "Nezināma komanda",
"unknown device": "nezināma ierīce",
"unknown error code": "nezināms kļūdas kods",
"Unknown (user, device) pair:": "Nezināms (lietotājs, ierīce) pāris:",
- "unknown": "nezināms",
"Unmute": "Ieslēgt skaņu",
"Unnamed Room": "Istaba bez nosaukuma",
"Cancel": "Atcelt",
@@ -731,9 +563,7 @@
"You cannot place VoIP calls in this browser.": "Tu nevari veikt VoIP zvanus šajā pārlūkā.",
"You do not have permission to post to this room": "Tev nav vajadzīgās atļaujas pievienot ziņas šajā istabā",
"You have disabled URL previews by default.": "URL priekšskatījums pēc noklusējuma Tev ir atspējots.",
- "You have entered an invalid contact. Try using their Matrix ID or email address.": "Tu ievadīji nepareizu kontaktu. Mēģini izmantot viņa Matrix ID vai epasta adresi.",
"You may wish to login with a different account, or add this email to this account.": "Tu varētu, iespējams, vēlēties pierakstīties no cita konta vai piesaistīt šo epastu šim kontam.",
- "you must be a": "Tev ir jābūt",
"You must register to use this functionality": "Lai izmantotu šo funkcionalitāti, Tev ir jāreģistrējas",
"You need to be able to invite users to do that.": "Lai to darītu, Tev ir jāspēj uzaicināt lietotājus.",
"You need to be logged in.": "Tev ir jāpierakstās.",
@@ -764,10 +594,8 @@
"Nov": "Nov.",
"Dec": "Dec.",
"Set a display name:": "Iestatīt redzamo vārdu:",
- "Set a Display Name": "Iestatīt redzamo vārdu",
- "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Tavs redzamais vārds ir tas,kurš parādās citiem, kad tu sarunājies vai atrodies istabās. Kas Tu vēlētos būt?",
"This image cannot be displayed.": "Šo attēlu nav iespējams parādīt.",
- "$senderDisplayName changed the room avatar to
": "$senderDisplayName nomainīja istabas attēlu uz
",
+ "%(senderDisplayName)s changed the room avatar to
": "%(senderDisplayName)s nomainīja istabas attēlu uz
",
"Upload an avatar:": "Augšuplādē profila attēlu:",
"This server does not support authentication with a phone number.": "Šis serveris neatbalsta autentifikāciju pēc telefona numura.",
"Missing password.": "Trūkst parole.",
@@ -786,17 +614,8 @@
"Room": "Istaba",
"Connectivity to the server has been lost.": "Savienojums ar serveri tika zaudēts.",
"Sent messages will be stored until your connection has returned.": "Nosūtītās ziņas tiks saglabātas tiklīdz savienojums tiks atjaunots.",
- "Auto-complete": "Automātiskā ieteikšana",
"Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Sūtīt vēlreiz visas vai atcelt visas. Tu vari arī atlasīt atsevišķas ziņas, kuras sūtīt vai atcelt.",
- "or": "vai",
"Active call": "Aktīvs zvans",
- "Monday": "Pirmdiena",
- "Tuesday": "Otrdiena",
- "Wednesday": "Trešdiena",
- "Thursday": "Ceturtdiena",
- "Friday": "Piektdiena",
- "Saturday": "Sestdiena",
- "Sunday": "Svētdiena",
"bold": "trekns",
"italic": "itāļu",
"strike": "svītrots",
@@ -814,7 +633,6 @@
"were kicked": "kur tika \"izsperts\" (kick)",
"was kicked": "tika izsperts/a (kick)",
"Please select the destination room for this message": "Lūdzu izvēlies šīs ziņas mērķa istabu",
- "Welcome page": "\"Laipni lūdzam\" lapa",
"Room directory": "Istabu katalogs",
"Start chat": "Uzsākt čatu",
"New Password": "Jauna parole",
@@ -836,7 +654,6 @@
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "Eksporta fails būs aizsargāts ar paroles frāzi. Tā ir jāievada šeit, lai atšifrētu failu.",
"You must join the room to see its files": "Tev ir jāpievienojas istabai, lai redzētu tās failus",
"Start new chat": "Uzsākt jaunu čatu",
- "Guest users can't invite users. Please register.": "Viesi nevar uzaicināt lietotājus. Lūdzu reģistrējies.",
"Failed to invite": "Neizdevās uzaicināt",
"Failed to invite user": "Neizdevās uzaicināt lietotāju",
"Confirm Removal": "Apstiprini dzēšanu",
@@ -913,5 +730,47 @@
"Skip": "Izlaist",
"Share without verifying": "Kopīgot bez verificēšanas",
"Ignore request": "Ignorēt pieprasījumu",
- "Encryption key request": "Šifrēšanas atslēgas pieprasījums"
+ "Encryption key request": "Šifrēšanas atslēgas pieprasījums",
+ "Add a widget": "Pievienot Widžetu",
+ "Allow": "Atļaut",
+ "and %(count)s others...|other": "un vēl %(count)s citi...",
+ "and %(count)s others...|one": "un vēl viens cits...",
+ "Cannot add any more widgets": "Nav iespējams pievienot vairāk vidžetu",
+ "Changes colour scheme of current room": "Nomaina pašreizējās istabas krāsu paleti",
+ "Delete widget": "Dzēst widžetu",
+ "Define the power level of a user": "Definēt lietotāja pakāpes līmeni",
+ "Do you want to load widget from URL:": "Vai vēlies ielādēt widžetu no URL:",
+ "Edit": "Labot",
+ "Enable automatic language detection for syntax highlighting": "Iespējot automātisko valodas noteikšanu sintakses iezīmējumiem",
+ "Hide Apps": "Slēpt aplikācijas",
+ "Hide join/leave messages (invites/kicks/bans unaffected)": "Slēpt pievienoties/pamest ziņas (tas neietekmē uzaicinājumus, vai kick/bana darbības)",
+ "Hide avatar and display name changes": "Slēpt profila attēlu un rādīt redzamā vārda izmaiņas",
+ "Integrations Error": "Integrācijas kļūda",
+ "Publish this room to the public in %(domain)s's room directory?": "Publicēt šo istabu publiskajā %(domain)s katalogā?",
+ "AM": "AM",
+ "PM": "PZ",
+ "NOTE: Apps are not end-to-end encrypted": "PIEZĪME: Aplikācijās nav ierīce-ierīce šifrēšanas",
+ "Sets the room topic": "Uzstāda istabas tēmas nosaukumu",
+ "Show Apps": "Rādīt aplikācijas",
+ "The maximum permitted number of widgets have already been added to this room.": "Atļautais vidžetu skaits jau ir sasniegts šai istabai.",
+ "To get started, please pick a username!": "Lai sāktu, lūdzu izvēlies lietotājvārdu!",
+ "Unable to create widget.": "Nav iespējams izveidot widžetu.",
+ "Unbans user with given id": "Atceļ pieejas liegumu (atbano) lietotāju pēc norādītā id",
+ "You are not in this room.": "Tu neatrodies šajā istabā.",
+ "You do not have permission to do that in this room.": "Tev nav atļaujas šai darbībai šajā istabā.",
+ "Verifies a user, device, and pubkey tuple": "Verificē lietotāju, ierīci, un publiskās atslēgas",
+ "Autocomplete Delay (ms):": "Automātiskās aizpildīšanas aiztures laiks (ms):",
+ "Loading device info...": "Ielādē ierīces informāciju...",
+ "Example": "Piemērs",
+ "Create": "Izveidot",
+ "Room creation failed": "Neizdevās izveidot istabu",
+ "Featured Rooms:": "Ieteiktās istabas:",
+ "Featured Users:": "Ieteiktie lietotāji:",
+ "Automatically replace plain text Emoji": "Automātiski aizvieto tekstu ar emocijikonu (emoji)",
+ "Failed to upload image": "Neizdevās augšupielādēt attēlu",
+ "Hide avatars in user and room mentions": "Slēpt profila attēlus lietotāja un istabas pieminējumatzīmēs (@mention)",
+ "%(widgetName)s widget added by %(senderName)s": "%(senderName)s pievienoja %(widgetName)s vidžetu",
+ "%(widgetName)s widget removed by %(senderName)s": "%(senderName)s dzēsa vidžetu %(widgetName)s",
+ "Robot check is currently unavailable on desktop - please use a web browser": "Robotu pārbaude šobrīd nav pieejama darbvirsmas versijā. Lūdzu izmanto web pārlūku",
+ "Revoke widget access": "Atsaukt vidžeta piekļuvi"
}
diff --git a/src/i18n/strings/ml.json b/src/i18n/strings/ml.json
index 97c9edd749..586f145642 100644
--- a/src/i18n/strings/ml.json
+++ b/src/i18n/strings/ml.json
@@ -3,17 +3,14 @@
"Close": "അടയ്ക്കുക",
"Create new room": "പുതിയ റൂം സൃഷ്ടിക്കുക",
"Custom Server Options": "കസ്റ്റം സെര്വര് ഓപ്ഷനുകള്",
- "Direct Chat": "നേരിട്ടുള്ള ചാറ്റ്",
"Dismiss": "ഒഴിവാക്കുക",
"Drop here %(toAction)s": "ഇവിടെ നിക്ഷേപിക്കുക %(toAction)s",
"Error": "എറര്",
"Failed to forget room %(errCode)s": "%(errCode)s റൂം ഫോര്ഗെറ്റ് ചെയ്യുവാന് സാധിച്ചില്ല",
- "Failed to join the room": "റൂമില് അംഗമാകുവാന് സാധിച്ചില്ല",
"Favourite": "പ്രിയപ്പെട്ടവ",
"Mute": "നിശ്ശബ്ദം",
"Notifications": "നോട്ടിഫിക്കേഷനുകള്",
"Operation failed": "ശ്രമം പരാജയപ്പെട്ടു",
- "Please Register": "ദയവായി റെജിസ്റ്റർ ചെയ്യുക",
"powered by Matrix": "മാട്രിക്സില് പ്രവര്ത്തിക്കുന്നു",
"Remove": "നീക്കം ചെയ്യുക",
"Room directory": "റൂം ഡയറക്ടറി",
@@ -21,20 +18,9 @@
"Settings": "സജ്ജീകരണങ്ങള്",
"Start chat": "ചാറ്റ് തുടങ്ങുക",
"unknown error code": "അപരിചിത എറര് കോഡ്",
- "Sunday": "ഞായര്",
- "Monday": "തിങ്കള്",
- "Tuesday": "ചൊവ്വ",
- "Wednesday": "ബുധന്",
- "Thursday": "വ്യാഴം",
- "Friday": "വെള്ളി",
- "Saturday": "ശനി",
"OK": "ശരി",
- "Welcome page": "സ്വാഗതം",
"Failed to change password. Is your password correct?": "രഹസ്യവാക്ക് മാറ്റാന് സാധിച്ചില്ല. രഹസ്യവാക്ക് ശരിയാണോ ?",
"Continue": "മുന്നോട്ട്",
"Microphone": "മൈക്രോഫോൺ",
- "Camera": "ക്യാമറ",
- "af": "ആഫ്രിക്കാൻസ്",
- "ar-ae": "അറബി (യു.എ.ഇ.)",
- "ar-bh": "അറബി (ബഹറിൻ)"
+ "Camera": "ക്യാമറ"
}
diff --git a/src/i18n/strings/nb_NO.json b/src/i18n/strings/nb_NO.json
index 9e26dfeeb6..4d52e606eb 100644
--- a/src/i18n/strings/nb_NO.json
+++ b/src/i18n/strings/nb_NO.json
@@ -1 +1,3 @@
-{}
\ No newline at end of file
+{
+ "Room directory": "Romkatalog"
+}
diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json
index 234fc8c03a..357ab92026 100644
--- a/src/i18n/strings/nl.json
+++ b/src/i18n/strings/nl.json
@@ -1,127 +1,5 @@
{
- "af": "Afrikaans",
- "ar-ae": "Arabisch (U.A.E.)",
- "Direct Chat": "Privégesprek",
- "ar-bh": "Arabisch (Bahrain)",
- "ar-dz": "Arabisch (Algerije)",
- "ar-eg": "Arabisch (Egypte)",
- "ar-iq": "Arabisch (Irak)",
- "ar-jo": "Arabisch (Jordanië)",
- "ar-kw": "Arabisch (Koeweit)",
- "ar-lb": "Arabisch (Libanon)",
- "ar-ly": "Arabisch (Libië)",
- "ar-ma": "Arabisch (Marokko)",
- "ar-om": "Arabisch (Oman)",
- "ar-qa": "Arabisch (Katar)",
- "ar-sa": "Arabisch (Saoedi-Arabië)",
- "ar-sy": "Arabisch (Syrië)",
- "ar-tn": "Arabisch (Tunesië)",
- "ar-ye": "Arabisch (Jemen)",
- "be": "Wit-Russisch",
- "bg": "Bulgaars",
- "ca": "Catalaans",
- "cs": "Tsjechisch",
- "da": "Deens",
- "de-at": "Duits (Oostenrijk)",
- "de-ch": "Duits (Zwitserland)",
- "de": "Duits",
- "de-li": "Duits (Liechtenstein)",
- "de-lu": "Duits (Luxemburg)",
- "el": "Grieks",
- "en-au": "Engels (Australië)",
- "en-bz": "Engels (Belize)",
- "en-ca": "Engels (Canada)",
- "en": "Engels",
- "en-gb": "Engels (Verenigd Koningkrijk)",
- "en-ie": "Engels (Ierland)",
- "en-jm": "Engels (Jamaica)",
- "en-nz": "Engels (Nieuw Zeeland)",
- "en-tt": "Engels (Trinidad)",
- "en-us": "Engels (Verenigde Staten)",
- "en-za": "Engels (Zuid-Afrika)",
- "es-ar": "Spaans (Argentinië)",
- "es-bo": "Spaans (Bolivië)",
- "es-cl": "Spaans (Chili)",
- "es-co": "Spaans (Colombia)",
- "es-cr": "Spaans (Costa Rica)",
- "es-do": "Spaans (Dominicaanse Republiek)",
- "es-ec": "Spaans (Ecuador)",
- "es-gt": "Spaans (Guatemala)",
- "es-hn": "Spaans (Honduras)",
- "es-mx": "Spaans (Mexico)",
- "es-ni": "Spaans (Nicaragua)",
- "es-pa": "Spaans (Panama)",
- "es-pe": "Spaans (Peru)",
- "es-pr": "Spaans (Puerto Rico)",
- "es-py": "Spaans (Paraguay)",
- "es": "Spaans (Spanje)",
- "es-sv": "Spaans (El Salvador)",
- "es-uy": "Spaans (Uruguay)",
- "es-ve": "Spaans (Venezuela)",
- "et": "Estlands",
- "eu": "Baskisch (Bask)",
- "fa": "Perzisch (Farsi)",
- "fi": "Fins",
- "fo": "Faeroesisch",
- "fr-be": "Frans (België)",
- "fr-ca": "Frans (Canada)",
- "fr-ch": "Frans (Zwitserland)",
- "fr": "Frans",
- "fr-lu": "Frans (Luxemburg)",
- "ga": "Iers",
- "gd": "Keltisch (Schotland)",
- "he": "Hebreeuws",
- "hi": "Hindi",
- "hr": "Kroatisch",
- "hu": "Hongaars",
- "id": "Indonesisch",
- "is": "IJslands",
- "it-ch": "Italiaans (Zwitserland)",
- "it": "Italiaans",
- "ja": "Japans",
- "ji": "Jiddisch",
- "ko": "Koreaans",
- "lt": "Litouws",
- "lv": "Lets",
- "mk": "Macedonië (FYROM)",
- "ms": "Maleisisch",
- "mt": "Maltees",
- "nl-be": "Nederlands (België)",
- "nl": "Nederlands",
- "no": "Noors",
- "pl": "Pools",
- "pt-br": "Braziliaans Portugees",
- "pt": "Portugees",
- "rm": "Rhetoromaans",
- "ro-mo": "Roemeens (Moldavië)",
- "ro": "Roemeens",
- "ru-mo": "Russisch (Moldavië)",
- "ru": "Russisch",
- "sb": "Sorbisch",
- "sk": "Slovaaks",
- "sl": "Sloveens",
- "sq": "Albanees",
- "sr": "Servisch",
- "sv-fi": "Zweeds (Finland)",
- "sv": "Zweeds",
- "sx": "Sutu",
- "sz": "Sami (Lapland)",
- "th": "Thais",
- "tn": "Tswana",
- "tr": "Turks",
- "ts": "Tsonga",
- "uk": "Oekraïens",
- "ur": "Urdu",
- "ve": "Venda",
- "vi": "Vietnamees",
- "xh": "Xhosa",
- "zh-cn": "Chinees (PRC)",
- "zh-hk": "Chinees (Hong Kong SAR)",
- "zh-sg": "Chinees (Singapore)",
- "zh-tw": "Chinees (Taiwan)",
- "zu": "Zulu",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Voer alsjeblieft de verificatiecode in die is verstuurd naar +%(msisdn)s",
- "accept": "accepteer",
"%(targetName)s accepted an invitation.": "%(targetName)s heeft een uitnodiging geaccepteerd.",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s heeft de uitnodiging voor %(displayName)s geaccepteerd.",
"Account": "Account",
@@ -133,81 +11,67 @@
"Algorithm": "Algoritme",
"Always show message timestamps": "Laat altijd tijdstempels van berichten zien",
"Authentication": "Authenticatie",
- "all room members": "alle kamer leden",
- "all room members, from the point they are invited": "alle kamer leden, vanaf het moment dat ze uitgenodigt zijn",
- "all room members, from the point they joined": "alle kamer leden, vanaf het moment dat ze toegetreden zijn",
- "an address": "een adres",
- "and": "en",
"%(items)s and %(remaining)s others": "%(items)s en %(remaining)s andere",
"%(items)s and one other": "%(items)s en één andere",
"%(items)s and %(lastItem)s": "%(items)s en %(lastItem)s",
- "and %(count)s others...": {
- "other": "en %(count)s andere...",
- "one": "en één andere..."
- },
+ "and %(count)s others...|other": "en %(count)s andere...",
+ "and %(count)s others...|one": "en één andere...",
"%(names)s and %(lastPerson)s are typing": "%(names)s en %(lastPerson)s zijn aan het typen",
"%(names)s and one other are typing": "%(names)s en één andere zijn aan het typen",
- "%(names)s and %(count)s others are typing": "%(names)s en %(count)s andere zijn aan het typen",
- "An email has been sent to": "Er is een email verzonden naar",
+ "An email has been sent to": "Er is een e-mail verzonden naar",
"A new password must be entered.": "Er moet een nieuw wachtwoord worden ingevoerd.",
- "%(senderName)s answered the call.": "%(senderName)s heeft deelgenomen aan het audio gesprek.",
- "anyone": "iedereen",
+ "%(senderName)s answered the call.": "%(senderName)s heeft deelgenomen aan het audiogesprek.",
"An error has occurred.": "Er is een fout opgetreden.",
- "Anyone who knows the room's link, apart from guests": "Iedereen die de kamer link weet, behalve gasten",
- "Anyone who knows the room's link, including guests": "Iedereen die de kamer link weet, inclusief gasten",
+ "Anyone who knows the room's link, apart from guests": "Iedereen die de kamerlink weet, behalve gasten",
+ "Anyone who knows the room's link, including guests": "Iedereen die de kamerlink weet, inclusief gasten",
"Are you sure?": "Weet je het zeker?",
"Are you sure you want to reject the invitation?": "Weet je zeker dat je de uitnodiging wilt weigeren?",
- "Are you sure you want upload the following files?": "Weet je zeker dat je de volgende bestanden wilt uploaden?",
"Attachment": "Bijlage",
"Autoplay GIFs and videos": "Start GIFs en videos automatisch",
"%(senderName)s banned %(targetName)s.": "%(senderName)s heeft %(targetName)s verbannen.",
"Ban": "Verban",
"Banned users": "Verbannen gebruikers",
- "Bans user with given id": "Verbant de gebruiker met de gegeven id",
+ "Bans user with given id": "Verbant de gebruiker met het gegeven ID",
"Blacklisted": "Buitengesloten",
"Bug Report": "Bug report",
"Bulk Options": "Bulk opties",
"Call Timeout": "Gesprek time-out",
- "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "Kan niet met de homeserver verbinden - controleer alsjeblieft je verbinding en wees zeker dat je homeserver's SSL certificaat vertrouwd wordt.",
- "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Kan niet met de homeserver verbinden via HTTP wanneer er een HTTPS URL in je browser balk staat. Gebruik HTTPS of activeer onveilige scripts.",
- "Can't load user settings": "Kan de gebruiker instellingen niet laden",
+ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Kan niet met de thuisserver verbinden via HTTP wanneer er een HTTPS-URL in je browser balk staat. Gebruik HTTPS of activeer onveilige scripts.",
+ "Can't load user settings": "Kan de gebruikersinstellingen niet laden",
"Change Password": "Wachtwoord veranderen",
- "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s heeft zijn of haar weergave naam veranderd van %(oldDisplayName)s naar %(displayName)s.",
- "%(senderName)s changed their profile picture.": "%(senderName)s heeft zijn of haar profiel foto veranderd.",
- "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s heeft de rank van %(powerLevelDiffText)s gewijzigd.",
- "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s heeft de kamer naam van %(roomName)s gewijzigd.",
+ "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s heeft zijn of haar weergavenaam veranderd van %(oldDisplayName)s naar %(displayName)s.",
+ "%(senderName)s changed their profile picture.": "%(senderName)s heeft zijn of haar profielfoto veranderd.",
+ "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s heeft het machtsniveau van %(powerLevelDiffText)s gewijzigd.",
+ "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s heeft de kamernaam van %(roomName)s gewijzigd.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s heeft het onderwerp gewijzigd naar \"%(topic)s\".",
- "Changes to who can read history will only apply to future messages in this room": "Veranderingen aan wie de historie kan lezen worden alleen maar toegepast op toekomstige berichten in deze kamer",
+ "Changes to who can read history will only apply to future messages in this room": "Veranderingen aan wie de geschiedenis kan lezen worden alleen maar toegepast op toekomstige berichten in deze kamer",
"Changes your display nickname": "Verandert jouw weergavenaam",
- "changing room on a RoomView is not supported": "veranderen van een kamer in een RoomView wordt niet ondersteund",
"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.": "Het veranderen van het wachtwoord zal op het moment alle eind-tot-eind encryptie sleutels resetten, wat alle versleutelde chat geschiedenis onleesbaar zou maken, behalve als je eerst je kamer sleutels exporteert en achteraf opnieuw importeert. Dit zal worden verbeterd in de toekomst.",
"Clear Cache and Reload": "Legen cache en herlaad",
"Clear Cache": "Legen cache",
- "Click here": "Klik hier",
"Click here to fix": "Klik hier om op te lossen",
"Click to mute audio": "Klik om audio te dempen",
"Click to mute video": "Klik om de video te dempen",
"click to reveal": "klik om te laten zien",
"Click to unmute video": "Klik om de demping van de video op te heffen",
"Click to unmute audio": "Klik om het dempen van het geluid op te heffen",
- "Command error": "Opdracht fout",
+ "Command error": "Opdrachtfout",
"Commands": "Opdrachten",
- "Conference call failed.": "Conferentie gesprek mislukt.",
- "Conference calling is in development and may not be reliable.": "Conferentie gesprekken zijn nog in ontwikkelingen en kunnen onbetrouwbaar zijn.",
- "Conference calls are not supported in encrypted rooms": "Conferentie gesprekken worden niet ondersteunt in versleutelde kamers",
- "Conference calls are not supported in this client": "Conferentie gesprekken worden niet ondersteunt in deze client",
+ "Conference call failed.": "Conferentiegesprek mislukt.",
+ "Conference calling is in development and may not be reliable.": "Conferentiegesprekken zijn nog in ontwikkelingen en kunnen onbetrouwbaar zijn.",
+ "Conference calls are not supported in encrypted rooms": "Conferentiegesprekken worden niet ondersteunt in versleutelde kamers",
+ "Conference calls are not supported in this client": "Conferentiegesprekken worden niet ondersteunt in deze client",
"Confirm password": "Bevestigen wachtwoord",
"Confirm your new password": "Bevestig je nieuwe wachtwoord",
"Continue": "Doorgaan",
- "Could not connect to the integration server": "Mislukt om te verbinden met de integratie server",
+ "Could not connect to the integration server": "Mislukt om te verbinden met de integratieserver",
"Cancel": "Annuleren",
"a room": "een ruimte",
"Accept": "Accepteren",
"Active call (%(roomName)s)": "Actief gesprek (%(roomName)s)",
"Add": "Toevoegen",
"Add a topic": "Een onderwerp toevoegen",
- "Admin tools": "Beheerhulpmiddelen",
- "And %(count)s more...": "Nog %(count)s andere...",
+ "Admin Tools": "Beheerhulpmiddelen",
"VoIP": "VoiP",
"Missing Media Permissions, click here to request.": "Ontbrekende mediatoestemmingen, klik hier om aan te vragen.",
"No Microphones detected": "Geen microfoons gevonden",
@@ -224,40 +88,30 @@
"Are you sure you want to upload the following files?": "Weet u zeker dat u de volgende bestanden wil uploaden?",
"Click here to join the discussion!": "Klik hier om mee te doen aan de discussie!",
"Close": "Sluiten",
- "%(count)s new messages.one": "%(count)s nieuw bericht",
+ "%(count)s new messages|one": "%(count)s nieuw bericht",
"Create new room": "Een nieuwe kamer maken",
"Custom Server Options": "Aangepaste serverinstellingen",
"Dismiss": "Afwijzen",
"Drop here %(toAction)s": "%(toAction)s hier naartoe verplaatsen",
"Error": "Fout",
"Failed to forget room %(errCode)s": "Ruimte vergeten mislukt %(errCode)s",
- "Failed to join the room": "Kamer binnengaan mislukt",
"Favourite": "Favoriet",
"Mute": "Dempen",
"Notifications": "Meldingen",
"Operation failed": "Actie mislukt",
- "Please Register": "Registreer Alstublieft",
"powered by Matrix": "mogelijk gemaakt door Matrix",
"Remove": "Verwijderen",
"Room directory": "Kamerlijst",
"Settings": "Instellingen",
"Start chat": "Gesprek starten",
"unknown error code": "onbekende foutcode",
- "Sunday": "Zondag",
- "Monday": "Maandag",
- "Tuesday": "Dinsdag",
- "Wednesday": "Woensdag",
- "Thursday": "Donderdag",
- "Friday": "Vrijdag",
- "Saturday": "Zaterdag",
- "Welcome page": "Welkomstpagina",
"Search": "Zoeken",
"OK": "OK",
"Failed to change password. Is your password correct?": "Wachtwoord wijzigen mislukt. Is uw wachtwoord juist?",
"disabled": "uitgeschakeld",
"Moderator": "Moderator",
"Must be viewing a room": "Moet een ruimte weergeven",
- "my Matrix ID": "mijn Matrix-ID",
+ "%(serverName)s Matrix ID": "%(serverName)s Matrix-ID",
"Name": "Naam",
"New password": "Nieuw wachtwoord",
"none": "geen",
@@ -279,7 +133,6 @@
"Permissions": "Toestemmingen",
"Phone": "Telefoonnummer",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s heeft een %(callType)s-gesprek gestart.",
- "Press": "Druk",
"Privacy warning": "Privacywaarschuwing",
"Private Chat": "Privégesprek",
"Privileged Users": "Gebruikers met rechten",
@@ -290,7 +143,6 @@
"Revoke Moderator": "Beheerder terugtrekken",
"Refer a friend to Riot:": "Laat een vriend weten over Riot:",
"Register": "Registreren",
- "rejected": "verworpen",
"%(targetName)s rejected the invitation.": "%(targetName)s heeft de uitnodiging geweigerd.",
"Reject invitation": "Uitnodiging weigeren",
"Rejoin": "Opnieuw toetreden",
@@ -302,23 +154,21 @@
"Start Chat": "Gesprek starten",
"Submit": "Bevestigen",
"Success": "Gereed",
- "tag as %(tagName)s": "Met %(tagName)s labelen",
- "tag direct chat": "Privéchat labelen",
"Tagged as: ": "Gelabeld als: ",
- "Sun": "Zon",
- "Mon": "Maa",
- "Tue": "Din",
- "Wed": "Woe",
- "Thu": "Don",
- "Fri": "Vrij",
- "Sat": "Zat",
+ "Sun": "Zo",
+ "Mon": "Ma",
+ "Tue": "Di",
+ "Wed": "Wo",
+ "Thu": "Do",
+ "Fri": "Vr",
+ "Sat": "Za",
"Jan": "Jan",
"Feb": "Feb",
- "Mar": "Maa",
+ "Mar": "Mrt",
"Apr": "Apr",
"May": "Mei",
- "Jun": "Juni",
- "Jul": "Juli",
+ "Jun": "Jun",
+ "Jul": "Jul",
"Aug": "Aug",
"Sep": "Sep",
"Oct": "Okt",
@@ -328,25 +178,23 @@
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(day)s %(monthName)s %(fullYear)s %(time)s",
"%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
"Set a display name:": "Weergavenaam instellen:",
- "Set a Display Name": "Weergavenaam instellen",
"Upload an avatar:": "Een avatar uploaden:",
"Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Geen verbinding met de thuisserver - controleer je verbinding. Controleer het SSL-certificaat van de thuisserver en browser-extensies die verzoeken kunnen blokkeren.",
- "%(count)s new messages.other": "%(count)s nieuwe berichten",
+ "%(count)s new messages|other": "%(count)s nieuwe berichten",
"Create an account": "Open een account",
"Cryptography": "Cryptografie",
"Current password": "Huidig wachtwoord",
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s heeft de naam van de kamer verwijderd.",
- "Create a new chat or reuse an existing one": "Maak een nieuwe chat aan of gebruik een reeds bestaande",
- "Create Room": "Maak een kamer",
- "Curve25519 identity key": "Curve25519 identiteitssleutel",
+ "Create a new chat or reuse an existing one": "Maak een nieuwe chat aan of ga verder met een bestaande",
+ "Create Room": "Maak een kamer aan",
+ "Curve25519 identity key": "Curve25519-identiteitssleutel",
"/ddg is not a command": "/ddg is geen commando",
"Deactivate Account": "Account Deactiveren",
"Deactivate my account": "Mijn account deactiveren",
"Decline": "Weigeren",
"Decrypt %(text)s": "Ontsleutel %(text)s",
- "Decryption error": "Fout bij het ontsleutelen",
+ "Decryption error": "Ontsleutelfout",
"Delete": "Verwijderen",
- "demote": "degraderen",
"Device already verified!": "Apparaat reeds geverifieerd!",
"Device ID": "Apparaat ID",
"Device ID:": "Apparaat ID:",
@@ -356,56 +204,54 @@
"Devices will not yet be able to decrypt history from before they joined the room": "Apparaten kunnen nog niet de geschiedenis van voordat ze de ruimte betraden ontsleutelen",
"Direct chats": "Privégesprekken",
"Disable Notifications": "Notificaties uitschakelen",
- "Disable markdown formatting": "Opmaak formatering uitschakelen",
"Disinvite": "Uitnodiging terugtrekken",
"Display name": "Weergavenaam",
- "Don't send typing notifications": "Geen typ notificatie sturen",
+ "Don't send typing notifications": "Geen typnotificatie sturen",
"Download %(text)s": "%(text)s Downloaden",
"Drop File Here": "Plaats Bestand Hier",
- "Ed25519 fingerprint": "Ed25519 vingerafdruk",
+ "Ed25519 fingerprint": "Ed25519-vingerafdruk",
"Email": "E-mail",
"Email address": "E-mailadres",
"Email address (optional)": "E-mailadres (optioneel)",
"Claimed Ed25519 fingerprint key": "Vereiste Ed25519 vingerafdruk sleutel",
"Custom": "Aangepast",
"Custom level": "Aangepast niveau",
- "Deops user with given id": "Ontmachtigd gebruiker met het gegeven id",
+ "Deops user with given id": "Ontmachtigd gebruiker met het gegeven ID",
"Default": "Standaard",
- "Disable inline URL previews by default": "URL voorvertoning standaard uitschakelen",
- "Displays action": "Weergeeft actie",
+ "Disable inline URL previews by default": "URL-voorvertoningen standaard uitschakelen",
+ "Displays action": "Geeft actie weer",
"Drop here to tag %(section)s": "Hiernaartoe verplaatsen om %(section)s te etiketteren",
- "Email, name or matrix ID": "E-mail, naam of matrix ID",
- "Emoji": "Emoticon",
+ "Email, name or matrix ID": "E-mail, naam of matrix-ID",
+ "Emoji": "Emoji",
"Enable encryption": "Versleuteling inschakelen",
"Enable Notifications": "Notificaties inschakelen",
"enabled": "ingeschakeld",
- "Encrypted by a verified device": "Versleuteld bij een geverifieerd apparaat",
- "Encrypted by an unverified device": "Versleuteld bij een niet geverifieerd apparaat",
+ "Encrypted by a verified device": "Versleuteld door een geverifieerd apparaat",
+ "Encrypted by an unverified device": "Versleuteld door een niet-geverifieerd apparaat",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "Versleutelde berichten zullen nog niet zichtbaar zijn op applicaties die geen versleuteling ondersteunen",
"Encrypted room": "Versleutelde ruimte",
"Encryption is enabled in this room": "Versleuteling is ingeschakeld in deze ruimte",
"Encryption is not enabled in this room": "Versleuteling is niet ingeschakeld in deze ruimte",
"%(senderName)s ended the call.": "%(senderName)s heeft opgehangen.",
- "End-to-end encryption information": "Eind-tot-eind versleuteling informatie",
- "End-to-end encryption is in beta and may not be reliable": "Eind-tot-eind versleuteling is nog in beta en kan onbetrouwbaar zijn",
+ "End-to-end encryption information": "end-to-endbeveiligingsinformatie",
+ "End-to-end encryption is in beta and may not be reliable": "End-to-endbeveiliging is nog in bèta en kan onbetrouwbaar zijn",
"Enter Code": "Voer code in",
"Enter passphrase": "Voer wachtzin in",
"Error decrypting attachment": "Fout tijdens het ontsleutelen van de bijlage",
"Error: Problem communicating with the given homeserver.": "Fout: Er doet zich een probleem voor met het communiceren met de gegeven thuisserver.",
- "Event information": "Gebeurtenis informatie",
+ "Event information": "Gebeurtenis-informatie",
"Existing Call": "Bestaande oproep",
"Export": "Exporteren",
- "Export E2E room keys": "Exporteer E2E ruimte sleutels",
+ "Export E2E room keys": "Exporteer E2E-ruimte-sleutels",
"Failed to ban user": "Niet gelukt om de gebruiker te verbannen",
"Failed to change power level": "Niet gelukt om het machtsniveau te wijzigen",
"Failed to delete device": "Niet gelukt om het apparaat te verwijderen",
- "Failed to fetch avatar URL": "Niet gelukt om de avatar URL op te halen",
+ "Failed to fetch avatar URL": "Niet gelukt om de avatar-URL op te halen",
"Failed to join room": "Niet gelukt om tot de ruimte toe te treden",
"Failed to leave room": "Niet gelukt om de ruimte te verlaten",
- "Failed to load timeline position": "Niet gelukt om de tijdlijn positie te laden",
+ "Failed to load timeline position": "Niet gelukt om de tijdlijnpositie te laden",
"Failed to lookup current room": "Niet gelukt om de huidige ruimte op te zoeken",
"Failed to mute user": "Niet gelukt om de gebruiker te dempen",
- "Failed to register as guest:": "Niet gelukt om als gast te registreren:",
"Failed to reject invite": "Niet gelukt om de uitnodiging te weigeren",
"Failed to reject invitation": "Niet gelukt om de uitnodiging te weigeren",
"Failed to save settings": "Niet gelukt om de instellingen op te slaan",
@@ -414,70 +260,60 @@
"Failed to set avatar.": "Niet gelukt om de avatar in te stellen.",
"Failed to set display name": "Niet gelukt om de weergavenaam in te stellen",
"Failed to set up conference call": "Niet gelukt om een vergadergesprek te maken",
- "Failed to toggle moderator status": "Niet gelukt om de moderator status te veranderen",
+ "Failed to toggle moderator status": "Niet gelukt om de moderatorstatus te veranderen",
"Failed to unban": "Niet gelukt om te ontbannen",
"Failed to upload file": "Niet gelukt om het bestand te uploaden",
"Failed to upload profile picture!": "Niet gelukt om een profiel foto te uploaden!",
"Failed to verify email address: make sure you clicked the link in the email": "Niet gelukt om het e-mailadres te verifiëren: wees er zeker van dat je de link in de e-mail hebt aangeklikt",
"Failure to create room": "Het aanmaken van een ruimte is mislukt",
- "favourite": "favoriet",
"Favourites": "Favorieten",
"Fill screen": "Scherm vullen",
- "Filter room members": "Ruimte leden filteren",
+ "Filter room members": "Ruimteleden filteren",
"Forget room": "Ruimte vergeten",
"Forgot your password?": "Wachtwoord vergeten?",
"For security, this session has been signed out. Please sign in again.": "Voor veiligheidsredenen is deze sessie uitgelogd. Log alsjeblieft opnieuw in.",
- "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.": "In verband met veiligheidsredenen zullen alle eind-tot-eind versleutelingssleutels van deze browser verwijderd worden. Als je je gespreksgeschiedenis van toekomstige Riot sessies wilt kunnen ontsleutelen, exporteer en bewaar dan de ruimte sleutels.",
+ "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.": "In verband met veiligheidsredenen zullen alle end-to-endbeveiligingsleutels van deze browser verwijderd worden. Als je je gespreksgeschiedenis van toekomstige Riot sessies wilt kunnen ontsleutelen, exporteer en bewaar dan de ruimte sleutels.",
"Found a bug?": "Een fout gevonden?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s van %(fromPowerLevel)s naar %(toPowerLevel)s",
- "Guest access is disabled on this Home Server.": "Gast toegang is uitgeschakeld op deze thuisserver.",
- "Guests can't set avatars. Please register.": "Gasten kunnen geen avatars instellen. Registreer je alsjeblieft.",
- "Guest users can't create new rooms. Please register to create room and start a chat.": "Gast gebruikers kunnen geen nieuwe ruimtes aanmaken. Registreer je om een nieuwe ruimte aan te maken en een gesprek te starten.",
- "Guest users can't upload files. Please register to upload.": "Gast gebruikers kunnen geen bestanden uploaden. Registreer je om te uploaden.",
- "Guests can't use labs features. Please register.": "Gasten kunnen geen labs mogelijkheden gebruiken. Registreer je alsjeblieft.",
+ "Guest access is disabled on this Home Server.": "Gasttoegang is uitgeschakeld op deze thuisserver.",
"Guests cannot join this room even if explicitly invited.": "Gasten kunnen niet tot deze ruimte toetreden, zelfs als ze expliciet uitgenodigd zijn.",
- "had": "had",
"Hangup": "Ophangen",
"Hide read receipts": "Leesbewijzen verbergen",
- "Hide Text Formatting Toolbar": "Tekst formaterings-gereedschapsbalk verbergen",
+ "Hide Text Formatting Toolbar": "Tekstopmaakgereedschapsbalk verbergen",
"Historical": "Historische",
"Home": "Home",
"Homeserver is": "Thuisserver is",
"Identity Server is": "Identiteitsserver is",
"I have verified my email address": "Ik heb mijn e-mailadres geverifieerd",
"Import": "Importeren",
- "Import E2E room keys": "E2E ruimte sleutels importeren",
+ "Import E2E room keys": "E2E-ruimte-sleutels importeren",
"Incoming call from %(name)s": "Inkomende oproep van %(name)s",
"Incoming video call from %(name)s": "Inkomende video-oproep van %(name)s",
"Incoming voice call from %(name)s": "Inkomende spraakoproep van %(name)s",
"Incorrect username and/or password.": "Incorrecte gebruikersnaam en/of wachtwoord.",
- "Incorrect verification code": "Incorrecte verificatie code",
- "Interface Language": "Interface Taal",
- "Invalid alias format": "Ongeldig naam formaat",
- "Invalid address format": "Ongeldig adres formaat",
+ "Incorrect verification code": "Incorrecte verificatiecode",
+ "Interface Language": "Interfacetaal",
+ "Invalid alias format": "Ongeldig naamformaat",
+ "Invalid address format": "Ongeldig adresformaat",
"Invalid Email Address": "Ongeldig e-mailadres",
"Invalid file%(extra)s": "Ongeldig bestand%(extra)s",
"%(senderName)s invited %(targetName)s.": "%(senderName)s heeft %(targetName)s uitgenodigd.",
"Invite new room members": "Nieuwe ruimte leden uitnodigen",
"Invited": "Uitgenodigd",
"Invites": "Uitnodigingen",
- "Invites user with given id to current room": "Nodigt de gebruiker met het gegeven id uit in de huidige ruimte",
+ "Invites user with given id to current room": "Nodigt de gebruiker met het gegeven ID uit in de huidige ruimte",
"'%(alias)s' is not a valid format for an address": "'%(alias)s' is niet een geldig formaat voor een adres",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' is niet een geldig formaat voor een naam",
"%(displayName)s is typing": "%(displayName)s is aan het typen",
"Sign in with": "Inloggen met",
"Join as voice or video.": "Toetreden als spraak of video.",
"Join Room": "Ruimte toetreden",
- "joined and left": "Toegetreden en verlaten",
- "joined": "Toegetreden",
"%(targetName)s joined the room.": "%(targetName)s in de ruimte toegetreden.",
"Joins room with given alias": "Treed de ruimte toe met een gegeven naam",
"Jump to first unread message.": "Spring naar het eerste ongelezen bericht.",
"Labs": "Labs",
"Last seen": "Laatst gezien",
"Leave room": "Ruimte verlaten",
- "left and rejoined": "verlaten en opnieuw toegetreden",
- "left": "verlaten",
"%(targetName)s left the room.": "%(targetName)s heeft de ruimte verlaten.",
"Level:": "Niveau:",
"Local addresses for this room:": "Lokale adressen voor deze ruimte:",
@@ -485,47 +321,48 @@
"Login as guest": "Als gast inloggen",
"Logout": "Uitloggen",
"Low priority": "Lage prioriteit",
- "%(senderName)s made future room history visible to": "%(senderName)s heeft de toekomstige ruimte geschiedenis zichtbaar gemaakt voor",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s heeft de toekomstige ruimtegeschiedenis zichtbaar gemaakt voor alle kamerleden, vanaf het moment dat ze uitgenodigt zijn.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s heeft de toekomstige ruimte geschiedenis zichtbaar gemaakt voor alle kamerleden, vanaf het moment dat ze toegetreden zijn.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s heeft de toekomstige ruimte geschiedenis zichtbaar gemaakt voor alle kamerleden.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s heeft de toekomstige ruimte geschiedenis zichtbaar gemaakt voor iedereen.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s heeft de toekomstige ruimte geschiedenis zichtbaar gemaakt voor onbekend (%(visibility)s).",
"Manage Integrations": "Integraties beheren",
- "Markdown is disabled": "Opmaak is uitgeschakeld",
- "Markdown is enabled": "Opmaak ingeschakeld",
- "matrix-react-sdk version:": "matrix-react-sdk versie:",
+ "Markdown is disabled": "Markdown is uitgeschakeld",
+ "Markdown is enabled": "Markdown ingeschakeld",
+ "matrix-react-sdk version:": "matrix-react-sdk-versie:",
"Members only": "Alleen leden",
"Message not sent due to unknown devices being present": "Bericht niet verzonden doordat er een onbekende apparaten aanwezig zijn",
"Missing room_id in request": "Het room_id mist in het verzoek",
"Missing user_id in request": "De user_id mist in het verzoek",
- "Mobile phone number": "Mobiel telefoonnummer",
- "Mobile phone number (optional)": "Mobiel telefoonnummer (optioneel)",
+ "Mobile phone number": "Mobiele-telefoonnummer",
+ "Mobile phone number (optional)": "Mobiele-telefoonnummer (optioneel)",
"Never send encrypted messages to unverified devices from this device": "Nooit versleutelde berichten vanaf dit apparaat naar niet geverifieerde apparaten versturen",
- "Never send encrypted messages to unverified devices in this room": "Nooit versleutelde berichten naar niet geverifieerde apparaten sturen in deze ruimte",
"Never send encrypted messages to unverified devices in this room from this device": "Nooit vanaf dit apparaat versleutelde berichten naar niet geverifieerde apparaten in deze ruimte sturen",
"New address (e.g. #foo:%(localDomain)s)": "Nieuw adres (bijv. #foo:%(localDomain)s)",
- "New Composer & Autocomplete": "Nieuwe Componist & Automatisch Aanvullen",
"New passwords don't match": "Nieuwe wachtwoorden komen niet overeen",
"New passwords must match each other.": "Nieuwe wachtwoorden moeten overeenkomen.",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "Zodra versleuteling in een kamer is ingeschakeld kan het niet meer worden uitgeschakeld (voor nu)",
- "Once you've followed the link it contains, click below": "Zodra je de link dat het bevat hebt gevolgd, klik hieronder",
+ "Once you've followed the link it contains, click below": "Zodra je de link dat het bevat hebt gevolgd, klik hieronder",
"Only people who have been invited": "Alleen personen die zijn uitgenodigd",
"Otherwise, click here to send a bug report.": "Klik anders hier om een foutmelding te versturen.",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Bekijk je e-mail en klik op de link die het bevat. Zodra dit klaar is, klik op verder gaan.",
- "Power level must be positive integer.": "Machtsniveau moet een positief heel getal zijn.",
+ "Power level must be positive integer.": "Machtsniveau moet een positief geheel getal zijn.",
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s heeft zijn of haar weergavenaam (%(oldDisplayName)s) verwijderd.",
"%(senderName)s removed their profile picture.": "%(senderName)s heeft zijn of haar profielfoto verwijderd.",
"Failed to kick": "Niet gelukt om te er uit te zetten",
"Press to start a chat with someone": "Druk op om een gesprek met iemand te starten",
"Remove %(threePid)s?": "%(threePid)s verwijderen?",
- "%(senderName)s requested a VoIP conference.": "%(senderName)s heeft een VoIP gesprek aangevraagd.",
+ "%(senderName)s requested a VoIP conference.": "%(senderName)s heeft een VoIP-gesprek aangevraagd.",
"Report it": "Melden",
- "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.": "Het wachtwoord veranderen betekent momenteel dat alle eind-tot-eind versleutelingssleutels op alle apparaten veranderen waardoor versleutelde gespreksgeschiedenis onleesbaar wordt, behalve als je eerst de ruimte sleutels exporteert en daarna opnieuw importeert. Dit zal in de toekomst verbeterd worden.",
- "restore": "herstellen",
+ "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.": "Het wachtwoord veranderen betekent momenteel dat alle end-to-endbeveiligingssleutels op alle apparaten veranderen waardoor versleutelde gespreksgeschiedenis onleesbaar wordt, behalve als je eerst de ruimte sleutels exporteert en daarna opnieuw importeert. Dit zal in de toekomst verbeterd worden.",
"Results from DuckDuckGo": "Resultaten van DuckDuckGo",
"Return to app": "Naar de app terugkeren",
"Return to login screen": "Naar het inlogscherm terugkeren",
- "Riot does not have permission to send you notifications - please check your browser settings": "Riot heeft geen permissie om je notificaties te versturen - controleer je browser instellingen",
+ "Riot does not have permission to send you notifications - please check your browser settings": "Riot heeft geen permissie om je notificaties te versturen - controleer je browserinstellingen",
"Riot was not given permission to send notifications - please try again": "Riot heeft geen permissie gekregen om notificaties te versturen - probeer het opnieuw",
"riot-web version:": "riot-web versie:",
"Room %(roomId)s not visible": "Ruimte %(roomId)s is niet zichtbaar",
- "Room Colour": "Ruimte Kleur",
+ "Room Colour": "Ruimtekleur",
"Room contains unknown devices": "De ruimte bevat onbekende apparaten",
"Room name (optional)": "Ruimtenaam (optioneel)",
"%(roomName)s does not exist.": "%(roomName)s bestaat niet.",
@@ -536,32 +373,30 @@
"Scroll to unread messages": "Scroll naar ongelezen berichten",
"Search failed": "Zoeken mislukt",
"Searches DuckDuckGo for results": "Zoekt op DuckDuckGo voor resultaten",
- "Searching known users": "Aan het zoeken naar bekende gebruikers",
"Seen by %(userName)s at %(dateTime)s": "Gezien bij %(userName)s op %(dateTime)s",
"Send a message (unencrypted)": "Stuur een bericht (onversleuteld)",
"Send an encrypted message": "Stuur een versleuteld bericht",
"Send anyway": "Alsnog versturen",
- "Sender device information": "Afzender apparaat informatie",
- "Send Reset Email": "Stuur Reset E-mail",
+ "Sender device information": "Afzenderapparaatinformatie",
+ "Send Reset Email": "Stuur Reset-E-mail",
"sent an image": "stuurde een afbeelding",
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s stuurde een afbeelding.",
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s stuurde een uitnodiging naar %(targetDisplayName)s om tot de ruimte toe te treden.",
"sent a video": "stuurde een video",
- "Server error": "Server fout",
+ "Server error": "Serverfout",
"Server may be unavailable or overloaded": "De server kan onbereikbaar of overbelast zijn",
"Server may be unavailable, overloaded, or search timed out :(": "De server is misschien onbereikbaar, overbelast of het zoeken duurde te lang :(",
"Server may be unavailable, overloaded, or the file too big": "De server is misschien onbereikbaar, overbelast of het bestand is te groot",
"Server may be unavailable, overloaded, or you hit a bug.": "De server is misschien onbereikbaar, overbelast of je bent tegen een fout aangelopen.",
"Server unavailable, overloaded, or something else went wrong.": "De server is onbereikbaar, overbelast of iets anders ging fout.",
- "Session ID": "Sessie ID",
+ "Session ID": "Sessie-ID",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s heeft %(targetName)s de ruimte uitgestuurd.",
"Kick": "Er uit sturen",
- "Kicks user with given id": "Stuurt de gebruiker met het gegeven id er uit",
+ "Kicks user with given id": "Stuurt de gebruiker met het gegeven ID er uit",
"%(senderName)s set a profile picture.": "%(senderName)s heeft een profielfoto ingesteld.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s heeft zijn of haar weergavenaam naar %(displayName)s veranderd.",
- "Set": "Instellen",
"Show panel": "Paneel weergeven",
- "Show Text Formatting Toolbar": "Tekst Opmaak Werkbalk Weergeven",
+ "Show Text Formatting Toolbar": "Tekstopmaakwerkbalk Weergeven",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Laat de tijd in twaalf uur formaat zien (bijv. 2:30pm)",
"Signed Out": "Uitgelogd",
"Sign in": "Inloggen",
@@ -571,12 +406,11 @@
"since they were invited": "sinds ze zijn uitgenodigd",
"Some of your messages have not been sent.": "Een paar van je berichten zijn niet verstuurd.",
"Someone": "Iemand",
- "Sorry, this homeserver is using a login which is not recognised ": "Sorry, deze thuisserver gebruikt een inlog methode die niet wordt herkend. ",
- "The default role for new room members is": "De standaard rol voor nieuwe ruimteleden is",
+ "Sorry, this homeserver is using a login which is not recognised ": "Sorry, deze thuisserver gebruikt een inlogmethode die niet wordt herkend. ",
+ "The default role for new room members is": "De standaardrol voor nieuwe ruimteleden is",
"The main address for this room is": "Het hoofdadres voor deze ruimte is",
"The phone number entered looks invalid": "Het telefoonnummer dat ingevoerd is ziet er ongeldig uit",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "De versleutelingssleutel die je hebt verstrekt komt overeen met de versleutelingssleutel die je hebt ontvangen van %(userId)s's apparaat %(deviceId)s. Apparaat is gemarkeerd als geverifieerd.",
- "This action cannot be performed by a guest user. Please register to be able to do this.": "Deze actie kan niet door een gastaccount worden uitgevoerd. Registreer je om deze actie uit te kunnen voeren.",
"This email address is already in use": "Dit e-mailadres is al in gebruik",
"This email address was not found": "Dit e-mailadres was niet gevonden",
"%(actionVerb)s this person?": "%(actionVerb)s deze persoon?",
@@ -586,44 +420,30 @@
"The remote side failed to pick up": "De andere kant heeft niet opgenomen",
"This Home Server does not support login using email address.": "Deze Thuisserver ondersteunt het inloggen met een e-mailadres niet.",
"This invitation was sent to an email address which is not associated with this account:": "Deze uitnodiging was naar een e-mailadres gestuurd die niet geassocieerd is met dit account:",
- "There was a problem logging in.": "Er was een probleem met het inloggen.",
"This room has no local addresses": "Deze ruimte heeft geen lokale adressen",
"This room is not recognised.": "Deze ruimte wordt niet herkend.",
"These are experimental features that may break in unexpected ways": "Dit zijn experimentele functies die misschien kunnen breken op onverwachte manieren",
"The visibility of existing history will be unchanged": "De zichtbaarheid van de bestaande geschiedenis zal onveranderd blijven",
"This doesn't appear to be a valid email address": "Het ziet er niet naar uit dat dit een geldig e-mailadres is",
- "This is a preview of this room. Room interactions have been disabled": "Dit is een voorvertoning van de ruimte. Ruimte interacties zijn uitgeschakeld",
+ "This is a preview of this room. Room interactions have been disabled": "Dit is een voorvertoning van de ruimte. Ruimte-interacties zijn uitgeschakeld",
"This phone number is already in use": "Dit telefoonnummer is al in gebruik",
"This room": "Deze ruimte",
- "This room is not accessible by remote Matrix servers": "Deze ruimte is niet toegankelijk voor afgelegen Matrix servers",
+ "This room is not accessible by remote Matrix servers": "Deze ruimte is niet toegankelijk voor afgelegen Matrix-servers",
"This room's internal ID is": "Het interne ID van deze ruimte is",
- "times": "keer",
- "To ban users": "om gebruikers te verbannen",
- "to browse the directory": "om de catalogus door te bladeren",
- "To configure the room": "Om de ruimte te configureren",
"to demote": "om te degraderen",
"to favourite": "om aan favorieten toe te voegen",
- "To invite users into the room": "Om gebruikers in deze ruimte toe te voegen",
- "To kick users": "Om gebruikers er uit te zetten",
"To link to a room it must have an address.": "Om naar een ruimte te linken moet het een adres hebben.",
- "to make a room or": "om een ruimte te maken of",
- "To remove other users' messages": "Om berichten van anderen gebruikers te verwijderen",
"To reset your password, enter the email address linked to your account": "Voer het e-mailadres dat met je account verbonden is in om je wachtwoord opnieuw in te stellen",
"to restore": "om te herstellen",
- "To send events of type": "Om een bepaalde soort gebeurtenissen te sturen",
- "To send messages": "Om berichten te versturen",
- "to start a chat with someone": "om een gesprek met iemand te starten",
- "to tag as %(tagName)s": "om als %(tagName)s te etiketteren",
"to tag direct chat": "als directe chat etiketteren",
- "To use it, just wait for autocomplete results to load and tab through them.": "Om het te gebruiken, wacht voor de automatisch aanvullen resultaten om te laden en kijk er door heen.",
+ "To use it, just wait for autocomplete results to load and tab through them.": "Om het te gebruiken, wacht tot de automatisch aangevulde resultaten geladen zijn en tab er doorheen.",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Je probeerde een specifiek punt in de tijdlijn van deze ruimte te laden maar je hebt niet de permissie om de desbetreffende berichten te zien.",
"Tried to load a specific point in this room's timeline, but was unable to find it.": "Het is niet gelukt om een specifiek punt in de tijdlijn van deze ruimte te laden.",
- "Turn Markdown off": "Doe opmaak uit",
- "Turn Markdown on": "Zet opmaak aan",
+ "Turn Markdown off": "Zet Markdown uit",
+ "Turn Markdown on": "Zet Markdown aan",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s heeft eind-tot-eind versleuteling aangezet (algoritme %(algorithm)s).",
"Unable to add email address": "Niet mogelijk om e-mailadres toe te voegen",
"Unable to remove contact information": "Niet mogelijk om contactinformatie te verwijderen",
- "Unable to restore previous session": "Niet mogelijk om de vorige sessie te herstellen",
"Unable to verify email address.": "Niet mogelijk om het e-mailadres te verifiëren.",
"Unban": "Ontbannen",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s ontbande %(targetName)s.",
@@ -634,21 +454,19 @@
"Undecryptable": "Niet ontsleutelbaar",
"Unencrypted room": "Ontsleutelde ruimte",
"unencrypted": "ontsleuteld",
- "Unencrypted message": "Niet versleuteld bericht",
+ "Unencrypted message": "Niet-versleuteld bericht",
"unknown caller": "onbekende beller",
- "Unknown command": "Onbekende commando",
"unknown device": "Onbekend apparaat",
"Unknown room %(roomId)s": "Onbekende ruimte %(roomId)s",
"Unknown (user, device) pair:": "Onbekend (gebruiker, apparaat) paar:",
- "unknown": "onbekend",
"Unmute": "Niet dempen",
"Unnamed Room": "Naamloze Ruimte",
"Unrecognised command:": "Onbekende commando:",
"Unrecognised room alias:": "Onbekende ruimte alias:",
"Unverified": "Niet geverifieerd",
- "Uploading %(filename)s and %(count)s others.zero": "Aan het uploaden %(filename)s",
- "Uploading %(filename)s and %(count)s others.one": "%(filename)s en %(count)s andere aan het uploaden",
- "Uploading %(filename)s and %(count)s others.other": "%(filename)s en %(count)s anderen aan het uploaden",
+ "Uploading %(filename)s and %(count)s others|zero": "Aan het uploaden %(filename)s",
+ "Uploading %(filename)s and %(count)s others|one": "%(filename)s en %(count)s andere aan het uploaden",
+ "Uploading %(filename)s and %(count)s others|other": "%(filename)s en %(count)s anderen aan het uploaden",
"uploaded a file": "Bestand geüpload",
"Upload avatar": "Avatar uploaden",
"Upload Failed": "Uploaden Mislukt",
@@ -656,25 +474,25 @@
"Upload file": "Bestand uploaden",
"Upload new:": "Nieuwe uploaden:",
"Usage": "Gebruik",
- "Use compact timeline layout": "Gebruik een compacte tijdlijn indeling",
+ "Use compact timeline layout": "Gebruik een compacte tijdlijnindeling",
"Use with caution": "Gebruik met behoedzaamheid",
- "User ID": "Gebruiker ID",
- "User Interface": "Gebruiker Interface",
+ "User ID": "Gebruikers-ID",
+ "User Interface": "Gebruikersinterface",
"%(user)s is a": "%(user)s is een",
"User name": "Gebruikersnaam",
"%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (macht %(powerLevelNumber)s)",
"Username invalid: %(errMessage)s": "Gebruikersnaam ongeldig: %(errMessage)s",
"Users": "Gebruikers",
"User": "Gebruiker",
- "Verification Pending": "Verificatie Wachtend",
+ "Verification Pending": "Verificatie Uitstaand",
"Verification": "Verificatie",
"verified": "geverifieerd",
"Verified": "Geverifieerd",
"Verified key": "Geverifieerde sleutel",
"Video call": "Video-oproep",
"Voice call": "Spraakoproep",
- "VoIP conference finished.": "VoIP vergadering beëindigd.",
- "VoIP conference started.": "VoIP vergadering gestart.",
+ "VoIP conference finished.": "VoIP-vergadering beëindigd.",
+ "VoIP conference started.": "VoIP-vergadering gestart.",
"VoIP is unsupported": "VoIP is niet ondersteund",
"(could not connect media)": "(kan media niet verbinden)",
"(no answer)": "(geen antwoord)",
@@ -682,42 +500,40 @@
"(warning: cannot be disabled again!)": "(waarschuwing: kan niet meer uitgezet worden!)",
"Warning!": "Waarschuwing!",
"WARNING: Device already verified, but keys do NOT MATCH!": "WAARSCHUWING: Apparaat al geverifieerd, maar de sleutels KOMEN NIET OVEREEN!",
- "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!": "WAARSCHUWING: SLEUTEL VERIFICATIE IS MISLUKT! De ondertekende sleutel voor %(userId)s en apparaat %(deviceId)s is \"%(fprint)s\" wat niet overeenkomt met de verschafte sleutel \"%(fingerprints)s\". Dit kan betekenen dat je communicatie onderschept wordt!",
+ "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!": "WAARSCHUWING: SLEUTELVERIFICATIE IS MISLUKT! De ondertekende sleutel voor %(userId)s en apparaat %(deviceId)s is \"%(fprint)s\" wat niet overeenkomt met de verschafte sleutel \"%(fingerprint)s\". Dit kan betekenen dat je communicatie onderschept wordt!",
"Who can access this room?": "Wie heeft toegang tot deze ruimte?",
"Who can read history?": "Wie kan de geschiedenis lezen?",
"Who would you like to add to this room?": "Wie wil je aan deze ruimte toevoegen?",
"Who would you like to communicate with?": "Met wie zou je willen communiceren?",
- "%(senderName)s withdrew %(targetName)s's invitation.": "%(sernderName)s trok %(targetName)s's uitnodiging terug.",
+ "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s trok %(targetName)s's uitnodiging terug.",
"Would you like to accept or decline this invitation?": "Wil je deze uitnodiging accepteren of afwijzen?",
- "You already have existing direct chats with this user:": "Je hebt al bestaande privé gesprekken met deze gebruiker:",
+ "You already have existing direct chats with this user:": "Je hebt al bestaande privé-gesprekken met deze gebruiker:",
"You are already in a call.": "Je bent al in gesprek.",
"You're not in any rooms yet! Press to make a room or to browse the directory": "Je zit nog niet in een ruimte! Druk op om een ruimte te maken of om door de catalogus te bladeren",
"You are trying to access %(roomName)s.": "Je probeert in %(roomName)s toe te treden.",
"You cannot place a call with yourself.": "Je kan geen spraakoproep met jezelf maken.",
- "You cannot place VoIP calls in this browser.": "Je kan geen VoIP oproepen in deze browser doen.",
+ "You cannot place VoIP calls in this browser.": "Je kan geen VoIP-oproepen in deze browser doen.",
"You do not have permission to post to this room": "Je hebt geen permissie om in deze ruimte te praten",
"You have been banned from %(roomName)s by %(userName)s.": "Je bent verbannen van %(roomName)s door %(userName)s.",
"You have been invited to join this room by %(inviterName)s": "Je bent in deze ruimte uitgenodigd door %(inviterName)s",
"You have been kicked from %(roomName)s by %(userName)s.": "Je bent uit %(roomName)s gezet door %(userName)s.",
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Je bent op alle apparaten uitgelegd en je zal niet langer notificaties ontvangen. Om notificaties weer aan te zetten, log op elk apparaat opnieuw in",
- "You have disabled URL previews by default.": "Je hebt URL voorvertoningen standaard uitgezet.",
- "You have enabled URL previews by default.": "Je hebt URL voorvertoningen standaard aangezet.",
- "You have entered an invalid contact. Try using their Matrix ID or email address.": "Je hebt een ongeldig contact ingevoerd. Probeer zijn of haar Matrix ID of e-mailadres te gebruiken.",
+ "You have disabled URL previews by default.": "Je hebt URL-voorvertoningen standaard uitgezet.",
+ "You have enabled URL previews by default.": "Je hebt URL-voorvertoningen standaard aangezet.",
"You have no visible notifications": "Je hebt geen zichtbare notificaties",
"You may wish to login with a different account, or add this email to this account.": "Je wilt misschien met een ander account inloggen of deze e-mail aan je account toevoegen.",
- "you must be a": "wat je moet zijn is een",
"You must register to use this functionality": "Je moet je registreren om deze functionaliteit te gebruiken",
"You need to be able to invite users to do that.": "Je moet bevoegd zijn om gebruikers uit te nodigen om dat te doen.",
"You need to be logged in.": "Je moet ingelogd zijn.",
"You need to enter a user name.": "Je moet een gebruikersnaam invoeren.",
- "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Het ziet er naar uit dat je e-mailadres niet met een Matrix ID geassocieerd is op deze thuisserver.",
+ "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Het ziet er naar uit dat je e-mailadres niet met een Matrix-ID geassocieerd is op deze thuisserver.",
"Your password has been reset": "Je wachtwoord is gereset",
"Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Je wachtwoord is succesvol veranderd. Je zal geen notificaties op andere apparaten ontvangen totdat je er opnieuw inlogd",
"You seem to be in a call, are you sure you want to quit?": "Het ziet er naar uit dat je in een gesprek zit, weet je zeker dat je wilt afsluiten?",
"You seem to be uploading files, are you sure you want to quit?": "Het ziet er naar uit dat je bestanden aan het uploaden bent, weet je zeker dat je wilt afsluiten?",
"You should not yet trust it to secure data": "Je moet het nog niet vertrouwen om gegevens te beveiligen",
"You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Je zal deze verandering niet terug kunnen draaien omdat je de gebruiker naar hetzelfde machtsniveau als jezelf promoot.",
- "Your home server does not support device management.": "Je thuisserver ondersteund geen apparaat beheer.",
+ "Your home server does not support device management.": "Je thuisserver ondersteund geen apparaatbeheer.",
"This server does not support authentication with a phone number.": "Deze server ondersteunt geen authenticatie met een telefoonnummer.",
"Missing password.": "Het wachtwoord mist.",
"Passwords don't match.": "De wachtwoorden komen niet overeen.",
@@ -737,11 +553,9 @@
"Room": "Ruimte",
"Connectivity to the server has been lost.": "De connectiviteit naar de server is verloren.",
"Sent messages will be stored until your connection has returned.": "Verstuurde berichten zullen opgeslagen worden tot je connectie weer terug is.",
- "Auto-complete": "Automatisch aanvullen",
"Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Verstuur alle of annuleer alle nu. Je kan ook individuele berichten selecteren om te versturen of te annuleren.",
- "(~%(count)s results).one": "(~%(count)s resultaat)",
- "(~%(count)s results).other": "(~%(count)s resultaten)",
- "or": "of",
+ "(~%(count)s results)|one": "(~%(count)s resultaat)",
+ "(~%(count)s results)|other": "(~%(count)s resultaten)",
"Active call": "Actief gesprek",
"bold": "vetgedrukt",
"italic": "schuingedrukt",
@@ -756,25 +570,25 @@
"%(severalUsers)sjoined": "%(severalUsers)s zijn toegretreden",
"%(oneUser)sjoined": "%(oneUser)s is toegetreden",
"%(severalUsers)sleft %(repeats)s times": "%(severalUsers)s zijn %(repeats)s vertrokken",
- "%(oneUser)sleft %(repeats)s times": "%(oneUser) is %(repeats)s vertrokken",
+ "%(oneUser)sleft %(repeats)s times": "%(oneUser)s is %(repeats)s vertrokken",
"%(severalUsers)sleft": "%(severalUsers)s zijn vertrokken",
"%(oneUser)sleft": "%(oneUser)s is vertrokken",
- "%(severalUsers)sjoined and left %(repeats)s times": "%(severalUsers) zijn %(repeats)s toegetreden en weer vertrokken",
+ "%(severalUsers)sjoined and left %(repeats)s times": "%(severalUsers)szijn %(repeats)s toegetreden en weer vertrokken",
"%(oneUser)sjoined and left %(repeats)s times": "%(oneUser)s is %(repeats)s keer toegetreden en vertrokken",
"%(severalUsers)sjoined and left": "%(severalUsers)s zijn toegetreden en vertrokken",
"%(oneUser)sjoined and left": "%(oneUser)s is toegetreden en weer vertrokken",
"%(severalUsers)sleft and rejoined %(repeats)s times": "%(severalUsers)s zijn %(repeats)s keer vertrokken en opnieuw toegetreden",
"%(oneUser)sleft and rejoined %(repeats)s times": "%(oneUser)s is %(repeats)s keer vertrokken en opnieuw toegetreden",
- "%(severalUsers)sleft and rejoined": "%(severalUsers) zijn vertrokken en opnieuw toegetreden",
+ "%(severalUsers)sleft and rejoined": "%(severalUsers)s zijn vertrokken en opnieuw toegetreden",
"%(oneUser)sleft and rejoined": "%(oneUser)s is vertrokken en opnieuw toegetreden",
- "%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)s hebben hun uitnodiging uitnodiging %(repeats)s keer afgewezen",
+ "%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)s hebben hun uitnodiging %(repeats)s keer afgewezen",
"%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)s heeft zijn of haar uitnodiging %(repeats)s keer afgewezen",
"%(severalUsers)srejected their invitations": "%(severalUsers)s hebben hun uitnodiging afgewezen",
"%(oneUser)srejected their invitation": "%(oneUser)s heeft zijn of haar uitnodiging afgewezen",
- "%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers) hun uitnodiging is %(repeats)s keer terug getrokken",
+ "%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)shun uitnodiging is %(repeats)s keer terug getrokken",
"%(oneUser)shad their invitation withdrawn %(repeats)s times": "%(oneUser)s zijn of haar uitnodiging is %(repeats)s keer terug getrokken",
"%(severalUsers)shad their invitations withdrawn": "%(severalUsers)s hun uitnodiging is terug getrokken",
- "%(oneUser)shad their invitation withdrawn": "%(oneUser) zijn of haar uitnodiging is terug getrokken",
+ "%(oneUser)shad their invitation withdrawn": "%(oneUser)szijn of haar uitnodiging is terug getrokken",
"were invited %(repeats)s times": "is %(repeats)s keer uitgenodigd",
"was invited %(repeats)s times": "was %(repeats)s keer uitgenodigd",
"were invited": "waren uitgenodigd",
@@ -795,32 +609,31 @@
"%(oneUser)schanged their name %(repeats)s times": "%(oneUser)s heeft zijn of haar naam %(repeats)s keer aangepast",
"%(severalUsers)schanged their name": "%(severalUsers)s hebben hun naam aangepast",
"%(oneUser)schanged their name": "%(oneUser)s heeft zijn of haar naam aangepast",
- "%(severalUsers)schanged their avatar %(repeats)s times": "%(severalUsers) hebben hun avatar %(repeats)s keer aangepast",
+ "%(severalUsers)schanged their avatar %(repeats)s times": "%(severalUsers)shebben hun avatar %(repeats)s keer aangepast",
"%(oneUser)schanged their avatar %(repeats)s times": "%(oneUser)s heeft zijn of haar avatar %(repeats)s keer aangepast",
"%(severalUsers)schanged their avatar": "%(severalUsers)s hebben hun avatar aangepast",
"%(oneUser)schanged their avatar": "%(oneUser)s heeft zijn of haar avatar aangepast",
- "Please select the destination room for this message": "Selecteer de destinatie ruimte voor dit bericht",
+ "Please select the destination room for this message": "Selecteer de destinatie-ruimte voor dit bericht",
"New Password": "Nieuw wachtwoord",
- "Start automatically after system login": "Start automatisch na systeem aanmelding",
- "Desktop specific": "Desktop specifiek",
- "Analytics": "Analisaties",
- "Opt out of analytics": "Uitschrijven voor gegevens analisaties",
+ "Start automatically after system login": "Start automatisch na systeem-aanmelding",
+ "Desktop specific": "Desktop-specifiek",
+ "Analytics": "Gegevensanalyse",
+ "Opt out of analytics": "Uitschrijven voor gegevensanalyse",
"Options": "Opties",
- "Riot collects anonymous analytics to allow us to improve the application.": "Riot verzameld anonieme analisaties dat het mogelijk maakt om de applicatie te verbeteren.",
+ "Riot collects anonymous analytics to allow us to improve the application.": "Riot verzameld anonieme gegevensanalyse die het mogelijk maakt om de applicatie te verbeteren.",
"Passphrases must match": "Wachtzinnen moeten overeenkomen",
"Passphrase must not be empty": "Wachtzin mag niet leeg zijn",
"Export room keys": "Ruimtesleutels exporteren",
"Confirm passphrase": "Wachtzin bevestigen",
"Import room keys": "Ruimtesleutels importeren",
"File to import": "Bestand om te importeren",
- "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "Dit proces maakt het mogelijk om de sleutels van je ontvangen berichten in versleutelde ruimtes naar een lokaal bestand te exporteren. Je zal daarna in de toekomst het bestand in een ander Matrix programma kunnen importeren zodat dat programma ook deze berichten kan ontsleutelen.",
- "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "Het geëxporteerde bestand zal het voor iedereen dat het kan lezen mogelijk maken om alle berichten die jij kan zien te ontsleutelen, je zal daarom voorzichtig moeten zijn en het veilig houden. Om hiermee te helpen zou je een wachtzin moeten invoeren hieronder, deze zal dan gebruikt worden om de geëxporteerde gegevens dte versleutelen. Het is dan alleen mogelijk om de gegevens te importeren met hetzelfde wachtwoord.",
- "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Dit proces maakt het mogelijk om versleutelingssleutels die je eerst had geëxporteerd vanaf een ander Matrix programma te importeren. Je zal daarna alle berichten kunnen ontsleutelen die het andere programma ook kon ontsleutelen.",
+ "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "Dit proces maakt het mogelijk om de sleutels van je ontvangen berichten in versleutelde ruimtes naar een lokaal bestand te exporteren. Je zal daarna in de toekomst het bestand in een ander Matrix-programma kunnen importeren zodat dat programma ook deze berichten kan ontsleutelen.",
+ "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "Het geëxporteerde bestand zal het voor iedereen dat het kan lezen mogelijk maken om alle berichten die jij kan zien te ontsleutelen, je zal daarom voorzichtig moeten zijn en het veilig houden. Om hiermee te helpen zou je een wachtzin moeten invoeren hieronder, deze zal dan gebruikt worden om de geëxporteerde gegevens te versleutelen. Het is dan alleen mogelijk om de gegevens te importeren met hetzelfde wachtwoord.",
+ "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Dit proces maakt het mogelijk om versleutelingssleutels die je eerst had geëxporteerd vanaf een ander Matrix-programma te importeren. Je zal daarna alle berichten kunnen ontsleutelen die het andere programma ook kon ontsleutelen.",
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "Het te exporteren bestand zal beveiligd zijn met een wachtzin. Je moet hier een wachtzin invoeren om het bestand te ontsleutelen.",
"You must join the room to see its files": "Je moet tot een ruimte toetreden om de bestanden te zien",
"Reject all %(invitedRooms)s invites": "Alle %(invitedRooms)s uitnodigingen afslaan",
"Start new chat": "Nieuwe chat starten",
- "Guest users can't invite users. Please register.": "Gast gebruikers kunnen geen gebruikers uitnodigen. Registreer je alsjeblieft.",
"Failed to invite": "Niet gelukt om uit te nodigen",
"Failed to invite user": "Niet gelukt om de gebruiker uit te nodigen",
"Failed to invite the following users to the %(roomName)s room:": "Niet gelukt om de volgende gebruikers voor de %(roomName)s ruimte uit te nodigen:",
@@ -828,7 +641,7 @@
"Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Weet je zeker dat je deze gebeurtenis wilt verwijderen? Wees er wel van bewust dat als je een ruimtenaam of onderwerp verwijderd je de verandering ongedaan kunt maken.",
"Unknown error": "Onbekende fout",
"Incorrect password": "Incorrect wachtwoord",
- "This will make your account permanently unusable. You will not be able to re-register the same user ID.": "Dit zal je account permanent onbruikbaar maken. Je zal ook niet opnieuw kunnen registreren met hetzelfde gebruikers ID.",
+ "This will make your account permanently unusable. You will not be able to re-register the same user ID.": "Dit zal je account permanent onbruikbaar maken. Je zal ook niet opnieuw kunnen registreren met hetzelfde gebruikers-ID.",
"This action is irreversible.": "Deze actie is onomkeerbaar.",
"To continue, please enter your password.": "Om verder te gaan, voer je wachtwoord in.",
"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:": "Om te verifiëren dat dit apparaat vertrouwd kan worden, contacteer de eigenaar op een andere manier (bijv. persoonlijk of via een telefoontje) en vraag of de sleutel die ze zien in de Gebruikersinstellingen voor dit apparaat overeenkomt met de onderstaande sleutel:",
@@ -846,7 +659,6 @@
"Unable to restore session": "Het is niet mogelijk om de sessie te herstellen",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Als je eerst gebruik hebt gemaakt van een recentere versie van Riot, dan is je sessie misschien onverenigbaar met deze versie. Sluit dit scherm en ga terug naar de recentere versie.",
"Continue anyway": "Toch doorgaan",
- "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Je weergavenaam is hoe je voor anderen zal verschijnen terwijl je in ruimtes praat. Wat wil je dat het wordt?",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "We raden je aan om door het verificatieproces van elk apparaat te gaan om te bevestigen dat ze tot de legitieme eigenaar behoren maar je kan het bericht versturen zonder te verifiëren als je dat liever doet.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" bevat apparaten die je nog niet eerder hebt gezien.",
"Unknown devices": "Onbekende apparaten",
@@ -857,8 +669,8 @@
"Add User": "Gebruiker Toevoegen",
"This Home Server would like to make sure you are not a robot": "Deze thuisserver wil er zeker van zijn dat je geen robot bent",
"Sign in with CAS": "Inloggen met CAS",
- "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Je kan de aangepaste server opties gebruiken om bij andere Matrix servers in te loggen door een andere thuisserver URL te specificeren.",
- "This allows you to use this app with an existing Matrix account on a different home server.": "Dit maakt het mogelijk om deze applicatie te gebruiken met een bestaand Matrix account op een andere thuisserver.",
+ "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Je kan de aangepaste server opties gebruiken om bij andere Matrix-servers in te loggen door een andere thuisserver-URL te specificeren.",
+ "This allows you to use this app with an existing Matrix account on a different home server.": "Dit maakt het mogelijk om deze applicatie te gebruiken met een bestaand Matrix-account op een andere thuisserver.",
"You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Je kan ook een aangepaste identiteitsserver instellen maar dit zal waarschijnlijk interactie met gebruikers gebaseerd op een e-mailadres voorkomen.",
"Please check your email to continue registration.": "Bekijk je e-mail om door te gaan met de registratie.",
"Token incorrect": "Bewijs incorrect",
@@ -866,10 +678,10 @@
"Please enter the code it contains:": "Voer de code in die het bevat:",
"If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Als je geen e-mailadres specificeert zal je niet je wachtwoord kunnen resetten. Weet je het zeker?",
"You are registering with %(SelectedTeamName)s": "Je registreert je met %(SelectedTeamName)s",
- "Default server": "Standaard server",
+ "Default server": "Standaardserver",
"Custom server": "Aangepaste server",
- "Home server URL": "Thuisserver URL",
- "Identity server URL": "Identiteitsserver URL",
+ "Home server URL": "Thuisserver-URL",
+ "Identity server URL": "Identiteitsserver-URL",
"What does this mean?": "Wat betekent dit?",
"Error decrypting audio": "Fout met het ontsleutelen van de audio",
"Error decrypting image": "Fout met het ontsleutelen van de afbeelding",
@@ -877,20 +689,20 @@
"This image cannot be displayed.": "Deze afbeelding kan niet worden weergeven.",
"Error decrypting video": "Fout met het ontsleutelen van de video",
"Add an Integration": "Voeg een integratie toe",
- "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?": "Je wordt zo naar een derde-partij website verbonden zodat je het account kan legitimeren voor gebruik met %(integrationsUrl)s. Wil je doorgaan?",
- "Removed or unknown message type": "Verwijderd of onbekend bericht type",
- "Disable URL previews by default for participants in this room": "Zet URL voorvertoningen standaard uit voor deelnemers aan deze ruimte",
- "Disable URL previews for this room (affects only you)": "Zet URL voorvertoningen uit voor deze ruimte (heeft alleen effect op jou)",
- "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "URL voorvertoningen staan standaard %(globalDisableUrlPreview)s voor deelnemers aan deze ruimte.",
- "URL Previews": "URL Voorvertoningen",
- "Enable URL previews for this room (affects only you)": "URL voorvertoningen in deze ruimte aanzetten (heeft alleen effect op jou)",
+ "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?": "Je wordt zo naar een derde-partij-website verbonden zodat je het account kan legitimeren voor gebruik met %(integrationsUrl)s. Wil je doorgaan?",
+ "Removed or unknown message type": "Verwijderd of onbekend berichttype",
+ "Disable URL previews by default for participants in this room": "Zet URL-voorvertoningen standaard uit voor deelnemers aan deze ruimte",
+ "Disable URL previews for this room (affects only you)": "Zet URL-voorvertoningen uit voor deze ruimte (heeft alleen effect op jou)",
+ "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "URL-voorvertoningen staan standaard %(globalDisableUrlPreview)s voor deelnemers aan deze ruimte.",
+ "URL Previews": "URL-Voorvertoningen",
+ "Enable URL previews for this room (affects only you)": "URL-voorvertoningen in deze ruimte aanzetten (heeft alleen effect op jou)",
"Drop file here to upload": "Bestand hier laten vallen om te uploaden",
" (unsupported)": " (niet ondersteund)",
"Ongoing conference call%(supportedText)s.": "Lopend vergaderingsgesprek %(supportedText)s.",
"for %(amount)ss": "voor %(amount)ss",
"for %(amount)sm": "voor %(amount)sm",
"for %(amount)sh": "voor %(amount)su",
- "for %(amount)sd": "for %(amound)sd",
+ "for %(amount)sd": "for %(amount)sd",
"Online": "Online",
"Idle": "Afwezig",
"Offline": "Offline",
@@ -899,16 +711,16 @@
"Start chatting": "Start met praten",
"Start Chatting": "Start Met Praten",
"Click on the button below to start chatting!": "Klik op de knop hieronder om te starten met praten!",
- "$senderDisplayName changed the room avatar to
": "$senderDisplayName heeft de ruimte avatar aangepast naar
",
+ "%(senderDisplayName)s changed the room avatar to
": "%(senderDisplayName)s heeft de ruimte avatar aangepast naar
",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s heeft de ruimte avatar verwijderd.",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s veranderde de avatar voor %(roomName)s",
"Username available": "Gebruikersnaam beschikbaar",
"Username not available": "Gebruikersnaam niet beschikbaar",
"Something went wrong!": "Iets ging niet goed!",
"This will be your account name on the homeserver, or you can pick a different server.": "Dit zal je account naam worden op de thuisserver of je kan een verschillende server pakken.",
- "If you already have a Matrix account you can log in instead.": "Als je al een Matrix account hebt kan je in plaats daarvan inloggen.",
- "Your browser does not support the required cryptography extensions": "Je browser ondersteunt de benodigde cryptografie extensies niet",
- "Not a valid Riot keyfile": "Niet een geldig Riot sleutelbestand",
+ "If you already have a Matrix account you can log in instead.": "Als je al een Matrix-account hebt kan je in plaats daarvan inloggen.",
+ "Your browser does not support the required cryptography extensions": "Je browser ondersteunt de benodigde cryptografie-extensies niet",
+ "Not a valid Riot keyfile": "Niet een geldig Riot-sleutelbestand",
"Authentication check failed: incorrect password?": "Authenticatie controle gefaald: incorrect wachtwoord?",
"Disable Peer-to-Peer for 1:1 calls": "Peer-to-Peer voor 1:1 oproepen uitschakelen",
"Do you want to set an email address?": "Wil je een e-mailadres instellen?",
@@ -918,7 +730,50 @@
"Start verification": "Verificatie starten",
"Share without verifying": "Delen zonder verificatie",
"Ignore request": "Verzoek negeren",
- "You added a new device '%(displayName)s', which is requesting encryption keys.": "Je hebt een nieuwe apparaat '%(displayName)s' toegevoegd die om versleutelingssleutels vraagt.",
+ "You added a new device '%(displayName)s', which is requesting encryption keys.": "Je hebt een nieuw apparaat '%(displayName)s' toegevoegd dat om versleutelingssleutels vraagt.",
"Your unverified device '%(displayName)s' is requesting encryption keys.": "Je niet geverifieerde apparaat '%(displayName)s' vraagt naar versleutelingssleutels.",
- "Encryption key request": "Verzoek voor versleutelingssleutel"
+ "Encryption key request": "Verzoek voor versleutelingssleutel",
+ "Define the power level of a user": "Definieer het machtsniveau van een gebruiker",
+ "Add a widget": "Voeg een widget toe",
+ "Allow": "Toestaan",
+ "Cannot add any more widgets": "Er kunnen niet meer widgets toegevoegd worden",
+ "Changes colour scheme of current room": "Verander het kleurenschema van de huidige ruimte",
+ "Delete widget": "Widget verwijderen",
+ "Do you want to load widget from URL:": "Wil je de widget laden van de URL:",
+ "Edit": "Wijzigen",
+ "Enable automatic language detection for syntax highlighting": "Automatische taaldetectie voor zinsbouwmarkeringen aanzetten",
+ "Hide Apps": "Apps verbergen",
+ "Hide join/leave messages (invites/kicks/bans unaffected)": "Toetreed/verlaat berichten verbergen (uitnodigingen/verwijderingen/verbanningen zullen ongeschonden blijven)",
+ "Hide avatar and display name changes": "Avatar en weergavenaam wijzigingen verbergen",
+ "Integrations Error": "Integratiesfout",
+ "Publish this room to the public in %(domain)s's room directory?": "Deze ruimte publiekelijk maken in %(domain)s's ruimte catalogus?",
+ "AM": "AM",
+ "PM": "PM",
+ "NOTE: Apps are not end-to-end encrypted": "OPMERKING: Apps zijn niet end-to-endbeveiligd",
+ "Revoke widget access": "Toegang tot widget intrekken",
+ "Sets the room topic": "Wijzigt het ruimte-onderwerp",
+ "Show Apps": "Apps Weergeven",
+ "The maximum permitted number of widgets have already been added to this room.": "Het maximum aantal toegestane widgets is al aan deze ruimte toegevoegd.",
+ "To get started, please pick a username!": "Om te beginnen, kies een gebruikersnaam!",
+ "Unable to create widget.": "Niet in staat om een widget te maken.",
+ "Unbans user with given id": "Ontbant de gebruiker met het gegeven id",
+ "You are not in this room.": "Je zit niet in deze ruimte.",
+ "You do not have permission to do that in this room.": "Je hebt geen permissie om dat te doen in deze ruimte.",
+ "Verifies a user, device, and pubkey tuple": "Verifieert een gebruiker, apparaat en pubkey tupel",
+ "Autocomplete Delay (ms):": "Automatisch-aanvullen-vertraging (ms):",
+ "Loading device info...": "Apparaat info aan het laden...",
+ "Example": "Voorbeeld",
+ "Create": "Creëer",
+ "Room creation failed": "Het aanmaken van de ruimte is niet gelukt",
+ "Featured Rooms:": "Prominente Ruimtes:",
+ "Featured Users:": "Prominente Gebruikers:",
+ "Automatically replace plain text Emoji": "Automatisch normale tekst vervangen met Emoji",
+ "Failed to upload image": "Het is niet gelukt om de afbeelding te uploaden",
+ "Hide avatars in user and room mentions": "Avatars in gebruiker- en ruimte-vermeldingen verbergen",
+ "%(widgetName)s widget added by %(senderName)s": "%(widgetName)s-widget toegevoegd door %(senderName)s",
+ "%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s-widget verwijderd door %(senderName)s",
+ "Robot check is currently unavailable on desktop - please use a web browser": "Robot-check is momenteel niet beschikbaar op de desktop - gebruik in plaats daarvan een webbrowser",
+ "%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s-widget aangepast door %(senderName)s",
+ "Copied!": "Gekopieerd!",
+ "Failed to copy": "Kopiëren mislukt"
}
diff --git a/src/i18n/strings/pl.json b/src/i18n/strings/pl.json
index 624302543d..4e7aa2fd55 100644
--- a/src/i18n/strings/pl.json
+++ b/src/i18n/strings/pl.json
@@ -1,6 +1,6 @@
{
"Ignore request": "Zignoruj żądanie",
- "Start verification": "Rozpocznij weryfikacje",
+ "Start verification": "Rozpocznij weryfikację",
"Skip": "Pomiń",
"This will allow you to reset your password and receive notifications.": "To pozwoli Ci zresetować Twoje hasło i otrzymać powiadomienia.",
"Your browser does not support the required cryptography extensions": "Twoja przeglądarka nie wspiera wymaganych rozszerzeń kryptograficznych",
@@ -14,32 +14,23 @@
"This image cannot be displayed.": "Ten obrazek nie może zostać wyświetlony.",
"Default server": "Domyślny serwer",
"A text message has been sent to": "Wiadomość tekstowa została wysłana do",
- "Add User": "Dodaj Użytkownika",
+ "Add User": "Dodaj użytkownika",
"Verify...": "Zweryfikuj...",
- "Unknown Address": "Nieznany Adres",
+ "Unknown Address": "Nieznany adres",
"Unknown devices": "Nieznane urządzenia",
"Verify device": "Zweryfikuj urządzenie",
"Device key": "Klucz urządzenia",
- "Device Name": "Nazwa Urządzenia",
+ "Device Name": "Nazwa urządzenia",
"Device name": "Nazwa urządzenia",
"To continue, please enter your password.": "Aby kontynuować, proszę wprowadzić swoje hasło.",
"Incorrect password": "Nieprawidłowe hasło",
"Unknown error": "Nieznany błąd",
"Start new chat": "Rozpocznij nową konwersację",
"Options": "Opcje",
- "New Password": "Nowe Hasło",
+ "New Password": "Nowe hasło",
"Room directory": "Spis pokojów",
"Start chat": "Rozpocznij rozmowę",
- "Welcome page": "Strona powitalna",
"Create new room": "Utwórz nowy pokój",
- "Sunday": "Niedziela",
- "Wednesday": "Środa",
- "Thursday": "Czwartek",
- "Friday": "Piątek",
- "Saturday": "Sobota",
- "Monday": "Poniedziałek",
- "Tuesday": "Wtorek",
- "or": "lub",
"Cancel": "Anuluj",
"Room": "Pokój",
"Topic": "Temat",
@@ -67,26 +58,11 @@
"User": "Użytkownik",
"Users": "Użytkownicy",
"User name": "Nazwa użytkownika",
- "User ID": "ID Użytkownika",
- "User Interface": "Interfejs Użytkownika",
+ "User ID": "ID użytkownika",
+ "User Interface": "Interfejs użytkownika",
"Usage": "Użycie",
"Upload file": "Prześlij plik",
"Unban": "Odbanuj",
- "en": "Angielski",
- "fi": "Fiński",
- "fr": "Francuski",
- "he": "Hebrajski",
- "hu": "Węgierski",
- "it": "Włoski",
- "ja": "Japoński",
- "no": "Norweski",
- "pl": "Polski",
- "ru": "Rosyjski",
- "sq": "Albański",
- "sr": "Serbski",
- "th": "Tajski",
- "uk": "Ukraiński",
- "vi": "Wietnamski",
"Accept": "Akceptuj",
"Account": "Konto",
"Add": "Dodaj",
@@ -95,7 +71,6 @@
"Camera": "Kamera",
"Algorithm": "Algorytm",
"Hide removed messages": "Ukryj usunięte wiadomości",
- "and": "i",
"Are you sure?": "Czy jesteś pewien?",
"Attachment": "Załącznik",
"Banned users": "Zbanowani użytkownicy",
@@ -110,7 +85,6 @@
"Create an account": "Stwórz konto",
"Delete": "Usuń",
"Devices": "Urządzenia",
- "Direct Chat": "Rozmowa bezpośrednia",
"Drop here %(toAction)s": "Upuść tutaj %(toAction)s",
"Error": "Błąd",
"Notifications": "Powiadomienia",
@@ -121,117 +95,13 @@
"unknown error code": "nieznany kod błędu",
"OK": "OK",
"Custom Server Options": "Niestandardowe opcje serwera",
- "Dismiss": "Zdymisjonować",
+ "Dismiss": "Zamknij",
"Failed to forget room %(errCode)s": "Nie mogłem zapomnieć o pokoju %(errCode)s",
- "Failed to join the room": "Nie udało się dołączyć do pokoju",
"Favourite": "Ulubiony",
"Mute": "Wycisz",
- "Please Register": "Proszę się zarejestrować",
"powered by Matrix": "napędzany przez Matrix",
"Failed to change password. Is your password correct?": "Zmiana hasła nie powiodła się. Czy Twoje hasło jest poprawne?",
- "be": "Białoruski",
- "bg": "Bułgarski",
- "cs": "Czeski",
- "da": "Duński",
- "de": "Niemiecki",
- "el": "Grecki",
- "et": "Estoński",
- "ga": "Irlandzki",
- "hr": "Chorwacki",
- "is": "Islandzki",
- "hi": "Hindi",
- "lt": "Litewski",
- "lv": "Łotewski",
- "nl": "Holenderski",
- "pt": "Portugalski",
- "sl": "Słoweński",
- "sk": "Słowacki",
- "sv": "Szwedzki",
- "tr": "Turecki",
"Add a topic": "Dodaj temat",
- "af": "Afrikaans",
- "ar-ae": "Arabski (ZEA)",
- "ar-bh": "Arabski (Bahrajn)",
- "ar-dz": "Arabski (Algieria)",
- "ar-eg": "Arabski (Egipt)",
- "ar-iq": "Arabski (Irak)",
- "ar-jo": "Arabski (Jordania)",
- "ar-kw": "Arabski (Kuwejt)",
- "ar-lb": "Arabski (Liban)",
- "ar-ly": "Arabski (Libia)",
- "ar-ma": "Arabski (Maroko)",
- "ar-om": "Arabski (Oman)",
- "ar-qa": "Arabski (Katar)",
- "ar-sa": "Arabski (Arabia Saudyjska)",
- "ar-sy": "Arabski (Syria)",
- "ar-tn": "Arabski (Tunezja)",
- "ar-ye": "Arabski (Jemen)",
- "ca": "Kataloński",
- "de-at": "Niemiecki (Austria)",
- "de-ch": "Niemiecki (Szwajcaria)",
- "de-li": "Niemiecki (Liechtenstein)",
- "de-lu": "Niemiecki (Luksemburg)",
- "en-au": "Angielski (Australia)",
- "en-bz": "Angielski (Belize)",
- "en-ca": "Angielski (Kanada)",
- "en-gb": "Angielski (Wielka Brytania)",
- "en-ie": "Angielski (Irlandia)",
- "en-jm": "Angielski (Jamajka)",
- "en-nz": "Angielski (Nowa Zelandia)",
- "en-tt": "Angielski (Trynidad)",
- "en-us": "Angielski (Stany Zjednoczone)",
- "en-za": "Angielski (Afryka Południowa)",
- "es-ar": "Hiszpański (Argentyna)",
- "es-bo": "Hiszpański (Boliwia)",
- "es-cl": "Hiszpański (Chile)",
- "es-co": "Hiszpański (Kolumbia)",
- "es-cr": "Hiszpański (Kostaryka)",
- "es-do": "Hiszpański (Dominikana)",
- "es-ec": "Hiszpański (Ekwador)",
- "es-gt": "Hiszpański (Gwatemala)",
- "es-hn": "Hiszpański (Honduras)",
- "es-mx": "Hiszpański (Meksyk)",
- "es-ni": "Hiszpański (Nikaragua)",
- "es-pa": "Hiszpański (Panama)",
- "es-pe": "Hiszpański (Peru)",
- "es-pr": "Hiszpański (Portoryko)",
- "es-py": "Hiszpański (Paragwaj)",
- "es": "Hiszpański (Hiszpania)",
- "es-sv": "Hiszpański (Salwador)",
- "es-uy": "Hiszpański (Urugwaj)",
- "es-ve": "Hiszpański (Wenezuela)",
- "eu": "Baskijski",
- "fa": "Perski",
- "fr-be": "Francuski (Belgia)",
- "fr-ca": "Francuski (Kanada)",
- "fr-ch": "Francuski (Szwajcaria)",
- "fr-lu": "Francuski (Luksemburg)",
- "gd": "Gaelicki (Szkocja)",
- "id": "Indonezyjski",
- "it-ch": "Włoski (Szwajcaria)",
- "ji": "Jidysz",
- "ko": "Koreański",
- "mk": "Macedoński (BJRM)",
- "ms": "Malezyjski",
- "mt": "Maltański",
- "nl-be": "Holenderski (Belgia)",
- "pt-br": "Portugalski (Brazylia)",
- "ro-mo": "Rumuński (Republika Mołdawii)",
- "ro": "Rumuński",
- "ru-mo": "Rosyjski (Republika Mołdawii)",
- "sb": "Łużycki",
- "sv-fi": "Szwedzki (Finlandia)",
- "sx": "Sutu",
- "sz": "Sami (Lapoński)",
- "ts": "Tsonga",
- "ur": "Urdu",
- "ve": "Venda",
- "xh": "Xhosa",
- "zh-cn": "Chiński (ChRL)",
- "zh-hk": "Chiński (Hongkong)",
- "zh-sg": "Chiński (Singapur)",
- "zh-tw": "Chiński (Tajwan)",
- "zu": "Zuluski",
"a room": "pokój",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Wysłano wiadomość tekstową do +%(msisdn)s. Proszę wprowadzić kod w niej zawarty",
"%(targetName)s accepted an invitation.": "%(targetName)s zaakceptował(a) zaproszenie.",
@@ -240,33 +110,25 @@
"Active call (%(roomName)s)": "Aktywne połączenie (%(roomName)s)",
"Add email address": "Dodaj adres e-mail",
"Admin": "Administrator",
- "Admin tools": "Narzędzia administracyjne",
- "And %(count)s more...": "Oraz %(count)s więcej...",
- "VoIP": "VoIP",
+ "Admin Tools": "Narzędzia Administracyjne",
+ "VoIP": "VoIP (połączenie głosowe)",
"No Microphones detected": "Nie wykryto żadnego mikrofonu",
"No Webcams detected": "Nie wykryto żadnej kamerki internetowej",
"No media permissions": "Brak uprawnień do mediów",
- "You may need to manually permit Riot to access your microphone/webcam": "Możliwe, że będziesz musiał ręcznie pozwolić Riotowi na dostęp do twojego mikrofonu/kamerki",
+ "You may need to manually permit Riot to access your microphone/webcam": "Możliwe, że będziesz musiał ręcznie pozwolić Riotowi na dostęp do twojego mikrofonu/kamerki internetowej",
"Default Device": "Urządzenie domyślne",
"Advanced": "Zaawansowane",
"Always show message timestamps": "Zawsze pokazuj znaczniki czasu wiadomości",
"Authentication": "Uwierzytelnienie",
"Alias (optional)": "Alias (opcjonalnie)",
- "all room members": "wszyscy członkowie pokoju",
- "all room members, from the point they are invited": "wszyscy członkowie pokoju, od momentu ich zaproszenia",
- "all room members, from the point they joined": "wszyscy członkowie pokoju, od momentu ich dołączenia",
"%(items)s and %(remaining)s others": "%(items)s i %(remaining)s innych",
"%(items)s and one other": "%(items)s i jeszcze jeden",
"%(items)s and %(lastItem)s": "%(items)s i %(lastItem)s",
- "and %(overflowCount)s others...": "i %(overflowCount)s innych...",
- "and one other...": "i jeszcze jeden...",
"%(names)s and %(lastPerson)s are typing": "%(names)s i %(lastPerson)s piszą",
"%(names)s and one other are typing": "%(names)s i jeszcze ktoś piszą",
- "%(names)s and %(count)s others are typing": "%(names)s i %(count)s innych osób pisze",
"An email has been sent to": "Wysłano wiadomość e-mail do",
"A new password must be entered.": "Musisz wprowadzić nowe hasło.",
"%(senderName)s answered the call.": "%(senderName)s odebrał połączenie.",
- "anyone": "każdy",
"An error has occurred.": "Wystąpił błąd.",
"Anyone": "Każdy",
"Anyone who knows the room's link, apart from guests": "Każdy kto posiada łącze do pokoju, poza gośćmi",
@@ -277,6 +139,645 @@
"Autoplay GIFs and videos": "Automatycznie odtwarzaj GIFy i filmiki",
"%(senderName)s banned %(targetName)s.": "%(senderName)s zbanował %(targetName)s.",
"Ban": "Zbanuj",
- "Bans user with given id": "Zbanuj użytkownika o podanym id",
- "Blacklisted": "Umieszczono na czarnej liście"
+ "Bans user with given id": "Blokuje użytkownika o podanym ID",
+ "Blacklisted": "Umieszczono na czarnej liście",
+ "Add a widget": "Dodaj widżet",
+ "Allow": "Pozwól",
+ "Missing Media Permissions, click here to request.": "Brakuje uprawnień mediów. Kliknij tutaj, aby ich zażądać.",
+ "and %(count)s others...|other": "i %(count)s innych...",
+ "and %(count)s others...|one": "i jeden inny...",
+ "Bug Report": "Raport błędu",
+ "Bulk Options": "Masowe opcje",
+ "Call Timeout": "Upłynął limit czasu połączenia",
+ "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Nie można nawiązać połączenia z serwerem - proszę sprawdź twoje połączenie, upewnij się, że certyfikat SSL serwera jest zaufany, i że dodatki przeglądarki nie blokują żądania.",
+ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Nie można nawiązać połączenia z serwerem przy użyciu HTTP podczas korzystania z HTTPS dla bieżącej strony. Użyj HTTPS lub włącz niebezpieczne skrypty.",
+ "Can't load user settings": "Nie można załadować ustawień użytkownika",
+ "Cannot add any more widgets": "Nie można dodać już więcej widżetów",
+ "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s zmienił swoją nazwę z %(oldDisplayName)s na %(displayName)s.",
+ "%(senderName)s changed their profile picture.": "%(senderName)s zmienił swoje zdjęcie profilowe.",
+ "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s zmienił poziom mocy %(powerLevelDiffText)s.",
+ "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s zmienił nazwę pokoju na %(roomName)s.",
+ "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s usunął nazwę pokoju.",
+ "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s zmienił temat na \"%(topic)s\".",
+ "Changes to who can read history will only apply to future messages in this room": "Zmiany w dostępie do historii będą dotyczyć tylko przyszłych wiadomości w tym pokoju",
+ "Changes your display nickname": "Zmień swój pseudonim",
+ "Changes colour scheme of current room": "Zmień schemat kolorystyczny bieżącego pokoju",
+ "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.": "Zmiana hasła zresetuje klucze szyfrowania końcówka-do-końcówki na wszystkich urządzeniach, co spowoduje, że nie będzie się dało odczytać zaszyfrowanej historii czatu, chyba że najpierw wyeksportujesz swoje klucze i ponownie je zaimportujesz. W przyszłości będzie to poprawione.",
+ "Claimed Ed25519 fingerprint key": "Zażądano odcisk klucza Ed25519",
+ "Clear Cache and Reload": "Wyczyść pamięć podręczną i przeładuj",
+ "Clear Cache": "Wyczyść pamięć podręczną",
+ "Click here to join the discussion!": "Kliknij tutaj, aby dołączyć do dyskusji!",
+ "Click here to fix": "Kliknij tutaj, aby naprawić",
+ "Click to mute audio": "Kliknij, aby wyciszyć dźwięk",
+ "Click to mute video": "Kliknij, aby wyłączyć obraz",
+ "click to reveal": "kliknij, aby ujawnić",
+ "Click to unmute video": "Kliknij, aby włączyć obraz",
+ "Click to unmute audio": "Kliknij, aby włączyć dźwięk",
+ "Command error": "Błąd polecenia",
+ "Commands": "Polecenia",
+ "Conference call failed.": "Połączenie konferencyjne nie powiodło się.",
+ "Conference calling is in development and may not be reliable.": "Rozmowy konferencyjne są w trakcie opracowywania i mogą nie działać poprawnie.",
+ "Conference calls are not supported in encrypted rooms": "Połączenia konferencyjne nie są obsługiwane w zaszyfrowanych pokojach",
+ "Conference calls are not supported in this client": "Połączenia konferencyjne nie są obsługiwane w tym kliencie",
+ "Could not connect to the integration server": "Nie można połączyć się z serwerem integracji",
+ "Create a new chat or reuse an existing one": "Utwórz nowy czat lub użyj istniejącego",
+ "Curve25519 identity key": "Curve25519 klucz tożsamości",
+ "Custom": "Własny",
+ "Custom level": "Własny poziom",
+ "/ddg is not a command": "/ddg nie jest poleceniem",
+ "Deactivate Account": "Dezaktywuj konto",
+ "Deactivate my account": "Dezaktywuj moje konto",
+ "Decline": "Odrzuć",
+ "Decrypt %(text)s": "Odszyfruj %(text)s",
+ "Decryption error": "Błąd odszyfrowywania",
+ "Delete widget": "Usuń widżet",
+ "Default": "Domyślny",
+ "Define the power level of a user": "Zdefiniuj poziom mocy użytkownika",
+ "Device already verified!": "Urządzenie jest już zweryfikowane!",
+ "Device ID": "Identyfikator urządzenia",
+ "Device ID:": "Identyfikator urządzenia:",
+ "device id: ": "identyfikator urządzenia: ",
+ "Device key:": "Klucz urządzenia:",
+ "Devices will not yet be able to decrypt history from before they joined the room": "Urządzenia nie będą mogły odszyfrowywać historii sprzed dołączenia do pokoju",
+ "Direct chats": "Rozmowy bezpośrednie",
+ "Disable Notifications": "Wyłącz powiadomienia",
+ "disabled": "wyłączone",
+ "Disable inline URL previews by default": "Domyślnie wyłącz podgląd linków",
+ "Disinvite": "Anuluj zaproszenie",
+ "Display name": "Wyświetlana nazwa",
+ "Displays action": "Wyświetlane akcje",
+ "Do you want to load widget from URL:": "Czy chcesz załadować widżet z adresu:",
+ "Don't send typing notifications": "Nie wysyłaj powiadomienia o pisaniu",
+ "Download %(text)s": "Pobrano %(text)s",
+ "Drop File Here": "Upuść plik tutaj",
+ "Drop here to tag %(section)s": "Upuść tutaj by oznaczyć %(section)s",
+ "Ed25519 fingerprint": "Odcisk Ed25519",
+ "Edit": "Edycja",
+ "Email": "E-mail",
+ "Email address": "Adres e-mail",
+ "Email address (optional)": "Adres e-mail (opcjonalnie)",
+ "Email, name or matrix ID": "E-mail, nazwa lub matrix ID",
+ "Emoji": "Emoji",
+ "Enable automatic language detection for syntax highlighting": "Włącz automatyczne rozpoznawanie języka dla podświetlania składni",
+ "Enable encryption": "Włącz szyfrowanie",
+ "Enable Notifications": "Włącz powiadomienia",
+ "enabled": "włączone",
+ "Encrypted by a verified device": "Zaszyfrowane przez zweryfikowane urządzenie",
+ "Encrypted by an unverified device": "Zaszyfrowane przez niezweryfikowane urządzenie",
+ "Encrypted messages will not be visible on clients that do not yet implement encryption": "Szyfrowane wiadomości nie są widoczne w programach, które nie implementują szyfrowania",
+ "Encrypted room": "Pokój szyfrowany",
+ "Encryption is enabled in this room": "Szyfrowanie jest włączone w tym pokoju",
+ "Encryption is not enabled in this room": "Szyfrowanie nie jest włączone w tym pokoju",
+ "%(senderName)s ended the call.": "%(senderName)s zakończył połączenie.",
+ "End-to-end encryption information": "Informacje o szyfrowaniu końcówka-do-końcówki",
+ "End-to-end encryption is in beta and may not be reliable": "Szyfrowanie końcówka-do-końcówki jest w fazie beta i może nie być dopracowane",
+ "Enter Code": "Wpisz kod",
+ "Enter passphrase": "Wpisz frazę",
+ "Error decrypting attachment": "Błąd odszyfrowywania załącznika",
+ "Error: Problem communicating with the given homeserver.": "Błąd: wystąpił problem podczas komunikacji z podanym serwerem.",
+ "Event information": "Informacje zdarzenia",
+ "Existing Call": "Istniejące połączenie",
+ "Export": "Eksport",
+ "Export E2E room keys": "Eksportuj klucze E2E pokojów",
+ "Failed to ban user": "Nie udało się zbanować użytkownika",
+ "Failed to change power level": "Nie udało się zmienić poziomu mocy",
+ "Failed to delete device": "Nie udało się usunąć urządzenia",
+ "Failed to fetch avatar URL": "Nie udało się pobrać awatara",
+ "Failed to join room": "Nie udało się dołączyć do pokoju",
+ "Failed to kick": "Nie udało się wykopać użytkownika",
+ "Failed to leave room": "Nie udało się opuścić pokoju",
+ "Failed to load timeline position": "Nie udało się wczytać pozycji osi czasu",
+ "Failed to lookup current room": "Nie udało się wyszukać aktualnego pokoju",
+ "Failed to mute user": "Nie udało się wyciszyć użytkownika",
+ "Failed to reject invite": "Nie udało się odrzucić zaproszenia",
+ "Failed to reject invitation": "Nie udało się odrzucić zaproszenia",
+ "Failed to save settings": "Nie udało się zapisać ustawień",
+ "Failed to send email": "Nie udało się wysłać wiadomości e-mail",
+ "Failed to send request.": "Nie udało się wysłać żądania.",
+ "Failed to set avatar.": "Nie udało się ustawić awataru.",
+ "Failed to set display name": "Nie udało się ustawić wyświetlanej nazwy",
+ "Failed to set up conference call": "Nie udało się ustanowić połączenia konferencyjnego",
+ "Failed to toggle moderator status": "Nie udało się przełączyć na stan moderatora",
+ "Failed to unban": "Nie udało się odbanować",
+ "Failed to upload file": "Nie udało się wgrać pliku",
+ "Failed to upload profile picture!": "Nie udało się wgrać zdjęcia profilowego!",
+ "Failed to verify email address: make sure you clicked the link in the email": "Nie udało się zweryfikować adresu e-mail: upewnij się że kliknąłeś w link w e-mailu",
+ "Failure to create room": "Nie udało się stworzyć pokoju",
+ "Favourites": "Ulubione",
+ "Fill screen": "Wypełnij ekran",
+ "Filter room members": "Filtruj uczestników pokoju",
+ "Forget room": "Zapomnij pokój",
+ "Forgot your password?": "Zapomniałeś hasła?",
+ "For security, this session has been signed out. Please sign in again.": "Ze względów bezpieczeństwa ta sesja została wylogowana. Zaloguj się jeszcze raz.",
+ "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.": "Ze względów bezpieczeństwa, wylogowanie skasuje z tej przeglądarki wszystkie klucze szyfrowania końcówka-do-końcówki. Jeśli chcesz móc odszyfrować swoje historie konwersacji z przyszłych sesji Riot-a, proszę wyeksportuj swoje klucze pokojów do bezpiecznego miejsca.",
+ "Found a bug?": "Znalazłeś błąd?",
+ "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s z %(fromPowerLevel)s na %(toPowerLevel)s",
+ "Guest access is disabled on this Home Server.": "Dostęp dla gości jest wyłączony na tym serwerze.",
+ "Deops user with given id": "Usuwa prawa administratora użytkownikowi o danym ID",
+ "Guests cannot join this room even if explicitly invited.": "Goście nie mogą dołączać do tego pokoju, nawet jeśli zostali specjalnie zaproszeni.",
+ "Hangup": "Rozłącz się",
+ "Hide avatar and display name changes": "Ukryj zmiany awatarów i nazw ekranowych",
+ "Hide Text Formatting Toolbar": "Ukryj pasek formatowania tekstu",
+ "Home": "Strona startowa",
+ "Homeserver is": "Serwer domowy to",
+ "Identity Server is": "Serwer Identity to",
+ "I have verified my email address": "Zweryfikowałem swój adres e-mail",
+ "Import": "Importuj",
+ "Import E2E room keys": "Importuj klucze pokoju E2E",
+ "Incoming call from %(name)s": "Połączenie przychodzące od %(name)s",
+ "Incoming video call from %(name)s": "Przychodzące połączenie wideo od %(name)s",
+ "Incoming voice call from %(name)s": "Przychodzące połączenie głosowe od %(name)s",
+ "Incorrect username and/or password.": "Nieprawidłowa nazwa użytkownika i/lub hasło.",
+ "Incorrect verification code": "Nieprawidłowy kod weryfikujący",
+ "Integrations Error": "Błąd integracji",
+ "Interface Language": "Język interfejsu",
+ "Invalid alias format": "Nieprawidłowy format aliasu",
+ "Invalid address format": "Nieprawidłowy format adresu",
+ "Invalid Email Address": "Nieprawidłowy adres e-mail",
+ "Invalid file%(extra)s": "Nieprawidłowy plik %(extra)s",
+ "%(senderName)s invited %(targetName)s.": "%(senderName)s zaprosił %(targetName)s.",
+ "Invite new room members": "Zaproś nowych członków do pokoju",
+ "Invited": "Zaproszony",
+ "Invites": "Zaproszenia",
+ "Invites user with given id to current room": "Zaprasza użytkownika o danym ID do obecnego pokoju",
+ "'%(alias)s' is not a valid format for an address": "'%(alias)s' nie jest poprawnym formatem adresu",
+ "'%(alias)s' is not a valid format for an alias": "'%(alias)s' nie jest poprawnym formatem aliasu",
+ "%(displayName)s is typing": "%(displayName)s pisze",
+ "Sign in with": "Zaloguj się używając",
+ "Join as voice or video.": "Dołącz głosowo lub przez wideo.",
+ "Join Room": "Dołącz do pokoju",
+ "%(targetName)s joined the room.": "%(targetName)s dołączył do pokoju.",
+ "Joins room with given alias": "Dołącz do pokoju o podanym aliasie",
+ "Jump to first unread message.": "Przeskocz do pierwszej nieprzeczytanej wiadomości.",
+ "%(senderName)s kicked %(targetName)s.": "%(senderName)s wyrzucił %(targetName)s.",
+ "Kick": "Wyrzuć",
+ "Kicks user with given id": "Wyrzuca użytkownika o danym ID",
+ "Labs": "Laboratoria",
+ "Last seen": "Ostatnio widziany",
+ "Leave room": "Opuść pokój",
+ "%(targetName)s left the room.": "%(targetName)s opuścił pokój.",
+ "Level:": "Poziom:",
+ "Publish this room to the public in %(domain)s's room directory?": "Czy opublikować ten pokój dla ogółu w spisie pokojów domeny %(domain)s?",
+ "Local addresses for this room:": "Lokalne adresy dla tego pokoju:",
+ "Logged in as:": "Zalogowany jako:",
+ "Login as guest": "Zaloguj jako gość",
+ "Logout": "Wyloguj",
+ "Low priority": "Niski priorytet",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s uczynił przyszłą historię pokoju widoczną dla wszyscy członkowie pokoju, od momentu ich zaproszenia.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s uczynił przyszłą historię pokoju widoczną dla wszyscy członkowie pokoju, od momentu ich dołączenia.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s uczynił przyszłą historię pokoju widoczną dla wszyscy członkowie pokoju.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s uczynił przyszłą historię pokoju widoczną dla kazdego.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s uczynił przyszłą historię pokoju widoczną dla nieznany (%(visibility)s).",
+ "Manage Integrations": "Zarządzaj integracjami",
+ "Markdown is disabled": "Markdown jest wyłączony",
+ "Markdown is enabled": "Markdown jest włączony",
+ "matrix-react-sdk version:": "Wersja matrix-react-sdk:",
+ "Members only": "Tylko dla członków",
+ "Message not sent due to unknown devices being present": "Wiadomość nie została wysłana z powodu obecności nieznanych urządzeń",
+ "Missing room_id in request": "Brakujące room_id w żądaniu",
+ "Missing user_id in request": "Brakujące user_id w żądaniu",
+ "Mobile phone number": "Numer telefonu komórkowego",
+ "Mobile phone number (optional)": "Numer telefonu komórkowego (opcjonalne)",
+ "Moderator": "Moderator",
+ "%(serverName)s Matrix ID": "%(serverName)s Matrix ID",
+ "Name": "Imię",
+ "Never send encrypted messages to unverified devices from this device": "Nigdy nie wysyłaj zaszyfrowanych wiadomości do niezweryfikowanych urządzeń z tego urządzenia",
+ "Never send encrypted messages to unverified devices in this room from this device": "Nigdy nie wysyłaj niezaszyfrowanych wiadomości do niezweryfikowanych urządzeń z tego urządzenia",
+ "New address (e.g. #foo:%(localDomain)s)": "Nowy adres (np. #foo:%(localDomain)s)",
+ "New password": "Nowe hasło",
+ "New passwords don't match": "Nowe hasła nie zgadzają się",
+ "New passwords must match each other.": "Nowe hasła muszą się zgadzać.",
+ "none": "żaden",
+ "not set": "nieustawiony",
+ "not specified": "nieokreślony",
+ "(not supported by this browser)": "(niewspierany przez tę przeglądarkę)",
+ "": "",
+ "AM": "AM",
+ "PM": "PM",
+ "NOT verified": "NIEzweryfikowany",
+ "NOTE: Apps are not end-to-end encrypted": "UWAGA: Aplikacje nie są szyfrowane metodą użytkownik-użytkownik",
+ "No devices with registered encryption keys": "Brak urządzeń z zarejestrowanymi kluczami szyfrującymi",
+ "No display name": "Brak nazwy ekranowej",
+ "No more results": "Nie ma więcej wyników",
+ "No results": "Brak wyników",
+ "No users have specific privileges in this room": "Żadni użytkownicy w tym pokoju nie mają specyficznych uprawnień",
+ "olm version:": "wersja olm:",
+ "Once encryption is enabled for a room it cannot be turned off again (for now)": "Po włączeniu szyfrowania w pokoju nie można go ponownie wyłączyć (póki co)",
+ "Once you've followed the link it contains, click below": "Po kliknięciu łącza, które jest tam zawarte kliknij poniżej",
+ "Only people who have been invited": "Tylko ludzie, którzy zostali zaproszeni",
+ "Otherwise, click here to send a bug report.": "W przeciwnym razie, kliknij tutaj by wysłać raport o błędzie.",
+ "Password": "Hasło",
+ "Password:": "Hasło:",
+ "Passwords can't be empty": "Hasła nie mogą być puste",
+ "People": "Ludzie",
+ "Permissions": "Uprawnienia",
+ "Phone": "Telefon",
+ "%(senderName)s placed a %(callType)s call.": "%(senderName)s rozpoczął połączenie %(callType)s.",
+ "Please check your email and click on the link it contains. Once this is done, click continue.": "Sprawdź swój e-mail i kliknij link w nim zawarty. Kiedy już to zrobisz, kliknij \"kontynuuj\".",
+ "Power level must be positive integer.": "Poziom uprawnień musi być liczbą dodatnią.",
+ "Press to start a chat with someone": "Naciśnij , by rozpocząć rozmowę z kimś",
+ "Privacy warning": "Ostrzeżenie o prywatności",
+ "Private Chat": "Rozmowa prywatna",
+ "Privileged Users": "Użytkownicy uprzywilejowani",
+ "Profile": "Profil",
+ "Public Chat": "Rozmowa publiczna",
+ "Reason": "Powód",
+ "Reason: %(reasonText)s": "Powód: %(reasonText)s",
+ "Revoke Moderator": "Usuń prawa moderatorskie",
+ "Revoke widget access": "Usuń dostęp do widżetów",
+ "Refer a friend to Riot:": "Zaproś znajomego do Riota:",
+ "Register": "Rejestracja",
+ "%(targetName)s rejected the invitation.": "%(targetName)s odrzucił zaproszenie.",
+ "Reject invitation": "Odrzuć zaproszenie",
+ "Rejoin": "Dołącz ponownie",
+ "Remote addresses for this room:": "Adresy zdalne dla tego pokoju:",
+ "Remove Contact Information?": "Usunąć dane kontaktowe?",
+ "%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s usunął swoją nazwę ekranową (%(oldDisplayName)s).",
+ "%(senderName)s removed their profile picture.": "%(senderName)s usunął swoje zdjęcie profilowe.",
+ "Remove %(threePid)s?": "Usunąć %(threePid)s?",
+ "Hide Apps": "Ukryj aplikacje",
+ "%(senderName)s requested a VoIP conference.": "%(senderName)s zażądał grupowego połączenia głosowego VoIP.",
+ "Report it": "Zgłoś",
+ "Results from DuckDuckGo": "Wyniki z DuckDuckGo",
+ "Return to app": "Wróć do aplikacji",
+ "Return to login screen": "Wróć do ekranu logowania",
+ "Riot does not have permission to send you notifications - please check your browser settings": "Riot nie ma uprawnień, by wysyłać ci powiadomienia - sprawdź ustawienia swojej przeglądarki",
+ "Hide join/leave messages (invites/kicks/bans unaffected)": "Ukryj wiadomości o dołączeniu/opuszczeniu (nie obejmuje zaproszeń/wyrzuceń/banów)",
+ "Hide read receipts": "Ukryj potwierdzenia odczytu",
+ "Historical": "Historyczne",
+ "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.": "Resetowanie hasła zresetuje klucze szyfrowania końcówka-do-końcówki na wszystkich urządzeniach, co spowoduje, że nie będzie się dało odczytać zaszyfrowanej historii czatu, chyba że najpierw wyeksportujesz swoje klucze i ponownie je zaimportujesz. W przyszłości będzie to poprawione.",
+ "Riot was not given permission to send notifications - please try again": "Riot nie otrzymał uprawnień do wysyłania powiadomień - proszę spróbuj ponownie",
+ "riot-web version:": "wersja riot-web:",
+ "Room %(roomId)s not visible": "Pokój %(roomId)s nie jest widoczny",
+ "Room Colour": "Kolor pokoju",
+ "Room contains unknown devices": "Pokój zawiera nieznane urządzenia",
+ "Room name (optional)": "Nazwa pokoju (opcjonalna)",
+ "%(roomName)s does not exist.": "%(roomName)s nie istnieje.",
+ "%(roomName)s is not accessible at this time.": "%(roomName)s nie jest dostępny w tym momencie.",
+ "Rooms": "Pokoje",
+ "Save": "Zapisz",
+ "Scroll to bottom of page": "Przewiń do końca strony",
+ "Scroll to unread messages": "Przewiń do nieprzeczytanych wiadomości",
+ "Search failed": "Wyszukiwanie nie powiodło się",
+ "Searches DuckDuckGo for results": "Przeszukaj DuckDuckGo dla wyników",
+ "Seen by %(userName)s at %(dateTime)s": "Widziane przez %(userName)s o %(dateTime)s",
+ "Send a message (unencrypted)": "Wyślij wiadomość (nieszyfrowaną)",
+ "Send an encrypted message": "Wyślij szyfrowaną wiadomość",
+ "Send anyway": "Wyślij mimo to",
+ "Sender device information": "Informacja o urządzeniu nadawcy",
+ "Send Invites": "Wyślij zaproszenie",
+ "Send Reset Email": "Wyślij e-mail resetujący hasło",
+ "sent an image": "wysłano obraz",
+ "%(senderDisplayName)s sent an image.": "%(senderDisplayName)s wysłał obraz.",
+ "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s wysłał zaproszenie do %(targetDisplayName)s do dołączenia do pokoju.",
+ "sent a video": "wysłał wideo",
+ "Server error": "Błąd serwera",
+ "Server may be unavailable or overloaded": "Serwer może być niedostępny lub przeciążony",
+ "Server may be unavailable, overloaded, or search timed out :(": "Serwer może być niedostępny, przeciążony, lub upłynął czas wyszukiwania :(",
+ "Server may be unavailable, overloaded, or the file too big": "Serwer może być niedostępny, przeciążony, lub plik jest za duży",
+ "Server may be unavailable, overloaded, or you hit a bug.": "Serwer może być niedostępny, przeciążony, lub trafiłeś na błąd.",
+ "Server unavailable, overloaded, or something else went wrong.": "Serwer może być niedostępny, przeciążony, lub coś innego poszło źle.",
+ "Session ID": "Identyfikator sesji",
+ "%(senderName)s set a profile picture.": "%(senderName)s ustawił zdjęcie profilowe.",
+ "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s ustawił swoją nazwę na %(displayName)s.",
+ "Sets the room topic": "Ustaw temat pokoju",
+ "Show Apps": "Pokaż aplikacje",
+ "Show panel": "Pokaż panel",
+ "Show Text Formatting Toolbar": "Pokaż pasek narzędzi formatowania tekstu",
+ "Show timestamps in 12 hour format (e.g. 2:30pm)": "Pokaż czas w formacie 12-sto godzinnym (n.p. 2:30pm)",
+ "Signed Out": "Wylogowano",
+ "Sign in": "Zaloguj",
+ "Sign out": "Wyloguj",
+ "since the point in time of selecting this option": "od momentu zaznaczenia tej opcji",
+ "since they joined": "od momentu dołączenia",
+ "since they were invited": "od momentu zaproszenia",
+ "Some of your messages have not been sent.": "Niektóre z twoich wiadomości nie zostały wysłane.",
+ "Someone": "Ktoś",
+ "Sorry, this homeserver is using a login which is not recognised ": "Przepraszamy, ten serwer używa loginu który nie jest rozpoznawany ",
+ "Start a chat": "Rozpocznij rozmowę",
+ "Start authentication": "Rozpocznij uwierzytelnienie",
+ "Start Chat": "Rozpocznij rozmowę",
+ "Submit": "Wyślij",
+ "Success": "Sukces",
+ "Tagged as: ": "Oznaczone jako: ",
+ "The default role for new room members is": "Domyślną rolą dla nowych członków pokoju jest",
+ "The main address for this room is": "Głównym adresem dla tego pokoju jest",
+ "The maximum permitted number of widgets have already been added to this room.": "Do tego pokoju dodano już maksymalną dozwoloną liczbę widżetów.",
+ "The phone number entered looks invalid": "Wprowadzony numer telefonu wygląda na niepoprawny",
+ "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Podany klucz podpisu odpowiada kluczowi podpisania otrzymanemu z urządzenia %(userId)s %(deviceId)s. Urządzenie oznaczone jako zweryfikowane.",
+ "This email address is already in use": "Podany adres e-mail jest już w użyciu",
+ "This email address was not found": "Podany adres e-mail nie został znaleziony",
+ "%(actionVerb)s this person?": "%(actionVerb)s tą osobę?",
+ "Must be viewing a room": "Musi być w trakcie wyświetlania pokoju",
+ "The email address linked to your account must be entered.": "Musisz wpisać adres e-mail połączony z twoim kontem.",
+ "The file '%(fileName)s' exceeds this home server's size limit for uploads": "Rozmiar folderu '%(fileName)s' przekracza możliwy limit do przesłania na serwer domowy",
+ "The file '%(fileName)s' failed to upload": "Przesyłanie folderu '%(fileName)s' nie powiodło się",
+ "The remote side failed to pick up": "Strona zdalna nie odebrała",
+ "This room has no local addresses": "Ten pokój nie ma lokalnych adresów",
+ "This room is not recognised.": "Ten pokój nie został rozpoznany.",
+ "These are experimental features that may break in unexpected ways": "Te funkcje są eksperymentalne i może wystąpić błąd",
+ "The visibility of existing history will be unchanged": "Widoczność dotychczasowej historii nie zostanie zmieniona",
+ "This doesn't appear to be a valid email address": "Ten adres e-mail zdaje się nie być poprawny",
+ "This is a preview of this room. Room interactions have been disabled": "To jest podgląd tego pokoju. Interakcje w pokoju zostały wyłączone",
+ "This phone number is already in use": "Ten numer telefonu jest już zajęty",
+ "This room": "Ten pokój",
+ "This room is not accessible by remote Matrix servers": "Ten pokój nie jest dostępny na zdalnych serwerach Matrix",
+ "This room's internal ID is": "Wewnętrzne ID tego pokoju to",
+ "to demote": "żeby zmniejszyć priorytet",
+ "To get started, please pick a username!": "Aby rozpocząć, wybierz nazwę użytkownika!",
+ "To reset your password, enter the email address linked to your account": "Aby zresetować swoje hasło, wpisz adres e-mail powiązany z twoim kontem",
+ "to restore": "żeby przywrócić",
+ "to tag direct chat": "żeby oznaczyć rozmowę bezpośrednią",
+ "Turn Markdown off": "Wyłącz Markdown",
+ "Turn Markdown on": "Włącz Markdown",
+ "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s włączył szyfrowanie użytkownik-użytkownik (algorithm %(algorithm)s).",
+ "Unable to add email address": "Nie można dodać adresu e-mail",
+ "Unable to create widget.": "Nie można utworzyć widżetu.",
+ "Unable to remove contact information": "Nie można usunąć informacji kontaktowych",
+ "Unable to verify email address.": "Weryfikacja adresu e-mail nie powiodła się.",
+ "%(senderName)s unbanned %(targetName)s.": "%(senderName)s odblokował/a %(targetName)s.",
+ "Unable to capture screen": "Nie można zrobić zrzutu ekranu",
+ "Unable to enable Notifications": "Nie można włączyć powiadomień",
+ "Unable to load device list": "Nie można załadować listy urządzeń",
+ "Undecryptable": "Odszyfrowanie niemożliwe",
+ "Unencrypted room": "Pokój nieszyfrowany",
+ "This Home Server does not support login using email address.": "Ten serwer domowy nie obsługuje logowania się poprzez adres e-mail.",
+ "This invitation was sent to an email address which is not associated with this account:": "To zaproszenie zostało wysłane na adres e-mail, który nie jest połączony z tym kontem:",
+ "to favourite": "żeby dodać do ulubionych",
+ "To use it, just wait for autocomplete results to load and tab through them.": "Żeby z niego skorzystać, należy poczekać na załadowanie się wyników autouzupełnienia i naciskać przycisk \"Tab\", by je przewijać.",
+ "Unencrypted message": "Niezaszyfrowana wiadomość",
+ "unknown caller": "nieznany dzwoniący",
+ "unknown device": "nieznane urządzenie",
+ "Unknown room %(roomId)s": "Nieznany pokój %(roomId)s",
+ "Unmute": "Wyłącz wyciszenie",
+ "Unnamed Room": "Pokój bez nazwy",
+ "Unrecognised command:": "Nierozpoznane polecenie:",
+ "Unrecognised room alias:": "Nierozpoznany alias pokoju:",
+ "Unverified": "Niezweryfikowany",
+ "Uploading %(filename)s and %(count)s others|zero": "Przesyłanie %(filename)s",
+ "Uploading %(filename)s and %(count)s others|one": "Przesyłanie %(filename)s oraz %(count)s innych",
+ "Uploading %(filename)s and %(count)s others|other": "Przesyłanie %(filename)s oraz %(count)s innych",
+ "uploaded a file": "przesłał plik",
+ "Upload avatar": "Prześlij awatar",
+ "Upload Failed": "Błąd przesyłania",
+ "Upload Files": "Prześlij pliki",
+ "Upload new:": "Prześlij nowy:",
+ "Use with caution": "Używać ostrożnie",
+ "%(user)s is a": "%(user)s jest",
+ "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (moc uprawnień administratorskich %(powerLevelNumber)s)",
+ "Username invalid: %(errMessage)s": "Niepoprawna nazwa użytkownika: %(errMessage)s",
+ "Verification Pending": "Oczekuje weryfikacji",
+ "Verification": "Weryfikacja",
+ "verified": "zweryfikowany",
+ "Verified": "Zweryfikowany",
+ "Verified key": "Zweryfikowany klucz",
+ "Video call": "Rozmowa wideo",
+ "Voice call": "Rozmowa głosowa",
+ "VoIP conference finished.": "Zakończono grupowe połączenie głosowe VoIP.",
+ "VoIP conference started.": "Rozpoczęto grupowe połączenie głosowe VoIP.",
+ "VoIP is unsupported": "Rozmowy głosowe VoIP nie są obsługiwane",
+ "(could not connect media)": "(brak możliwości połączenia się z mediami)",
+ "(no answer)": "(brak odpowiedzi)",
+ "(unknown failure: %(reason)s)": "(nieznany błąd: %(reason)s)",
+ "(warning: cannot be disabled again!)": "(ostrzeżenie: brak możliwości ponownego dezaktywowania!)",
+ "WARNING: Device already verified, but keys do NOT MATCH!": "OSTRZEŻENIE: Urządzenie już zweryfikowane, ale klucze NIE PASUJĄ DO SIEBIE!",
+ "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!": "OSTRZEŻENIE: BŁĄD WERYFIKACJI KLUCZA! Klucz podpisujący dla %(userId)s i urządzenia %(deviceId)s to \"%(fprint)s\", który nie pasuje do dostarczonego klucza \"%(fingerprint)s\". To może oznaczać, że twoje komunikaty są przejmowane!",
+ "Who can access this room?": "Kto może uzyskać dostęp do tego pokoju?",
+ "Who would you like to add to this room?": "Kogo chciał(a)byś dodać do tego pokoju?",
+ "Who would you like to communicate with?": "Z kim chciał(a)byś się komunikować?",
+ "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s wycofał(a) zaproszenie %(targetName)s.",
+ "Would you like to accept or decline this invitation?": "Czy chcesz zaakceptować czy odrzucić to zaproszenie?",
+ "You already have existing direct chats with this user:": "Masz już istniejącą bezpośrednią konwersację z tym użytkownikiem:",
+ "You are already in a call.": "Jesteś już w trakcie połączenia.",
+ "You are not in this room.": "Nie jesteś w tym pokoju.",
+ "You do not have permission to do that in this room.": "Nie masz pozwolenia na wykonanie tej akcji w tym pokoju.",
+ "You're not in any rooms yet! Press to make a room or to browse the directory": "Nie jesteś jeszcze w żadnym pokoju! Naciśnij , aby stworzyć pokój lub , żeby przeszukać katalog",
+ "You are trying to access %(roomName)s.": "Próbujesz uzyskać dostęp do %(roomName)s.",
+ "You cannot place a call with yourself.": "Nie możesz wykonać połączenia do siebie.",
+ "You cannot place VoIP calls in this browser.": "Nie możesz przeprowadzić rozmowy głosowej VoIP w tej przeglądarce.",
+ "You do not have permission to post to this room": "Nie jesteś uprawniony do pisania w tym pokoju",
+ "You have been banned from %(roomName)s by %(userName)s.": "Zostałeś permanentnie usunięty z pokoju %(roomName)s przez %(userName)s.",
+ "You have been invited to join this room by %(inviterName)s": "Zostałeś zaproszony do dołączenia do tego pokoju przez %(inviterName)s",
+ "You have been kicked from %(roomName)s by %(userName)s.": "Zostałeś usunięty z %(roomName)s przez %(userName)s.",
+ "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Wylogowałeś się ze wszystkich urządzeń i nie będziesz już otrzymywał powiadomień push. Aby ponownie aktywować powiadomienia zaloguj się ponownie na każdym urządzeniu",
+ "You have disabled URL previews by default.": "Masz domyślnie wyłączone podglądy linków.",
+ "You have no visible notifications": "Nie masz widocznych powiadomień",
+ "You may wish to login with a different account, or add this email to this account.": "Możesz chcieć zalogować się z innego konta lub dodać e-mail do tego konta.",
+ "You must register to use this functionality": "Musisz się zarejestrować aby móc używać tej funkcji",
+ "You need to be able to invite users to do that.": "Aby to zrobić musisz mieć możliwość zapraszania użytkowników.",
+ "You need to be logged in.": "Musisz być zalogowany.",
+ "You need to enter a user name.": "Musisz wpisać nazwę użytkownika.",
+ "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Twój adres e-mail zdaje się nie być powiązany z żadnym Matrix ID na tym serwerze domowym.",
+ "Your password has been reset": "Twoje hasło zostało zresetowane",
+ "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Zmiana Twojego hasła powiodła się. Nie będziesz otrzymywał powiadomień push na inne urządzenia aż do momentu ponownego zalogowania się na nich",
+ "You seem to be in a call, are you sure you want to quit?": "Wygląda na to, że prowadzisz z kimś rozmowę; jesteś pewien że chcesz wyjść?",
+ "You seem to be uploading files, are you sure you want to quit?": "Wygląda na to, że jesteś w trakcie przesyłania plików; jesteś pewien, że chcesz wyjść?",
+ "You should not yet trust it to secure data": "Na chwilę obecną nie powinieneś ufać mu w kwestii zabezpieczenia danych",
+ "Set a display name:": "Ustaw nazwę ekranową:",
+ "This server does not support authentication with a phone number.": "Ten serwer nie wspiera autentykacji za pomocą numeru telefonu.",
+ "This doesn't look like a valid email address.": "To nie wygląda na poprawny adres e-mail.",
+ "This doesn't look like a valid phone number.": "To nie wygląda na poprawny numer telefonu.",
+ "User names may only contain letters, numbers, dots, hyphens and underscores.": "Nazwa użytkownika może zawierać tylko litery, cyfry, kropki, myślniki i podkreślenia.",
+ "An unknown error occurred.": "Wystąpił nieznany błąd.",
+ "I already have an account": "Posiadam już konto",
+ "Share message history with new users": "Udostępnij historię wiadomości nowym użytkownikom",
+ "Encrypt room": "Zaszyfruj pokój",
+ "There are no visible files in this room": "Nie ma widocznych plików w tym pokoju",
+ "Connectivity to the server has been lost.": "Połączenie z serwerem zostało utracone.",
+ "bold": "wytłuszczenie",
+ "italic": "kursywa",
+ "underline": "podkreślenie",
+ "code": "kod",
+ "quote": "cytat",
+ "Create": "Utwórz",
+ "Online": "Dostępny",
+ "Offline": "Niedostępny",
+ "Add an Integration": "Dodaj integrację",
+ "Token incorrect": "Niepoprawny token",
+ "This action is irreversible.": "Ta akcja jest nieodwracalna.",
+ "To link to a room it must have an address.": "Aby móc stworzyć link do pokoju musi on mieć swój adres.",
+ "unencrypted": "niezaszyfrowany",
+ "Unknown (user, device) pair:": "Nieznana para (użytkownik, urządzenie):",
+ "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Nie będziesz mógł cofnąć tej zmiany, ponieważ nadajesz użytkownikowi uprawnienia administratorskie równe Twoim.",
+ "Your home server does not support device management.": "Twój serwer domowy nie obsługuje zarządzania urządzeniami.",
+ "Unbans user with given id": "Odblokowuje użytkownika o danym ID",
+ "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Nie udało się upewnić, że adres na który to zaproszenie zostało wysłane zgadza się z tym adresem, który jest powiązany z twoim kontem.",
+ "%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s, %(day)s %(monthName)s %(time)s",
+ "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(day)s %(monthName)s %(fullYear)s %(time)s",
+ "%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
+ "Upload an avatar:": "Prześlij awatar:",
+ "Missing password.": "Brakujące hasło.",
+ "Passwords don't match.": "Hasła nie zgadzają się.",
+ "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Za krótkie hasło (min. %(MIN_PASSWORD_LENGTH)s).",
+ "An error occurred: %(error_string)s": "Wystąpił błąd: %(error_string)s",
+ "Make Moderator": "Nadaj uprawnienia moderatora",
+ "Make this room private": "Nadaj temu pokojowi charakter prywatny",
+ "Sent messages will be stored until your connection has returned.": "Wysłane wiadomości będą przechowywane aż do momentu odzyskania połączenia.",
+ "Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Wyślij ponownie wszystkie lub anuluj wszystkie teraz. Możesz też wybrać poszczególne wiadomości aby wysłać je ponownie lub anulować.",
+ "(~%(count)s results)|one": "(~%(count)s wynik)",
+ "(~%(count)s results)|other": "(~%(count)s wyników)",
+ "Active call": "Aktywna rozmowa",
+ "strike": "przekreślenie",
+ "bullet": "lista",
+ "numbullet": "lista numerowana",
+ "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)s dołączyli do pokoju %(repeats)s razy",
+ "%(oneUser)sjoined %(repeats)s times": "%(oneUser)s dołączył(a) do pokoju %(repeats)s razy",
+ "%(severalUsers)sjoined": "%(severalUsers)s dołączyli",
+ "%(oneUser)sjoined": "%(oneUser)s dołączył(a)",
+ "%(severalUsers)sleft %(repeats)s times": "%(severalUsers)s opuścili pokój %(repeats)s razy",
+ "%(oneUser)sleft %(repeats)s times": "%(oneUser)s opuścił(a) pokój %(repeats)s razy",
+ "%(severalUsers)sleft": "%(severalUsers)s opuścili pokój",
+ "%(oneUser)sleft": "%(oneUser)s opuścił(a) pokój",
+ "%(severalUsers)sjoined and left %(repeats)s times": "%(severalUsers)s dołączyli i opuścili pokój %(repeats)s razy",
+ "%(oneUser)sjoined and left %(repeats)s times": "%(oneUser)s dołączył(a) i opuścił(a) pokój %(repeats)s razy",
+ "%(severalUsers)sjoined and left": "%(severalUsers)s dołączyli i opuścili pokój",
+ "%(oneUser)sjoined and left": "%(oneUser)s dołączył(a) i opuścił(a) pokój",
+ "%(severalUsers)sleft and rejoined %(repeats)s times": "%(severalUsers)s opuścili i ponownie dołączyli do pokoju %(repeats)s razy",
+ "%(oneUser)sleft and rejoined %(repeats)s times": "%(oneUser)s opuścił(a) i ponownie dołączył(a) do pokoju %(repeats)s razy",
+ "%(severalUsers)sleft and rejoined": "%(severalUsers)s opuścili i ponownie dołączyli do pokoju",
+ "%(oneUser)sleft and rejoined": "%(oneUser)s opuścił(a) i dołączył(a) ponownie do pokoju",
+ "%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)s odrzucili swoje zaproszenia %(repeats)s razy",
+ "%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)sodrzucił swoje zaproszenie %(repeats)s razy",
+ "%(severalUsers)srejected their invitations": "%(severalUsers)sodrzucili swoje zaproszenia",
+ "%(oneUser)srejected their invitation": "%(oneUser)sodrzucił swoje zaproszenie",
+ "%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)swycofali swoje zaproszenia %(repeats)s razy",
+ "%(oneUser)shad their invitation withdrawn %(repeats)s times": "%(oneUser)swycofał swoje zaproszenie %(repeats)s razy",
+ "%(severalUsers)shad their invitations withdrawn": "%(severalUsers)swycofali swoje zaproszenia",
+ "%(oneUser)shad their invitation withdrawn": "%(oneUser)swycofał swoje zaproszenie",
+ "were invited %(repeats)s times": "zostali zaproszeni %(repeats)s razy",
+ "was invited %(repeats)s times": "został(a) zaproszony/a %(repeats)s razy",
+ "were invited": "zostali zaproszeni",
+ "was invited": "został(a) zaproszony/a",
+ "were banned %(repeats)s times": "zostali zablokowani %(repeats)s times",
+ "was banned %(repeats)s times": "został(a) zablokowany/a %(repeats)s razy",
+ "were banned": "zostali zablokowani",
+ "was banned": "został(a) zablokowany/a",
+ "were unbanned %(repeats)s times": "zostali odblokowani %(repeats)s razy",
+ "was unbanned %(repeats)s times": "został(a) odblokowany/a %(repeats)s razy",
+ "were unbanned": "zostali odblokowani",
+ "was unbanned": "został odblokowany",
+ "were kicked %(repeats)s times": "zostali usunięci %(repeats)s razy",
+ "was kicked %(repeats)s times": "został usunięty %(repeats)s razy",
+ "were kicked": "zostali usunięci",
+ "was kicked": "został usunięty",
+ "%(severalUsers)schanged their name %(repeats)s times": "%(severalUsers)s zmienili swoją nazwę %(repeats)s razy",
+ "%(oneUser)schanged their name %(repeats)s times": "%(oneUser)s zmienił(a) swoją nazwę %(repeats)s razy",
+ "%(severalUsers)schanged their name": "%(severalUsers)szmienili swoje nazwy",
+ "%(oneUser)schanged their name": "%(oneUser)s zmienił(a) swoją nazwę",
+ "%(severalUsers)schanged their avatar %(repeats)s times": "%(severalUsers)s zmienili swoje zdjęcia profilowe %(repeats)s razy",
+ "%(oneUser)schanged their avatar %(repeats)s times": "%(oneUser)s zmienił(a) swoje zdjęcie profilowe %(repeats)s razy",
+ "%(severalUsers)schanged their avatar": "%(severalUsers)s zmienili swoje zdjęcia profilowe",
+ "%(oneUser)schanged their avatar": "%(oneUser)s zmienił(a) swoje zdjęcie profilowe",
+ "Please select the destination room for this message": "Wybierz pokój docelowy dla tej wiadomości",
+ "Start automatically after system login": "Uruchom automatycznie po zalogowaniu się do systemu",
+ "Desktop specific": "Specyficzne dla desktopowej aplikacji klienckiej",
+ "Analytics": "Analityka",
+ "Passphrases must match": "Hasła szyfrujące muszą być identyczne",
+ "Passphrase must not be empty": "Hasło szyfrujące nie może być puste",
+ "Export room keys": "Eksportuj klucze pokoju",
+ "Confirm passphrase": "Potwierdź hasło szyfrujące",
+ "Import room keys": "Importuj klucze pokoju",
+ "File to import": "Plik do importu",
+ "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "Ten proces pozwala na eksport kluczy do wiadomości otrzymanych w zaszyfrowanych pokojach do pliku lokalnego. Wtedy będzie można importować plik do innego klienta Matrix w przyszłości, tak aby ów klient także mógł rozszyfrować te wiadomości.",
+ "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Ten proces pozwala na import zaszyfrowanych kluczy, które wcześniej zostały eksportowane z innego klienta Matrix. Będzie można odszyfrować każdą wiadomość, którą ów inny klient mógł odszyfrować.",
+ "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "Eksportowany plik będzie chroniony hasłem szyfrującym. Aby odszyfrować plik, wpisz hasło szyfrujące tutaj.",
+ "You must join the room to see its files": "Należy dołączyć do pokoju by zobaczyć jego pliki",
+ "Reject all %(invitedRooms)s invites": "Odrzuć wszystkie zaproszenia do %(invitedRooms)s",
+ "Failed to invite": "Wysłanie zaproszenia nie powiodło się",
+ "Failed to invite user": "Wysłanie zaproszenia użytkownikowi nie powiodło się",
+ "Failed to invite the following users to the %(roomName)s room:": "Wysłanie zaproszenia do następujących użytkowników do pokoju %(roomName)s nie powiodło się:",
+ "Confirm Removal": "Potwierdź usunięcie",
+ "Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Jesteś pewien że chcesz usunąć to wydarzenie? Pamiętaj, że jeśli usuniesz nazwę pokoju lub aktualizację tematu pokoju, zmiana może zostać cofnięta.",
+ "This will make your account permanently unusable. You will not be able to re-register the same user ID.": "To sprawi, że Twoje konto będzie permamentnie nieużywalne. Nie będzie można zarejestrować się ponownie z tą samą identyfikacją użytkownika.",
+ "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:": "Aby sprawdzić czy to urządzenie jest zaufane, skontaktuj się z jego właścicielem używając innych środków (np. osobiście lub telefonicznie) i zapytaj ich czy klucz, który widzą w ustawieniach użytkownika dla tego urządzenia pasuje do klucza poniżej:",
+ "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Jeśli klucz pasuje, naciśnij na przycisk \"Zweryfikuj\" poniżej. Jeśli nie, to ktoś inny najprawdopodobniej przejmuje lub podszywa się pod to urządzenie i powinieneś nacisnąć przycisk dodania do czarnej listy.",
+ "In future this verification process will be more sophisticated.": "W przyszłości proces weryfikacji będzie bardziej skomplikowany.",
+ "I verify that the keys match": "Upewnię się, że klucze się zgadzają",
+ "We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Napotkaliśmy błąd podczas próby przywrócenia Twojej poprzedniej sesji. Aby kontynuować, musisz zalogować się ponownie, a zaszyfrowana historia czatu nie będzie do odczytania.",
+ "Unable to restore session": "Przywrócenie sesji jest niemożliwe",
+ "If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Jeśli wcześniej używałeś/aś nowszej wersji Riot, Twoja sesja może być niekompatybilna z tą wersją. Zamknij to okno i powróć do nowszej wersji.",
+ "Continue anyway": "Kontynuuj mimo to",
+ "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Aktualnie wpisujesz niezweryfikowane urządzenia na czarną listę; aby wysłać wiadomość do tych urządzeń musisz je zweryfikować.",
+ "Riot collects anonymous analytics to allow us to improve the application.": "Riot zbiera anonimowe dane analityczne, aby umożliwić nam rozwijanie aplikacji.",
+ "Verifies a user, device, and pubkey tuple": "Weryfikuje użytkownika, urządzenie i krotkę kluczy publicznych",
+ "\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" zawiera niewidziane przez Ciebie wcześniej urządzenia.",
+ "ex. @bob:example.com": "np. @jan:example.com",
+ "This Home Server would like to make sure you are not a robot": "Ten serwer domowy chciałby się upewnić, że nie jesteś robotem",
+ "Sign in with CAS": "Zaloguj się używając CAS",
+ "This allows you to use this app with an existing Matrix account on a different home server.": "To umożliwia Ci używanie tej aplikacji wraz z istniejącym kontem Matrix na innym serwerze domowym.",
+ "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Nastąpiła próba załadowania danego punktu w historii tego pokoju, lecz nie masz uprawnień, by zobaczyć określoną wiadomość.",
+ "Use compact timeline layout": "Użyj kompaktowego stylu linii czasu",
+ "You have enabled URL previews by default.": "Masz domyślnie włączone podglądy linków.",
+ "Opt out of analytics": "Zrezygnuj z analityk",
+ "Please check your email to continue registration.": "Sprawdź swój e-mail, aby kontynuować rejestrację.",
+ "Please enter the code it contains:": "Wpisz kod, który jest tam zawarty:",
+ "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Jeśli nie ustawisz adresu e-mail, nie będzie możliwe zresetowanie Twojego hasła. Kontynuować?",
+ "You are registering with %(SelectedTeamName)s": "Rejestrujesz się z %(SelectedTeamName)s",
+ "Custom server": "Serwer niestandardowy",
+ "Home server URL": "Adres serwera domowego",
+ "What does this mean?": "Co to znaczy?",
+ "Error decrypting audio": "Błąd deszyfrowania audio",
+ "Error decrypting image": "Błąd deszyfrowania obrazu",
+ "Image '%(Body)s' cannot be displayed.": "Obraz '%(Body)s' nie może zostać wyświetlony.",
+ "Error decrypting video": "Błąd deszyfrowania wideo",
+ "Removed or unknown message type": "Usunięto lub nieznany typ wiadomości",
+ "Disable URL previews by default for participants in this room": "Ustaw podglądy linków na domyślnie wyłączone dla uczestników w tym pokoju",
+ "Tried to load a specific point in this room's timeline, but was unable to find it.": "Próbowano załadować konkretny punkt na osi czasu w tym pokoju, ale nie nie można go znaleźć.",
+ "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "Wyeksportowany plik pozwoli każdej osobie będącej w stanie go odczytać na deszyfrację jakichkolwiek zaszyfrowanych wiadomości, które możesz zobaczyć, tak więc zalecane jest zachowanie ostrożności. Aby w tym pomóc, powinieneś/aś wpisać hasło poniżej; hasło to będzie użyte do zaszyfrowania wyeksportowanych danych. Późniejsze zaimportowanie tych danych będzie możliwe tylko po uprzednim podaniu owego hasła.",
+ " (unsupported)": " (niewspierany)",
+ "for %(amount)ss": "za %(amount)s sek",
+ "for %(amount)sm": "%(amount)s min",
+ "for %(amount)sh": "%(amount)s godz",
+ "for %(amount)sd": "%(amount)s dni",
+ "Idle": "Bezczynny",
+ "Check for update": "Sprawdź aktualizacje",
+ "%(senderDisplayName)s changed the room avatar to
": "%(senderDisplayName)s zmienił awatar pokoju na
",
+ "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s usunął awatar pokoju.",
+ "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s zmienił awatar %(roomName)s",
+ "This will be your account name on the homeserver, or you can pick a different server.": "To będzie twoja nazwa konta na serwerze domowym; możesz też wybrać inny serwer.",
+ "If you already have a Matrix account you can log in instead.": "Jeśli już posiadasz konto Matrix możesz się zalogować.",
+ "Not a valid Riot keyfile": "Niepoprawny plik klucza Riot",
+ "Authentication check failed: incorrect password?": "Próba autentykacji nieudana: nieprawidłowe hasło?",
+ "Disable Peer-to-Peer for 1:1 calls": "Wyłącz P2P dla połączeń 1:1",
+ "Do you want to set an email address?": "Czy chcesz ustawić adres e-mail?",
+ "To return to your account in future you need to set a password": "By móc powrócić do swojego konta w przyszłości musisz ustawić hasło",
+ "Share without verifying": "Udostępnij bez weryfikacji",
+ "You added a new device '%(displayName)s', which is requesting encryption keys.": "Dodałeś nowe urządzenie '%(displayName)s', które żąda kluczy szyfrujących.",
+ "Your unverified device '%(displayName)s' is requesting encryption keys.": "Twoje niezweryfikowane urządzenie '%(displayName)s' żąda kluczy szyfrujących.",
+ "Encryption key request": "Żądanie klucza szyfrującego",
+ "Autocomplete Delay (ms):": "Opóźnienie autouzupełniania (ms):",
+ "Loading device info...": "Wczytywanie informacji o urządzeniu...",
+ "Example": "Przykład",
+ "Room creation failed": "Nie udało się utworzyć pokoju",
+ "Drop file here to upload": "Upuść plik tutaj, aby go przesłać",
+ "Automatically replace plain text Emoji": "Automatycznie zastępuj tekstowe emotikony",
+ "Failed to upload image": "Przesyłanie obrazka nie powiodło się",
+ "%(count)s new messages|one": "%(count)s nowa wiadomość",
+ "%(count)s new messages|other": "%(count)s nowe wiadomości",
+ "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.": "Zalecamy Ci przejście przez proces weryfikacyjny dla każdego urządzenia aby potwierdzić, że należy ono do ich prawdziwego właściciela. Możesz jednak wysłać tę wiadomość bez potwierdzania.",
+ "Unblacklist": "Usuń z czarnej listy",
+ "Blacklist": "Dodaj do czarnej listy",
+ "Unverify": "Usuń weryfikację",
+ "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Możesz zalogować się do innych serwerów usługi Matrix poprzez podanie innego URL serwera domowego w ustawieniach niestandardowych serwera.",
+ "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Możesz również ustawić niestandardowy serwer Identity, ale to z reguły nie pozwala na interakcję z użytkowniki w oparciu o ich adres e-mail.",
+ "Identity server URL": "URL serwera Identity",
+ "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?": "Za chwilę zostaniesz przekierowany/a na zewnętrzną stronę w celu powiązania Twojego konta z %(integrationsUrl)s. Czy chcesz kontynuować?",
+ "Disable URL previews for this room (affects only you)": "Wyłącz podglądy linków w tym pokoju (dotyczy tylko Ciebie)",
+ "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "Podglądy linków są domyślnie %(globalDisableUrlPreview)s dla uczestników tego pokoju.",
+ "URL Previews": "Podglądy linków",
+ "Enable URL previews for this room (affects only you)": "Włącz podglądy linków w tym pokoju (dotyczy tylko Ciebie)",
+ "Ongoing conference call%(supportedText)s.": "Połączenie grupowe %(supportedText)s w toku.",
+ "Featured Rooms:": "Wyróżnione pokoje:",
+ "Featured Users:": "Wyróżnieni użytkownicy:",
+ "Hide avatars in user and room mentions": "Ukryj awatary we wzmiankach użytkowników i pokoi",
+ "%(widgetName)s widget added by %(senderName)s": "Widżet %(widgetName)s został dodany przez %(senderName)s",
+ "%(widgetName)s widget removed by %(senderName)s": "Widżet %(widgetName)s został usunięty przez %(senderName)s",
+ "%(widgetName)s widget modified by %(senderName)s": "Widżet %(widgetName)s został zmodyfikowany przez %(senderName)s",
+ "Robot check is currently unavailable on desktop - please use a web browser": "Sprawdzanie człowieczeństwa jest obecnie niedostępne na aplikacji klienckiej desktop - proszę użyć przeglądarki internetowej",
+ "Unpin Message": "Odepnij Wiadomość",
+ "Add rooms to this community": "Dodaj pokoje do tej społeczności",
+ "Invite to Community": "Zaproszenie do Społeczności",
+ "Which rooms would you like to add to this community?": "Które pokoje chcesz dodać do tej społeczności?",
+ "Room name or alias": "Nazwa pokoju lub alias",
+ "Add to community": "Dodaj do społeczności"
}
diff --git a/src/i18n/strings/pt.json b/src/i18n/strings/pt.json
index 827efeb16a..8ef4e6f6a0 100644
--- a/src/i18n/strings/pt.json
+++ b/src/i18n/strings/pt.json
@@ -1,47 +1,29 @@
{
- "accept": "aceitar",
- "accepted an invitation": "aceitou um convite",
- "accepted the invitation for": "aceitou o convite para",
"Account": "Conta",
"Add email address": "Adicionar endereço de email",
"Add phone number": "Adicionar número de telefone",
- "Admin": "Administrador/a",
+ "Admin": "Administrador",
"Advanced": "Avançado",
"Algorithm": "Algoritmo",
- "all room members, from the point they are invited.": "todos os membros da sala, a partir de quando foram convidados",
- "all room members, from the point they joined.": "todos os membros da sala, a partir de quando entraram",
- "all room members": "todas as pessoas da sala",
- "an address": "um endereço",
- "and": "e",
"An email has been sent to": "Um email foi enviado para",
"New passwords don't match": "As novas senhas não conferem",
"A new password must be entered.": "Uma nova senha precisa ser informada.",
- "answered the call.": "respondeu à chamada.",
"Anyone who knows the room's link, apart from guests": "Qualquer pessoa que tenha o link da sala, exceto visitantes",
"Anyone who knows the room's link, including guests": "Qualquer pessoa que tenha o link da sala, incluindo visitantes",
- "Are you sure you want to leave the room?": "Você tem certeza que deseja sair da sala?",
"Are you sure you want to reject the invitation?": "Você tem certeza que deseja rejeitar este convite?",
- "Are you sure you want to upload the following files?": "Você tem certeza que deseja enviar os seguintes arquivos?",
- "banned": "baniu",
+ "Are you sure you want to upload the following files?": "Tem a certeza que quer enviar os seguintes ficheiros?",
"Banned users": "Usuárias/os banidas/os",
"Bans user with given id": "Banir usuários com o identificador informado",
"Blacklisted": "Bloqueado",
"Bug Report": "Repotar problemas de funcionamento",
"Bulk Options": "Opcões de Batelada",
"Can't load user settings": "Não é possível carregar configurações de usuário",
- "changed avatar": "mudou sua imagem de perfil (avatar)",
- "changed name": "mudou seu nome",
- "changed their display name from": "mudou seu nome para",
- "changed their profile picture": "alterou sua foto de perfil",
- "changed the power level of": "mudou o nível de permissões de",
- "changed the room name to": "mudou o nome da sala para",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s mudou o tópico para \"%(topic)s\".",
"Changes to who can read history will only apply to future messages in this room": "As mudanças sobre quem pode ler o histórico da sala só serão aplicadas às mensagens futuras nesta sala",
"Changes your display nickname": "Troca o seu apelido",
"Claimed Ed25519 fingerprint key": "Chave reivindicada da Impressão Digital Ed25519",
"Clear Cache and Reload": "Limpar Memória Cache e Recarregar",
"Clear Cache": "Limpar Memória Cache",
- "Click here": "Clique aqui",
"Click here to fix": "Clique aqui para resolver isso",
"Commands": "Comandos",
"Confirm password": "Confirme a nova senha",
@@ -49,47 +31,38 @@
"Continue": "Continuar",
"Could not connect to the integration server": "Não foi possível conectar ao servidor de integrações",
"Create an account": "Criar uma conta",
- "Create a new account": "Criar uma conta",
"Create Room": "Criar Sala",
"Cryptography": "Criptografia",
"Current password": "Senha atual",
"Curve25519 identity key": "Chave de Indetificação Curve25519",
"Deactivate Account": "Desativar conta",
"Deactivate my account": "Desativar minha conta",
- "decline": "rejeitar",
"Decryption error": "Erro de descriptografia",
"Default": "Padrão",
- "demote": "reduzir prioridade",
"Deops user with given id": "Retirar função de moderador do usuário com o identificador informado",
"Device ID": "Identificador do dispositivo",
"Devices will not yet be able to decrypt history from before they joined the room": "Os dispositivos não serão ainda capazes de descriptografar o histórico anterior à sua entrada na sala",
- "Direct Chat": "Conversa pessoal",
"Disable inline URL previews by default": "Desabilitar visualizações prévias por padrão",
"Display name": "Nome",
"Displays action": "Visualizar atividades",
"Ed25519 fingerprint": "Impressão Digital Ed25519",
- "Email Address": "endereço de email",
"Email, name or matrix ID": "Email, nome ou ID matrix",
"Emoji": "Emoji",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "Mensagens criptografadas não serão visíveis em clientes que ainda não implementaram criptografia",
"Encrypted room": "Sala criptografada",
"Encryption is enabled in this room": "Criptografia está habilitada nesta sala",
"Encryption is not enabled in this room": "Criptografia não está habilitada nesta sala",
- "ended the call.": "chamada encerrada.",
"End-to-end encryption information": "Informação criptografada ponta-a-ponta",
"End-to-end encryption is in beta and may not be reliable": "A criptografia ponta a ponta está em estágio beta e não deve ser totalmente confiável",
"Error": "Erro",
"Event information": "Informação do evento",
"Export E2E room keys": "Exportar chaves ponta-a-ponta da sala",
- "Failed to change password. Is your password correct?": "Não foi possível modificar a senha. A senha informada está correta?",
- "Failed to forget room": "Não foi possível esquecer a sala",
+ "Failed to change password. Is your password correct?": "Falha ao alterar a palavra-passe. A sua palavra-passe está correta?",
"Failed to leave room": "Falha ao tentar deixar a sala",
"Failed to reject invitation": "Falha ao tentar rejeitar convite",
- "Failed to send email: ": "Falha ao tentar enviar email",
"Failed to set avatar.": "Falha ao tentar definir foto do perfil.",
"Failed to unban": "Não foi possível desfazer o banimento",
- "Failed to upload file": "Falha ao enviar o arquivo",
- "favourite": "favoritar",
+ "Failed to upload file": "Falha ao enviar o ficheiro",
"Favourite": "Favorito",
"Favourites": "Favoritos",
"Filter room members": "Filtrar integrantes da sala",
@@ -99,10 +72,6 @@
"For security, this session has been signed out. Please sign in again.": "Por questões de segurança, esta sessão foi encerrada. Por gentileza conecte-se novamente.",
"Found a bug?": "Encontrou um problema de funcionamento do sistema?",
"Guests cannot join this room even if explicitly invited.": "Visitantes não podem entrar nesta sala, mesmo se forem explicitamente convidadas/os.",
- "Guests can't set avatars. Please register.": "Convidados não podem definir uma foto do perfil. Por favor, registre-se.",
- "Guests can't use labs features. Please register.": "Convidados não podem usar as funcionalidades de laboratório (lab), por gentileza se registre.",
- "Guest users can't upload files. Please register to upload.": "Usuários não podem fazer envio de arquivos. Por favor se cadastre para enviar arquivos.",
- "had": "teve",
"Hangup": "Desligar",
"Historical": "Histórico",
"Homeserver is": "Servidor padrão é",
@@ -110,32 +79,21 @@
"I have verified my email address": "Eu verifiquei o meu endereço de email",
"Import E2E room keys": "Importar chave de criptografia ponta-a-ponta (E2E) da sala",
"Invalid Email Address": "Endereço de email inválido",
- "invited": "convidou",
"Invite new room members": "Convidar novas pessoas para ingressar na sala",
"Invites": "Convidar",
"Invites user with given id to current room": "Convidar usuários com um dado identificador para esta sala",
- "is a": "é um(a)",
"Sign in with": "Quero entrar",
- "joined and left": "entrou e saiu",
- "joined": "entrou",
- "joined the room": "entrou na sala",
"Joins room with given alias": "Entra na sala com o nome informado",
"Kicks user with given id": "Remove usuário com o identificador informado",
"Labs": "Laboratório",
"Leave room": "Sair da sala",
- "left and rejoined": "saiu e entrou novamente",
- "left": "saiu",
- "left the room": "saiu da sala",
- "Logged in as": "Logado como",
"Login as guest": "Entrar como visitante",
"Logout": "Sair",
"Low priority": "Baixa prioridade",
- "made future room history visible to": "deixou o histórico futuro da sala visível para",
"Manage Integrations": "Gerenciar integrações",
"Members only": "Apenas integrantes da sala",
"Mobile phone number": "Telefone celular",
"Moderator": "Moderador/a",
- "my Matrix ID": "com meu ID do Matrix",
"Name": "Nome",
"Never send encrypted messages to unverified devices from this device": "Nunca envie mensagens criptografada para um dispositivo não verificado a partir deste dispositivo",
"Never send encrypted messages to unverified devices in this room from this device": "Nunca envie mensagens criptografadas para dispositivos não verificados nesta sala a partir deste dispositivo",
@@ -143,39 +101,26 @@
"New passwords must match each other.": "As novas senhas informadas precisam ser idênticas.",
"none": "nenhum",
"Notifications": "Notificações",
- " (not supported by this browser)": "não suportado por este navegador",
"": "",
"NOT verified": "NÃO verificado",
"No users have specific privileges in this room": "Nenhum/a usuário/a possui privilégios específicos nesta sala",
- "olm version: ": "Versão do olm: ",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "Assim que a criptografia é ativada para uma sala, ela não poderá ser desativada novamente (ainda)",
- "Once you've followed the link it contains, click below": "Quando você tiver clicado no link que está no email, clique o botão abaixo",
+ "Once you've followed the link it contains, click below": "Quando você tiver clicado no link que está no email, clique o botão abaixo",
"Only people who have been invited": "Apenas pessoas que tenham sido convidadas",
- "or": "ou",
- "other": "outro",
- "others": "outros",
"Password": "Senha",
"Passwords can't be empty": "As senhas não podem estar em branco",
"People": "Pessoas",
"Permissions": "Permissões",
"Phone": "Telefone",
- "placed a": "iniciou uma",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Por favor verifique seu email e clique no link enviado. Quando finalizar este processo, clique para continuar.",
- "Please Register": "Por favor registe-se",
"Privacy warning": "Alerta sobre privacidade",
"Privileged Users": "Usuárias/os privilegiadas/os",
"Profile": "Perfil",
- "Refer a friend to Riot:": "Indicar um amigo para participar",
- "rejected": "recusou",
- "rejected the invitation.": "rejeitou o convite.",
+ "Refer a friend to Riot:": "Recomendar Riot a um amigo:",
"Reject invitation": "Rejeitar convite",
"Remove Contact Information?": "Remover informação de contato?",
- "removed their display name": "removeu seu nome",
- "removed their profile picture": "removeu sua foto de perfil",
"Remove": "Remover",
- "requested a VoIP conference": "requisitou uma conferência VoIP",
"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.": "Atualmente, ao alterar sua senha, você também zera todas as chaves de criptografia ponta-a-ponta em todos os dipositivos, fazendo com que o histórico de conversas da sala não possa mais ser lido, a não ser que você antes exporte suas chaves de sala e as reimporte após a alteração da senha. No futuro, isso será melhorado.",
- "restore": "restaurar",
"Return to app": "Retornar ao aplicativo",
"Return to login screen": "Retornar à tela de login",
"Room Colour": "Cores da sala",
@@ -190,13 +135,10 @@
"Send Invites": "Enviar convites",
"Send Reset Email": "Enviar email para redefinição de senha",
"sent an image": "enviou uma imagem",
- "sent an invitation to": "enviou um convite para",
"sent a video": "enviou um vídeo",
"Server may be unavailable or overloaded": "Servidor pode estar indisponível ou sobrecarregado",
"Server may be unavailable, overloaded, or you hit a bug.": "O servidor pode estar indisponível ou sobrecarregado, ou então você encontrou uma falha no sistema.",
"Session ID": "Identificador de sessão",
- "set a profile picture": "colocou uma foto de perfil",
- "set their display name to": "configurou seu nome para",
"Settings": "Configurações",
"Show panel": "Mostrar painel",
"Signed Out": "Deslogar",
@@ -210,31 +152,14 @@
"Start a chat": "Começar uma conversa",
"Start Chat": "Começar conversa",
"Success": "Sucesso",
- "tag as": "etiquetar como",
- "tag direct chat": "definir como conversa pessoal",
"The default role for new room members is": "O papel padrão para novas/os integrantes da sala é",
"The email address linked to your account must be entered.": "O endereço de email relacionado a sua conta precisa ser informado.",
- "their invitations": "seus convites",
- "their invitation": "seu convite",
- "These are experimental features that may break in unexpected ways. Use with caution": "Estes são recursos experimentais que podem não funcionar corretamente. Use com cuidado.",
"The visibility of existing history will be unchanged": "A visibilidade do histórico atual não será alterada",
"This doesn't appear to be a valid email address": "Este não aparenta ser um endereço de email válido",
- "this invitation?": "este convite?",
"This is a preview of this room. Room interactions have been disabled": "Esta é uma pré visualização desta sala. As interações com a sala estão desabilitadas",
"This room is not accessible by remote Matrix servers": "Esta sala não é acessível para servidores Matrix remotos",
"This room's internal ID is": "O ID interno desta sala é",
- "times": "vezes",
- "To ban users": "Para banir usuárias/os",
- "To configure the room": "Para poder configurar a sala",
- "To invite users into the room": "Para convidar usuárias/os para esta sala",
- "to join the discussion": "para se juntar à conversa",
- "To kick users": "Para poder remover pessoas da sala",
- "To link to a room it must have": "Para fazer um link para uma sala, ela deve ter",
- "To redact messages": "Para poder apagar mensagens",
"To reset your password, enter the email address linked to your account": "Para redefinir sua senha, entre com o email da sua conta",
- "To send events of type": "Para enviar eventos do tipo",
- "To send messages": "Para enviar mensagens",
- "turned on end-to-end encryption (algorithm": "acionou a encriptação ponta-a-ponta (algoritmo",
"Unable to add email address": "Não foi possível adicionar endereço de email",
"Unable to remove contact information": "Não foi possível remover informação de contato",
"Unable to verify email address.": "Não foi possível verificar o endereço de email.",
@@ -243,7 +168,6 @@
"unencrypted": "não criptografado",
"unknown device": "dispositivo desconhecido",
"unknown error code": "código de erro desconhecido",
- "unknown": "desconhecido",
"Upload avatar": "Enviar icone de perfil de usuário",
"uploaded a file": "enviou um arquivo",
"Upload Files": "Enviar arquivos",
@@ -261,24 +185,17 @@
"VoIP conference finished.": "Conferência VoIP encerrada.",
"VoIP conference started.": "Conferência VoIP iniciada.",
"(warning: cannot be disabled again!)": "(atenção: esta operação não poderá ser desfeita depois!)",
- "Warning": "Atenção!",
"was banned": "banida/o",
"was invited": "convidada/o",
"was kicked": "retirada/o da sala",
"was unbanned": "des-banida/o",
- "was": "foi",
- "were": "foram",
"Who can access this room?": "Quem pode acessar esta sala?",
"Who can read history?": "Quem pode ler o histórico da sala?",
"Who would you like to add to this room?": "Quais pessoas você gostaria de adicionar a esta sala?",
"Who would you like to communicate with?": "Com quem você gostaria de se comunicar?",
- "withdrawn": "retirado",
- "Would you like to": "Você gostaria de",
- "You are trying to access": "Você está tentando acessar a sala",
"You do not have permission to post to this room": "Você não tem permissão de postar nesta sala",
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Você foi desconectada/o de todos os dispositivos e portanto não receberá mais notificações no seu celular ou no computador. Para reativar as notificações, entre novamente em cada um dos dispositivos que costuma usar",
"You have no visible notifications": "Voce não possui notificações visíveis",
- "you must be a": "você precisa ser",
"Your password has been reset": "Sua senha foi redefinida",
"Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Sua senha foi alterada com sucesso. Você não receberá notificações em outros dispositivos até que você logue novamente por eles",
"You should not yet trust it to secure data": "Você não deve confiar nela ainda para preservar seus dados",
@@ -303,20 +220,11 @@
"Dec": "Dez",
"%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s, %(day)s de %(monthName)s às %(time)s",
"%(weekDayName)s %(time)s": "%(weekDayName)s às %(time)s",
- "en": "Inglês",
- "pt-br": "Português do Brasil",
- "de": "Alemão",
- "da": "Dinamarquês",
- "ru": "Russo",
"%(targetName)s accepted an invitation.": "%(targetName)s aceitou um convite.",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s aceitou o convite para %(displayName)s.",
- "all room members, from the point they are invited": "todas/os as/os integrantes da sala, a partir do momento em que foram convidadas/os",
- "all room members, from the point they joined": "todas/os as/os integrantes da sala, a partir do momento em que entraram na sala",
"%(names)s and %(lastPerson)s are typing": "%(names)s e %(lastPerson)s estão escrevendo",
"%(names)s and one other are typing": "%(names)s e uma outra pessoa estão escrevendo",
- "%(names)s and %(count)s others are typing": "%(names)s e %(count)s outras pessoas estão escrevendo",
"%(senderName)s answered the call.": "%(senderName)s atendeu à chamada.",
- "anyone": "qualquer pessoa",
"%(senderName)s banned %(targetName)s.": "%(senderName)s removeu %(targetName)s da sala.",
"Call Timeout": "Tempo esgotado. Chamada encerrada",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s mudou seu nome público de %(oldDisplayName)s para %(displayName)s.",
@@ -334,28 +242,28 @@
"%(senderName)s ended the call.": "%(senderName)s finalizou a chamada.",
"Existing Call": "Chamada em andamento",
"Failed to lookup current room": "Não foi possível buscar na sala atual",
- "Failed to send email": "Não foi possível enviar email",
+ "Failed to send email": "Falha ao enviar email",
"Failed to send request.": "Não foi possível mandar requisição.",
"Failed to set up conference call": "Não foi possível montar a chamada de conferência",
"Failed to verify email address: make sure you clicked the link in the email": "Não foi possível verificar o endereço de email: verifique se você realmente clicou no link que está no seu email",
"Failure to create room": "Não foi possível criar a sala",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s para %(toPowerLevel)s",
- "Guest users can't create new rooms. Please register to create room and start a chat.": "Visitantes não podem criar novas salas. Por favor, registre-se para criar uma sala e iniciar uma conversa.",
"%(senderName)s invited %(targetName)s.": "%(senderName)s convidou %(targetName)s.",
"%(displayName)s is typing": "%(displayName)s está escrevendo",
"%(targetName)s joined the room.": "%(targetName)s entrou na sala.",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s removeu %(targetName)s da sala.",
"%(targetName)s left the room.": "%(targetName)s saiu da sala.",
- "%(senderName)s made future room history visible to": "%(senderName)s deixou o histórico futuro da sala visível para",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s deixou o histórico futuro da sala visível para todos os membros da sala, a partir de quando foram convidados.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s deixou o histórico futuro da sala visível para todos os membros da sala, a partir de quando entraram.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s deixou o histórico futuro da sala visível para todas as pessoas da sala.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s deixou o histórico futuro da sala visível para qualquer pessoa.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s deixou o histórico futuro da sala visível para desconhecido (%(visibility)s).",
"Missing room_id in request": "Faltou o id da sala na requisição",
"Missing user_id in request": "Faltou o id de usuário na requisição",
"Must be viewing a room": "Tem que estar visualizando uma sala",
- "New Composer & Autocomplete": "Nova ferramenta de formatação de mensagens e autocompletar",
"(not supported by this browser)": "(não é compatível com este navegador)",
- "olm version": "versão olm",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s fez uma chamada de %(callType)s.",
"Power level must be positive integer.": "O nível de permissões tem que ser um número inteiro e positivo.",
- "Press": "Aperte",
"Reason": "Razão",
"%(targetName)s rejected the invitation.": "%(targetName)s recusou o convite.",
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s removeu o seu nome público (%(oldDisplayName)s).",
@@ -368,7 +276,6 @@
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s enviou um convite para %(targetDisplayName)s entrar na sala.",
"%(senderName)s set a profile picture.": "%(senderName)s definiu uma imagem de perfil.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s definiu seu nome público para %(displayName)s.",
- "tag as %(tagName)s": "marcar como %(tagName)s",
"This email address is already in use": "Este endereço de email já está sendo usado",
"This email address was not found": "Este endereço de email não foi encontrado",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "O arquivo '%(fileName)s' ultrapassa o limite de tamanho que nosso servidor permite enviar",
@@ -377,18 +284,12 @@
"This room is not recognised.": "Esta sala não é reconhecida.",
"These are experimental features that may break in unexpected ways": "Estas são funcionalidades experimentais que podem apresentar falhas",
"This phone number is already in use": "Este número de telefone já está sendo usado",
- "to browse the directory": "para navegar na lista pública de salas",
"to demote": "para reduzir prioridade",
"to favourite": "para favoritar",
- "to make a room or": "para criar uma sala ou",
- "To remove other users' messages": "Para apagar mensagens de outras pessoas",
"to restore": "para restaurar",
- "to start a chat with someone": "para iniciar uma conversa com alguém",
- "to tag as %(tagName)s": "para marcar como %(tagName)s",
"to tag direct chat": "para marcar a conversa como pessoal",
"To use it, just wait for autocomplete results to load and tab through them.": "Para usar esta funcionalidade, espere o carregamento dos resultados de autocompletar e então escolha entre as opções.",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s ativou criptografia ponta a ponta (algoritmo %(algorithm)s).",
- "Unable to restore previous session": "Não foi possível restaurar a sessão anterior",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s desfez o banimento de %(targetName)s.",
"Unable to capture screen": "Não foi possível capturar a imagem da tela",
"Unable to enable Notifications": "Não foi possível ativar as notificações",
@@ -398,7 +299,6 @@
"VoIP is unsupported": "Chamada de voz não permitida",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s desfez o convite a %(targetName)s.",
"You are already in a call.": "Você já está em uma chamada.",
- "You're not in any rooms yet! Press": "Você ainda não está em nenhuma sala! Pressione",
"You are trying to access %(roomName)s.": "Você está tentando acessar a sala %(roomName)s.",
"You cannot place a call with yourself.": "Você não pode iniciar uma chamada.",
"You cannot place VoIP calls in this browser.": "Você não pode fazer chamadas de voz neste navegador.",
@@ -422,156 +322,23 @@
"Share message history with new users": "Compartilhar histórico de mensagens com novas/os usuárias/os",
"Encrypt room": "Criptografar esta sala",
"There are no visible files in this room": "Não há arquivos públicos nesta sala",
- "Error changing language": "Erro ao mudar de idioma",
- "Riot was unable to find the correct Data for the selected Language.": "Não foi possível encontrar os dados para o idioma selecionado.",
"Connectivity to the server has been lost.": "A conexão com o servidor foi perdida. Verifique sua conexão de internet.",
"Sent messages will be stored until your connection has returned.": "Imagens enviadas ficarão armazenadas até que sua conexão seja reestabelecida.",
- "Auto-complete": "Autocompletar",
- "Resend all": "Reenviar todas as mensagens",
- "cancel all": "cancelar todas",
- "now. You can also select individual messages to resend or cancel.": "agora. Você também pode escolher mensagens individuais e definir se vai reenviar ou cancelar o envio.",
"Active call": "Chamada ativa",
- "af": "Afrikaans",
- "ar-ae": "Árabe (E.A.U.)",
- "ar-bh": "Árabe (Bahrain)",
- "ar-dz": "Árabe (Argélia)",
- "Sunday": "Domingo",
- "Monday": "Segunda-feira",
- "ar-eg": "Árabe (Egito)",
- "ar-tn": "Árabe (Tunísia)",
- "be": "Bielorrusso",
- "bg": "Búlgaro",
- "ca": "Catalão",
- "cs": "Checo",
- "el": "Grego",
- "en-au": "Inglês (Austrália)",
- "en-ca": "Inglês (Canadá)",
- "en-gb": "Inglês (Reino Unido)",
- "en-ie": "Inglês (Irlanda)",
- "en-nz": "Inglês (Nova Zelândia)",
- "en-us": "Inglês (Estados Unidos)",
- "es-ar": "Espanhol (Argentina)",
- "es-py": "Espanhol (Paraguai)",
- "es": "Espanhol (Espanha)",
- "et": "Estônia",
- "fa": "Farsi",
- "fi": "Finlandês",
- "fr-be": "Francês (Bélgica)",
- "fr-ca": "Francês (Canadá)",
- "fr-ch": "Francês (Suíça)",
- "fr": "Francês",
- "ga": "Irlandês",
- "he": "Hebreu",
- "hi": "Hindu",
- "hr": "Croácia",
- "hu": "Hungria",
- "id": "Indonésio",
- "is": "Islandês",
- "it": "Italiano",
- "ja": "Japonês",
- "ji": "Ídiche",
- "lt": "Lituânia",
- "lv": "Letão",
- "ms": "Malaio",
- "mt": "Maltês",
- "nl-be": "Holandês (Bélgica)",
- "nl": "Holandês",
- "no": "Norueguês",
- "pl": "Polonês",
- "pt": "Português (Portugal)",
- "rm": "Romanche",
- "ro": "Romeno",
- "sk": "Eslovaco",
- "sl": "Esloveno",
- "sq": "Albanês",
- "sr": "Sérvio",
- "sv": "Suécia",
- "th": "Tailandês",
- "tn": "Tsuana",
- "tr": "Turquia",
- "ts": "Tsonga",
- "uk": "Ucraniano",
- "ur": "Urdu",
- "vi": "Vietnamita",
- "xh": "Xhosa",
- "zu": "Zulu",
"Failed to forget room %(errCode)s": "Falha ao esquecer a sala %(errCode)s",
- "Failed to join the room": "Falha ao entrar na sala",
- "Tuesday": "Terça-feira",
- "Wednesday": "Quarta-feira",
- "Thursday": "Quinta-feira",
- "Friday": "Sexta-feira",
- "Saturday": "Sábado",
- "ar-iq": "Árabe (Iraque)",
- "ar-jo": "Árabe (Jordânia)",
- "ar-kw": "Árabe (Kuwait)",
- "ar-lb": "Árabe (Líbano)",
- "ar-ly": "Árabe (Líbia)",
- "ar-ma": "Árabe (Marrocos)",
- "ar-om": "Árabe (Omã)",
- "ar-qa": "Árabe (Catar)",
- "ar-sa": "Árabe (Arábia Saudita)",
- "ar-sy": "Árabe (Síria)",
- "ar-ye": "Árabe (Iémen)",
- "de-at": "Alemão (Áustria)",
- "de-ch": "Alemão (Suíça)",
- "de-li": "Alemão (Liechtenstein)",
- "de-lu": "Alemão (Luxemburgo)",
- "en-bz": "Inglês (Belize)",
- "en-jm": "Inglês (Jamaica)",
- "en-tt": "Inglês (Trindade)",
- "en-za": "English (África do Sul)",
- "es-bo": "Espanhol (Bolívia)",
- "es-cl": "Espanhol (Chile)",
- "es-co": "Espanhol (Colômbia)",
- "es-cr": "Espanhol (Costa Rica)",
- "es-do": "Espanhol (República Dominicana)",
- "es-ec": "Espanhol (Equador)",
- "es-gt": "Espanhol (Guatemala)",
- "es-hn": "Espanhol (Honduras)",
- "es-mx": "Espanhol (México)",
- "es-ni": "Espanhol (Nicarágua)",
- "es-pa": "Espanhol (Panamá)",
"%(oneUser)schanged their avatar": "%(oneUser)salterou sua imagem pública",
- "es-pe": "Espanhol (Peru)",
- "es-pr": "Espanhol (Porto Rico)",
- "es-sv": "Espanhol (El Salvador)",
- "es-uy": "Espanhol (Uruguai)",
- "es-ve": "Espanhol (Venezuela)",
- "eu": "Basco (Basco)",
- "fr-lu": "Francês (Luxemburgo)",
- "gd": "Galês (Escócia)",
- "it-ch": "Italiano (Suíça)",
- "ko": "Coreano",
- "mk": "Macedônio (República da Macedônia)",
- "ro-mo": "Romano (Moldávia)",
- "ru-mo": "Russo (Moldávia)",
- "sb": "Sorábio",
- "sv-fi": "Sueco (Finlândia)",
- "zh-cn": "Chinês (República Popular da China)",
- "zh-hk": "Chinês (Hong Kong SAR)",
- "zh-sg": "Chinês (Singapura)",
- "zh-tw": "Chinês (Taiwan)",
- "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Uma mensagem de texto foi enviada para +%(msisdn)s. Gentileza entrar com o código de verificação que contém",
+ "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Uma mensagem de texto foi enviada para +%(msisdn)s. Introduza o código de verificação nela contido",
"%(items)s and %(remaining)s others": "%(items)s e %(remaining)s outros",
"%(items)s and one other": "%(items)s e um outro",
"%(items)s and %(lastItem)s": "%(items)s e %(lastItem)s",
- "and %(count)s others...": {
- "other": "e %(count)s outros...",
- "one": "e um outro..."
- },
+ "and %(count)s others...|other": "e %(count)s outros...",
+ "and %(count)s others...|one": "e um outro...",
"Are you sure?": "Você tem certeza?",
"Attachment": "Anexo",
"Autoplay GIFs and videos": "Reproduzir automaticamente GIFs e videos",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(day)s de %(monthName)s de %(fullYear)s às %(time)s",
- "fo": "Feroês",
- "sx": "Sutu",
- "sz": "Sami (Lappish)",
- "ve": "Venda",
- "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "Não consigo conectar ao servidor padrão - favor checar sua conexão à internet e verificar se o certificado SSL do seu servidor padrão é confiável.",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Não consigo conectar ao servidor padrão através de HTTP quando uma URL HTTPS está na barra de endereços do seu navegador. Use HTTPS ou então habilite scripts não seguros no seu navegador.",
"Change Password": "Alterar senha",
- "changing room on a RoomView is not supported": "mudar a sala em uma 'RoomView' não é permitido",
"Click to mute audio": "Clique para colocar o áudio no mudo",
"Click to mute video": "Clique para desabilitar imagens de vídeo",
"Click to unmute video": "Clique para voltar a mostrar imagens de vídeo",
@@ -582,7 +349,7 @@
"Devices": "Dispositivos",
"Direct chats": "Conversas pessoais",
"Disinvite": "Desconvidar",
- "Don't send typing notifications": "Não enviar notificação de estar digitando",
+ "Don't send typing notifications": "Não enviar notificação de escrita",
"Download %(text)s": "Baixar %(text)s",
"Enable encryption": "Habilitar criptografia",
"Enter Code": "Entre com o código",
@@ -608,12 +375,10 @@
"Join Room": "Ingressar na sala",
"Jump to first unread message.": "Ir diretamente para a primeira das mensagens não lidas.",
"Kick": "Remover",
- "Level": "Nível",
"Local addresses for this room:": "Endereço local desta sala:",
"Markdown is disabled": "A formatação 'Markdown' está desabilitada",
"Markdown is enabled": "A formatação 'Markdown' está habilitada",
"Message not sent due to unknown devices being present": "A mensagem não foi enviada por causa da presença de dispositivos desconhecidos",
- "Never send encrypted messages to unverified devices in this room": "Nunca envie mensagens criptografadas para dispositivos não verificados nesta sala",
"New address (e.g. #foo:%(localDomain)s)": "Novo endereço (p.ex: #algo:%(localDomain)s)",
"not set": "não definido",
"not specified": "não especificado",
@@ -631,7 +396,6 @@
"Some of your messages have not been sent.": "Algumas das suas mensagens não foram enviadas.",
"Submit": "Enviar",
"The main address for this room is": "O endereço principal desta sala é",
- "This action cannot be performed by a guest user. Please register to be able to do this.": "Esta ação não pode ser realizada por um/a usuário/a visitante. Por favor, registre-se para poder fazer isso.",
"%(actionVerb)s this person?": "%(actionVerb)s esta pessoa?",
"This room has no local addresses": "Esta sala não tem endereços locais",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Tentei carregar um ponto específico na linha do tempo desta sala, mas parece que você não tem permissões para ver a mensagem em questão.",
@@ -646,7 +410,6 @@
"You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Você não poderá desfazer esta mudança, pois estará dando a este(a) usuário(a) o mesmo nível de permissões que você.",
"Make Moderator": "Tornar moderador(a)",
"Room": "Sala",
- "(~%(searchCount)s results)": "(±%(searchCount)s resultados)",
"Cancel": "Cancelar",
"bold": "negrito",
"italic": "itálico",
@@ -656,7 +419,7 @@
"quote": "citação",
"bullet": "marcador de lista",
"numbullet": "marcador de numeração",
- "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)singressaram %(repeats)s vezes",
+ "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)s entraram %(repeats)s vezes",
"%(oneUser)sjoined %(repeats)s times": "%(oneUser)singressou %(repeats)s vezes",
"%(severalUsers)sjoined": "%(severalUsers)singressaram",
"%(oneUser)sjoined": "%(oneUser)singressou",
@@ -740,7 +503,6 @@
"You must join the room to see its files": "Você precisa ingressar na sala para ver seus arquivos",
"Reject all %(invitedRooms)s invites": "Rejeitar todos os %(invitedRooms)s convites",
"Start new chat": "Iniciar nova conversa",
- "Guest users can't invite users. Please register.": "Visitantes não podem convidar usuárias(os) registradas(os). Favor registrar.",
"Failed to invite": "Falha ao enviar o convite",
"Failed to invite user": "Falha ao convidar a(o) usuária(o)",
"Failed to invite the following users to the %(roomName)s room:": "Falha ao convidar as(os) seguintes usuárias(os) para a sala %(roomName)s:",
@@ -762,7 +524,6 @@
"Unable to restore session": "Não foi possível restaurar a sessão",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Se você já usou antes uma versão mais recente do Riot, a sua sessão pode ser incompatível com esta versão. Feche esta janela e tente abrir com a versão mais recente.",
"Continue anyway": "Continuar de qualquer maneira",
- "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "O seu nome público é como você aparecerá para as outras pessoas quando conversar nas salas. Qual nome público você deseja ter?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Você está atualmente bloqueando dispositivos não verificados. Para enviar mensagens para estes dispositivos, você necessita antes verificá-los.",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "Nós recomendamos que você passe pelo processo de verificação para cada dispositivo para confirmar que eles pertencem às pessoas que efetivamente são suas donas, mas você pode reenviar a mensagem sem verificar isso, se assim o desejar.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contém dispositivos que você não viu antes.",
@@ -812,7 +573,6 @@
"Offline": "Offline",
"The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "O arquivo exportado irá permitir a qualquer pessoa que o acesse a descriptografar qualquer uma das mensagens criptografadas que você veja, portanto seja bastante cuidadosa(o) em manter este arquivo seguro. Para deixar este arquivo mais protegido, recomendamos que você insira uma senha abaixo, que será usada para criptografar o arquivo. Só será possível importar os dados usando exatamente a mesma senha.",
"This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Este processo faz com que você possa importar as chaves de criptografia que tinha previamente exportado de outro cliente Matrix. Você poderá então descriptografar todas as mensagens que o outro cliente pôde criptografar.",
- "You are about to be taken to a third-party site so you can authenticate your account for use with {integrationsUrl}. Do you wish to continue?": "",
"Start automatically after system login": "Iniciar automaticamente ao iniciar o sistema",
"Desktop specific": "Específico para o app de computadores desktop",
"You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Você será levado agora a um site de terceiros para poder autenticar a sua conta para uso com o serviço %(integrationsUrl)s. Você quer continuar?",
@@ -821,7 +581,6 @@
"disabled": "desabilitado",
"enabled": "habilitado",
"Export": "Exportar",
- "Failed to register as guest:": "Falha ao se registrar como visitante:",
"Guest access is disabled on this Home Server.": "O acesso para visitantes está desabilitado neste Servidor de Base.",
"Import": "Importar",
"Incorrect username and/or password.": "Nome de usuária(o) e/ou senha incorreto.",
@@ -829,7 +588,6 @@
"Results from DuckDuckGo": "Resultados de DuckDuckGo",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "A chave de assinatura que você forneceu é a mesma que a chave de assinatura que você recebeu do dispositivo %(deviceId)s de %(userId)s . O dispositivo foi portanto marcado como verificado.",
"This Home Server does not support login using email address.": "Este Servidor de Base não permite login usando endereço de e-mail.",
- "There was a problem logging in.": "Houve um problema ao fazer login.",
"Unknown (user, device) pair:": "Par usuária(o)-dispositivo desconhecido:",
"Unrecognised command:": "Comando não reconhecido:",
"Unrecognised room alias:": "Apelido de sala não reconhecido:",
@@ -837,18 +595,17 @@
"Verified key": "Chave verificada",
"WARNING: Device already verified, but keys do NOT MATCH!": "ATENÇÃO: O dispositivo já foi verificado, mas as chaves NÃO SÃO IGUAIS!",
"WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "ATENÇÃO: VERIFICAÇÃO DE CHAVE FALHOU! A chave de assinatura para a(o) usuária(o) %(userId)s e dispositivo %(deviceId)s é \"%(fprint)s\", que não é igual à chave fornecida \"%(fingerprint)s\". Isso pode significar que suas comunicações estão sendo interceptadas!",
- "Set a Display Name": "Definir seu nome público",
"for %(amount)ss": "por %(amount)ss",
"for %(amount)sm": "por %(amount)sm",
"for %(amount)sh": "por %(amount)sh",
"for %(amount)sd": "por %(amount)sd",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s removeu a imagem da sala.",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s alterou a imagem da sala %(roomName)s",
- "$senderDisplayName changed the room avatar to
": "$senderDisplayName alterou a imagem da sala para
",
+ "%(senderDisplayName)s changed the room avatar to
": "%(senderDisplayName)s alterou a imagem da sala para
",
"Missing Media Permissions, click here to request.": "Faltam permissões para uso de mídia no seu computador. Clique aqui para solicitá-las.",
- "No Microphones detected": "Não foi detectado nenhum microfone",
- "No Webcams detected": "Não foi detectada nenhuma Webcam",
- "No media permissions": "Não há permissões de uso de vídeo/áudio no seu navegador",
+ "No Microphones detected": "Não foi detetado nenhum microfone",
+ "No Webcams detected": "Não foi detetada nenhuma Webcam",
+ "No media permissions": "Não há permissões para o uso de vídeo/áudio no seu navegador",
"You may need to manually permit Riot to access your microphone/webcam": "Você talvez precise autorizar manualmente que o Riot acesse seu microfone e webcam",
"Default Device": "Dispositivo padrão",
"Microphone": "Microfone",
@@ -870,28 +627,24 @@
"Tagged as: ": "Marcado como: ",
"You have disabled URL previews by default.": "Você desabilitou pré-visualizações de links por padrão.",
"You have enabled URL previews by default.": "Você habilitou pré-visualizações de links por padrão.",
- "You have entered an invalid contact. Try using their Matrix ID or email address.": "Você inseriu um contato inválido. Tente usar o ID Matrix ou endereço de e-mail da pessoa que está buscando.",
"You have been banned from %(roomName)s by %(userName)s.": "Você foi expulso(a) da sala %(roomName)s por %(userName)s.",
"Send anyway": "Enviar de qualquer maneira",
"This room": "Esta sala",
"Create new room": "Criar nova sala",
"Click on the button below to start chatting!": "Clique no botão abaixo para começar a conversar!",
- "Disable markdown formatting": "Desabilitar formatação MarkDown",
"No display name": "Sem nome público de usuária(o)",
"This will be your account name on the homeserver, or you can pick a different server.": "Este será seu nome de conta no Servidor de Base , ou então você pode escolher um servidor diferente.",
- "Uploading %(filename)s and %(count)s others.one": "Enviando o arquivo %(filename)s e %(count)s outros arquivos",
+ "Uploading %(filename)s and %(count)s others|one": "Enviando o arquivo %(filename)s e %(count)s outros arquivos",
"Hide removed messages": "Ocultar mensagens removidas",
"You may wish to login with a different account, or add this email to this account.": "Você pode querer fazer login com uma conta diferente, ou adicionar este e-mail a esta conta.",
- "Welcome page": "Página de boas vindas",
"Upload new:": "Enviar novo:",
"Private Chat": "Conversa privada",
"You must register to use this functionality": "Você deve se registrar para poder usar esta funcionalidade",
- "And %(count)s more...": "E mais %(count)s...",
"Start chatting": "Iniciar a conversa",
"Public Chat": "Conversa pública",
- "Uploading %(filename)s and %(count)s others.zero": "Enviando o arquivo %(filename)s",
+ "Uploading %(filename)s and %(count)s others|zero": "Enviando o arquivo %(filename)s",
"Room contains unknown devices": "Esta sala contém dispositivos desconhecidos",
- "Admin tools": "Ferramentas de administração",
+ "Admin Tools": "Ferramentas de administração",
"You have been kicked from %(roomName)s by %(userName)s.": "Você foi removido(a) da sala %(roomName)s por %(userName)s.",
"Undecryptable": "Não é possível descriptografar",
"Incoming video call from %(name)s": "Chamada de vídeo de %(name)s recebida",
@@ -899,7 +652,6 @@
"To link to a room it must have an address.": "Para produzir um link para uma sala, ela necessita ter um endereço.",
"a room": "uma sala",
"Your home server does not support device management.": "O seu Servidor de Base não suporta o gerenciamento de dispositivos.",
- "Searching known users": "Buscando pessoas conhecidas",
"Alias (optional)": "Apelido (opcional)",
"Active call (%(roomName)s)": "Chamada ativa (%(roomName)s)",
"Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Não foi possível garantir que o endereço para o qual este convite foi enviado bate com alqum que está associado com sua conta.",
@@ -907,7 +659,7 @@
"Failed to upload profile picture!": "Falha ao enviar a imagem de perfil!",
"This invitation was sent to an email address which is not associated with this account:": "Este convite foi enviado para um endereço de e-mail que não é associado a esta conta:",
"Show Text Formatting Toolbar": "Exibir barra de formatação de texto",
- "Room directory": "Lista pública de salas",
+ "Room directory": "Lista de salas",
"Failed to fetch avatar URL": "Falha ao obter a URL da imagem de perfil",
"Incoming call from %(name)s": "Chamada de %(name)s recebida",
"Last seen": "Último uso",
@@ -920,27 +672,26 @@
"Enable Notifications": "Habilitar notificações",
"Username not available": "Nome de usuária(o) indisponível",
"Encrypted by a verified device": "Criptografado por um dispositivo verificado",
- "(~%(count)s results).other": "(~%(count)s resultados)",
+ "(~%(count)s results)|other": "(~%(count)s resultados)",
"unknown caller": "a pessoa que está chamando é desconhecida",
"Start authentication": "Iniciar autenticação",
- "(~%(count)s results).one": "(~%(count)s resultado)",
+ "(~%(count)s results)|one": "(~%(count)s resultado)",
"New Password": "Nova senha",
"Username invalid: %(errMessage)s": "Nome de usuária(o) inválido: %(errMessage)s",
"Disable Notifications": "Desabilitar notificações",
- "%(count)s new messages.one": "%(count)s nova mensagem",
+ "%(count)s new messages|one": "%(count)s nova mensagem",
"Device Name": "Nome do dispositivo",
"Incoming voice call from %(name)s": "Chamada de voz de %(name)s recebida",
"If you already have a Matrix account you can log in instead.": "Se você já tem uma conta Matrix, pode também fazer login.",
"Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Não foi possível conectar ao Servidor de Base. Por favor, confira sua conectividade à internet, garanta que o certificado SSL do Servidor de Base é confiável, e que uma extensão do navegador não esteja bloqueando as requisições de rede.",
"Encrypted by an unverified device": "Criptografado por um dispositivo não verificado",
- "Set": "Definir",
"Unencrypted message": "Mensagem não criptografada",
"Join as voice or video.": "Participar por voz ou por vídeo.",
- "Uploading %(filename)s and %(count)s others.other": "Enviando o arquivo %(filename)s e %(count)s outros arquivos",
+ "Uploading %(filename)s and %(count)s others|other": "Enviando o arquivo %(filename)s e %(count)s outros arquivos",
"Username available": "Nome de usuária(o) disponível",
"Close": "Fechar",
"Level:": "Nível:",
- "%(count)s new messages.other": "%(count)s novas mensagens",
+ "%(count)s new messages|other": "%(count)s novas mensagens",
"Unverified": "Não verificado",
"Click here to join the discussion!": "Clique aqui para participar da conversa!",
"Decline": "Recusar",
@@ -956,8 +707,105 @@
"Home": "Início",
"Something went wrong!": "Algo deu errado!",
"%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (nível de permissão %(powerLevelNumber)s)",
- "Start chat": "Iniciar conversa pessoal",
+ "Start chat": "Iniciar conversa",
"You already have existing direct chats with this user:": "Você já tem conversas pessoais com esta pessoa:",
"Accept": "Aceitar",
- "%(roomName)s is not accessible at this time.": "%(roomName)s não está acessível neste momento."
+ "%(roomName)s is not accessible at this time.": "%(roomName)s não está acessível neste momento.",
+ "Add a widget": "Adicionar widget",
+ "Allow": "Permitir",
+ "Cannot add any more widgets": "Não é possível adicionar mais widgets",
+ "Changes colour scheme of current room": "Altera o esquema de cores da sala atual",
+ "Delete widget": "Apagar widget",
+ "Define the power level of a user": "Definir o nível de privilégios de um utilizador",
+ "Do you want to load widget from URL:": "Deseja carregar o widget a partir do URL:",
+ "Edit": "Editar",
+ "Enable automatic language detection for syntax highlighting": "Ativar deteção automática da linguagem para o destaque da sintaxe",
+ "Hide Apps": "Ocultar apps",
+ "Hide join/leave messages (invites/kicks/bans unaffected)": "Ocultar mensagens de entrada/saída (não afeta convites/expulsões/proibições)",
+ "Hide avatar and display name changes": "Ocultar mudanças de avatar e de nome público",
+ "Integrations Error": "Erro de integrações",
+ "Publish this room to the public in %(domain)s's room directory?": "Publicar esta sala ao público no diretório de salas de %(domain)s's?",
+ "AM": "AM",
+ "PM": "PM",
+ "NOTE: Apps are not end-to-end encrypted": "NOTA: As apps não são cifradas ponta-a-ponta",
+ "Press to start a chat with someone": "Clique para iniciar uma conversa com alguém",
+ "Revoke widget access": "Revogar o acesso do wiget",
+ "Sets the room topic": "Define o assunto da sala",
+ "Show Apps": "Mostrar apps",
+ "The maximum permitted number of widgets have already been added to this room.": "O número máximo de widgets permitido já foi adicionado a esta sala.",
+ "To get started, please pick a username!": "Para começar, escolha um nome de utilizador!",
+ "Unable to create widget.": "Não foi possível criar o widget.",
+ "Unbans user with given id": "Retira ban ao utilizador através do seu id",
+ "(could not connect media)": "(não foi possível conectar-se ao media)",
+ "(no answer)": "(sem resposta)",
+ "(unknown failure: %(reason)s)": "(falha desconhecida: %(reason)s)",
+ "You are not in this room.": "Não se encontra nesta sala.",
+ "You do not have permission to do that in this room.": "Não tem permissão para fazer isso nesta sala.",
+ "You're not in any rooms yet! Press to make a room or to browse the directory": "Ainda não se encontra em nenhuma sala! Clique em para criar uma sala ou em para navegar o diretório de salas",
+ "Copied!": "Copiado!",
+ "Failed to copy": "Falha ao copiar",
+ "Verifies a user, device, and pubkey tuple": "Verifica um utilizador, o dispositivo e o tuplo da chave pública",
+ "Updates": "Atualizações",
+ "Check for update": "Procurar atualizações",
+ "Your browser does not support the required cryptography extensions": "O seu browser não suporta as extensões de criptografia necessárias",
+ "Not a valid Riot keyfile": "Não é um ficheiro de chaves Riot válido",
+ "Authentication check failed: incorrect password?": "Erro de autenticação: palavra-passe incorreta?",
+ "Disable Peer-to-Peer for 1:1 calls": "Desativar ponto-a-ponto para chamadas 1:1",
+ "Do you want to set an email address?": "Deseja definir um endereço de e-mail?",
+ "This will allow you to reset your password and receive notifications.": "Isto irá permitir-lhe redefinir a sua palavra-passe e receber notificações.",
+ "To return to your account in future you need to set a password": "Para voltar à sua conta no futuro necessita de definir uma palavra-passe",
+ "Skip": "Saltar",
+ "Start verification": "Iniciar verificação",
+ "Share without verifying": "Partilhar sem verificar",
+ "Ignore request": "Ignorar pedido",
+ "You added a new device '%(displayName)s', which is requesting encryption keys.": "Adicionou um novo dispositivo '%(displayName)s', que está a pedir chaves de encriptação.",
+ "Your unverified device '%(displayName)s' is requesting encryption keys.": "O seu dispositivo não verificado '%(displayName)s' está a pedir chaves de encriptação.",
+ "Encryption key request": "Pedido de chave de encriptação",
+ "Autocomplete Delay (ms):": "Atraso de preenchimento automático (ms):",
+ "Loading device info...": "A carregar as informações do dispositivo...",
+ "Example": "Exemplo",
+ "Create": "Criar",
+ "Room creation failed": "Criação de sala falhou",
+ "Featured Rooms:": "Salas em destaque:",
+ "Featured Users:": "Utilizadores em destaque:",
+ "Automatically replace plain text Emoji": "Substituir Emoji em texto automaticamente",
+ "Failed to upload image": "Falha ao carregar imagem",
+ "Hide avatars in user and room mentions": "Ocultar avatares nas menções de utilizadores e salas",
+ "%(widgetName)s widget added by %(senderName)s": "Widget %(widgetName)s adicionado por %(senderName)s",
+ "%(widgetName)s widget removed by %(senderName)s": "Widget %(widgetName)s removido por %(senderName)s",
+ "%(widgetName)s widget modified by %(senderName)s": "Widget %(widgetName)s modificado por %(senderName)s",
+ "Robot check is currently unavailable on desktop - please use a web browser": "A verificação através de robot está atualmente indisponível na versão desktop - utilize um navegador web",
+ "Advanced options": "Opções avançadas",
+ "This setting cannot be changed later!": "Esta definição não pode ser alterada mais tarde!",
+ "Ignored Users": "Utilizadores Ignorados",
+ "Ignore": "Ignorar",
+ "User Options": "Opções de Utilizador",
+ "Ignored user": "Utilizador ignorado",
+ "Description": "Descrição",
+ "Name or matrix ID": "Nome ou ID do matrix",
+ "Leave": "Sair",
+ "Add a Room": "Adicionar uma sala",
+ "Add a User": "Adicionar um utilizador",
+ "Unknown": "Desconhecido",
+ "email address": "endereço de email",
+ "Invites sent": "Convites enviados",
+ "Block users on other matrix homeservers from joining this room": "Impede utilizadores de outros servidores base matrix de se juntar a esta sala",
+ "Unignore": "Deixar de ignorar",
+ "You are now ignoring %(userId)s": "Está agora a ignorar %(userId)s",
+ "You are no longer ignoring %(userId)s": "%(userId)s já não é ignorado",
+ "Unignored user": "Utilizador não ignorado",
+ "Stops ignoring a user, showing their messages going forward": "Deixa de ignorar um utilizador, mostrando as suas mensagens daqui para a frente",
+ "Ignores a user, hiding their messages from you": "Ignora um utilizador, deixando de mostrar as mensagens dele",
+ "Disable big emoji in chat": "Desativar emojis grandes no chat",
+ "Disable Emoji suggestions while typing": "Desativar sugestões de Emoji durante a escrita",
+ "There's no one else here! Would you like to invite others or stop warning about the empty room?": "Não há ninguém aqui! Gostarias de convidar alguém ou parar avisos sobre a sala vazia?",
+ "Remove avatar": "Remover avatar",
+ "Banned by %(displayName)s": "Banido por %(displayName)s",
+ "Message removed by %(userId)s": "Mensagem removida por %(userId)s",
+ "To send messages, you must be a": "Para enviar mensagens, tens de ser um(a)",
+ "To invite users into the room, you must be a": "Para convidar utilizadores para esta sala, tens de ser um(a)",
+ "To configure the room, you must be a": "Para configurar esta sala, tens de ser um(a)",
+ "To ban users, you must be a": "Para banir utilizadores, tens de ser um(a)",
+ "To remove other users' messages, you must be a": "Para remover mensagens de outros utilizadores, tens de ser um(a)",
+ "To send events of type , you must be a": "Para enviar eventos do tipo , tens de ser um(a)"
}
diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json
index 7e7ca123b9..fee6bcba31 100644
--- a/src/i18n/strings/pt_BR.json
+++ b/src/i18n/strings/pt_BR.json
@@ -1,47 +1,29 @@
{
- "accept": "aceitar",
- "accepted an invitation": "aceitou um convite",
- "accepted the invitation for": "aceitou o convite para",
"Account": "Conta",
"Add email address": "Adicionar endereço de email",
"Add phone number": "Adicionar número de telefone",
"Admin": "Administrador/a",
"Advanced": "Avançado",
"Algorithm": "Algoritmo",
- "all room members, from the point they are invited.": "todos os membros da sala, a partir de quando foram convidados",
- "all room members, from the point they joined.": "todos os membros da sala, a partir de quando entraram",
- "all room members": "todas as pessoas da sala",
- "an address": "um endereço",
- "and": "e",
"An email has been sent to": "Um email foi enviado para",
"New passwords don't match": "As novas senhas não conferem",
"A new password must be entered.": "Uma nova senha precisa ser informada.",
- "answered the call.": "respondeu à chamada.",
"Anyone who knows the room's link, apart from guests": "Qualquer pessoa que tenha o link da sala, exceto visitantes",
"Anyone who knows the room's link, including guests": "Qualquer pessoa que tenha o link da sala, incluindo visitantes",
- "Are you sure you want to leave the room?": "Você tem certeza que deseja sair da sala?",
"Are you sure you want to reject the invitation?": "Você tem certeza que deseja rejeitar este convite?",
"Are you sure you want to upload the following files?": "Você tem certeza que deseja enviar os seguintes arquivos?",
- "banned": "baniu",
"Banned users": "Usuárias/os banidas/os",
"Bans user with given id": "Banir usuários com o identificador informado",
"Blacklisted": "Bloqueado",
"Bug Report": "Repotar problemas de funcionamento",
"Bulk Options": "Opcões de Batelada",
"Can't load user settings": "Não é possível carregar configurações de usuário",
- "changed avatar": "mudou sua imagem de perfil (avatar)",
- "changed name": "mudou seu nome",
- "changed their display name from": "mudou seu nome para",
- "changed their profile picture": "alterou sua foto de perfil",
- "changed the power level of": "mudou o nível de permissões de",
- "changed the room name to": "mudou o nome da sala para",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s mudou o tópico para \"%(topic)s\".",
"Changes to who can read history will only apply to future messages in this room": "As mudanças sobre quem pode ler o histórico da sala só serão aplicadas às mensagens futuras nesta sala",
"Changes your display nickname": "Troca o seu apelido",
"Claimed Ed25519 fingerprint key": "Chave reivindicada da Impressão Digital Ed25519",
"Clear Cache and Reload": "Limpar Memória Cache e Recarregar",
"Clear Cache": "Limpar Memória Cache",
- "Click here": "Clique aqui",
"Click here to fix": "Clique aqui para resolver isso",
"Commands": "Comandos",
"Confirm password": "Confirme a nova senha",
@@ -49,47 +31,38 @@
"Continue": "Continuar",
"Could not connect to the integration server": "Não foi possível conectar ao servidor de integrações",
"Create an account": "Criar uma conta",
- "Create a new account": "Criar uma conta",
"Create Room": "Criar Sala",
"Cryptography": "Criptografia",
"Current password": "Senha atual",
"Curve25519 identity key": "Chave de Indetificação Curve25519",
"Deactivate Account": "Desativar conta",
"Deactivate my account": "Desativar minha conta",
- "decline": "rejeitar",
"Decryption error": "Erro de descriptografia",
"Default": "Padrão",
- "demote": "reduzir prioridade",
"Deops user with given id": "Retirar função de moderador do usuário com o identificador informado",
"Device ID": "Identificador do dispositivo",
"Devices will not yet be able to decrypt history from before they joined the room": "Os dispositivos não serão ainda capazes de descriptografar o histórico anterior à sua entrada na sala",
- "Direct Chat": "Conversa pessoal",
"Disable inline URL previews by default": "Desabilitar visualizações prévias por padrão",
"Display name": "Nome",
"Displays action": "Visualizar atividades",
"Ed25519 fingerprint": "Impressão Digital Ed25519",
- "Email Address": "endereço de email",
"Email, name or matrix ID": "Email, nome ou ID matrix",
"Emoji": "Emoji",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "Mensagens criptografadas não serão visíveis em clientes que ainda não implementaram criptografia",
"Encrypted room": "Sala criptografada",
"Encryption is enabled in this room": "Criptografia está habilitada nesta sala",
"Encryption is not enabled in this room": "Criptografia não está habilitada nesta sala",
- "ended the call.": "chamada encerrada.",
"End-to-end encryption information": "Informação criptografada ponta-a-ponta",
"End-to-end encryption is in beta and may not be reliable": "A criptografia ponta a ponta está em estágio beta e não deve ser totalmente confiável",
"Error": "Erro",
"Event information": "Informação do evento",
"Export E2E room keys": "Exportar chaves ponta-a-ponta da sala",
"Failed to change password. Is your password correct?": "Não foi possível mudar a senha. A sua senha está correta?",
- "Failed to forget room": "Não foi possível esquecer a sala",
"Failed to leave room": "Falha ao tentar deixar a sala",
"Failed to reject invitation": "Falha ao tentar rejeitar convite",
- "Failed to send email: ": "Falha ao tentar enviar email",
"Failed to set avatar.": "Falha ao tentar definir foto do perfil.",
"Failed to unban": "Não foi possível desfazer o banimento",
"Failed to upload file": "Falha ao enviar o arquivo",
- "favourite": "favoritar",
"Favourite": "Favorito",
"Favourites": "Favoritos",
"Filter room members": "Filtrar integrantes da sala",
@@ -99,10 +72,6 @@
"For security, this session has been signed out. Please sign in again.": "Por questões de segurança, esta sessão foi encerrada. Por gentileza conecte-se novamente.",
"Found a bug?": "Encontrou um problema de funcionamento do sistema?",
"Guests cannot join this room even if explicitly invited.": "Visitantes não podem entrar nesta sala, mesmo se forem explicitamente convidadas/os.",
- "Guests can't set avatars. Please register.": "Convidados não podem definir uma foto do perfil. Por favor, registre-se.",
- "Guests can't use labs features. Please register.": "Convidados não podem usar as funcionalidades de laboratório (lab), por gentileza se registre.",
- "Guest users can't upload files. Please register to upload.": "Usuários não podem fazer envio de arquivos. Por favor se cadastre para enviar arquivos.",
- "had": "teve",
"Hangup": "Desligar",
"Historical": "Histórico",
"Homeserver is": "Servidor padrão é",
@@ -110,32 +79,21 @@
"I have verified my email address": "Eu verifiquei o meu endereço de email",
"Import E2E room keys": "Importar chave de criptografia ponta-a-ponta (E2E) da sala",
"Invalid Email Address": "Endereço de email inválido",
- "invited": "convidou",
"Invite new room members": "Convidar novas pessoas para ingressar na sala",
"Invites": "Convidar",
"Invites user with given id to current room": "Convidar usuários com um dado identificador para esta sala",
- "is a": "é um(a)",
"Sign in with": "Quero entrar",
- "joined and left": "entrou e saiu",
- "joined": "entrou",
- "joined the room": "entrou na sala",
"Joins room with given alias": "Entra na sala com o nome informado",
"Kicks user with given id": "Remove usuário com o identificador informado",
"Labs": "Laboratório",
"Leave room": "Sair da sala",
- "left and rejoined": "saiu e entrou novamente",
- "left": "saiu",
- "left the room": "saiu da sala",
- "Logged in as": "Logado como",
"Login as guest": "Entrar como visitante",
"Logout": "Sair",
"Low priority": "Baixa prioridade",
- "made future room history visible to": "deixou o histórico futuro da sala visível para",
"Manage Integrations": "Gerenciar integrações",
"Members only": "Apenas integrantes da sala",
"Mobile phone number": "Telefone celular",
"Moderator": "Moderador/a",
- "my Matrix ID": "com meu ID do Matrix",
"Name": "Nome",
"Never send encrypted messages to unverified devices from this device": "Nunca envie mensagens criptografada para um dispositivo não verificado a partir deste dispositivo",
"Never send encrypted messages to unverified devices in this room from this device": "Nunca envie mensagens criptografadas para dispositivos não verificados nesta sala a partir deste dispositivo",
@@ -143,39 +101,26 @@
"New passwords must match each other.": "As novas senhas informadas precisam ser idênticas.",
"none": "nenhum",
"Notifications": "Notificações",
- " (not supported by this browser)": "não suportado por este navegador",
"": "",
"NOT verified": "NÃO verificado",
"No users have specific privileges in this room": "Nenhum/a usuário/a possui privilégios específicos nesta sala",
- "olm version: ": "Versão do olm: ",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "Assim que a criptografia é ativada para uma sala, ela não poderá ser desativada novamente (ainda)",
- "Once you've followed the link it contains, click below": "Quando você tiver clicado no link que está no email, clique o botão abaixo",
+ "Once you've followed the link it contains, click below": "Quando você tiver clicado no link que está no email, clique o botão abaixo",
"Only people who have been invited": "Apenas pessoas que tenham sido convidadas",
- "or": "ou",
- "other": "outro",
- "others": "outros",
"Password": "Senha",
"Passwords can't be empty": "As senhas não podem estar em branco",
"People": "Pessoas",
"Permissions": "Permissões",
"Phone": "Telefone",
- "placed a": "iniciou uma",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Por favor verifique seu email e clique no link enviado. Quando finalizar este processo, clique para continuar.",
- "Please Register": "Por favor, cadastre-se",
"Privacy warning": "Alerta sobre privacidade",
"Privileged Users": "Usuárias/os privilegiadas/os",
"Profile": "Perfil",
"Refer a friend to Riot:": "Indicar um amigo para participar",
- "rejected": "recusou",
- "rejected the invitation.": "rejeitou o convite.",
"Reject invitation": "Rejeitar convite",
"Remove Contact Information?": "Remover informação de contato?",
- "removed their display name": "removeu seu nome",
- "removed their profile picture": "removeu sua foto de perfil",
"Remove": "Remover",
- "requested a VoIP conference": "requisitou uma conferência VoIP",
"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.": "Atualmente, ao alterar sua senha, você também zera todas as chaves de criptografia ponta-a-ponta em todos os dipositivos, fazendo com que o histórico de conversas da sala não possa mais ser lido, a não ser que você antes exporte suas chaves de sala e as reimporte após a alteração da senha. No futuro, isso será melhorado.",
- "restore": "restaurar",
"Return to app": "Retornar ao aplicativo",
"Return to login screen": "Retornar à tela de login",
"Room Colour": "Cores da sala",
@@ -190,13 +135,10 @@
"Send Invites": "Enviar convites",
"Send Reset Email": "Enviar email para redefinição de senha",
"sent an image": "enviou uma imagem",
- "sent an invitation to": "enviou um convite para",
"sent a video": "enviou um vídeo",
"Server may be unavailable or overloaded": "Servidor pode estar indisponível ou sobrecarregado",
"Server may be unavailable, overloaded, or you hit a bug.": "O servidor pode estar indisponível ou sobrecarregado, ou então você encontrou uma falha no sistema.",
"Session ID": "Identificador de sessão",
- "set a profile picture": "colocou uma foto de perfil",
- "set their display name to": "configurou seu nome para",
"Settings": "Configurações",
"Show panel": "Mostrar painel",
"Signed Out": "Deslogar",
@@ -210,31 +152,14 @@
"Start a chat": "Começar uma conversa",
"Start Chat": "Começar conversa",
"Success": "Sucesso",
- "tag as": "etiquetar como",
- "tag direct chat": "definir como conversa pessoal",
"The default role for new room members is": "O papel padrão para novas/os integrantes da sala é",
"The email address linked to your account must be entered.": "O endereço de email relacionado a sua conta precisa ser informado.",
- "their invitations": "seus convites",
- "their invitation": "seu convite",
- "These are experimental features that may break in unexpected ways. Use with caution": "Estes são recursos experimentais que podem não funcionar corretamente. Use com cuidado.",
"The visibility of existing history will be unchanged": "A visibilidade do histórico atual não será alterada",
"This doesn't appear to be a valid email address": "Este não aparenta ser um endereço de email válido",
- "this invitation?": "este convite?",
"This is a preview of this room. Room interactions have been disabled": "Esta é uma pré visualização desta sala. As interações com a sala estão desabilitadas",
"This room is not accessible by remote Matrix servers": "Esta sala não é acessível para servidores Matrix remotos",
"This room's internal ID is": "O ID interno desta sala é",
- "times": "vezes",
- "To ban users": "Para banir usuárias/os",
- "To configure the room": "Para poder configurar a sala",
- "To invite users into the room": "Para convidar usuárias/os para esta sala",
- "to join the discussion": "para se juntar à conversa",
- "To kick users": "Para poder remover pessoas da sala",
- "To link to a room it must have": "Para fazer um link para uma sala, ela deve ter",
- "To redact messages": "Para poder apagar mensagens",
"To reset your password, enter the email address linked to your account": "Para redefinir sua senha, entre com o email da sua conta",
- "To send events of type": "Para enviar eventos do tipo",
- "To send messages": "Para enviar mensagens",
- "turned on end-to-end encryption (algorithm": "acionou a encriptação ponta-a-ponta (algoritmo",
"Unable to add email address": "Não foi possível adicionar endereço de email",
"Unable to remove contact information": "Não foi possível remover informação de contato",
"Unable to verify email address.": "Não foi possível verificar o endereço de email.",
@@ -243,7 +168,6 @@
"unencrypted": "não criptografado",
"unknown device": "dispositivo desconhecido",
"unknown error code": "código de erro desconhecido",
- "unknown": "desconhecido",
"Upload avatar": "Enviar icone de perfil de usuário",
"uploaded a file": "enviou um arquivo",
"Upload Files": "Enviar arquivos",
@@ -261,24 +185,17 @@
"VoIP conference finished.": "Conferência VoIP encerrada.",
"VoIP conference started.": "Conferência VoIP iniciada.",
"(warning: cannot be disabled again!)": "(atenção: esta operação não poderá ser desfeita depois!)",
- "Warning": "Atenção!",
"was banned": "banida/o",
"was invited": "convidada/o",
"was kicked": "retirada/o da sala",
"was unbanned": "des-banida/o",
- "was": "foi",
- "were": "foram",
"Who can access this room?": "Quem pode acessar esta sala?",
"Who can read history?": "Quem pode ler o histórico da sala?",
"Who would you like to add to this room?": "Quais pessoas você gostaria de adicionar a esta sala?",
"Who would you like to communicate with?": "Com quem você gostaria de se comunicar?",
- "withdrawn": "retirado",
- "Would you like to": "Você gostaria de",
- "You are trying to access": "Você está tentando acessar a sala",
"You do not have permission to post to this room": "Você não tem permissão de postar nesta sala",
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Você foi desconectada/o de todos os dispositivos e portanto não receberá mais notificações no seu celular ou no computador. Para reativar as notificações, entre novamente em cada um dos dispositivos que costuma usar",
"You have no visible notifications": "Voce não possui notificações visíveis",
- "you must be a": "você precisa ser",
"Your password has been reset": "Sua senha foi redefinida",
"Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Sua senha foi alterada com sucesso. Você não receberá notificações em outros dispositivos até que você logue novamente por eles",
"You should not yet trust it to secure data": "Você não deve confiar nela ainda para preservar seus dados",
@@ -303,20 +220,11 @@
"Dec": "Dez",
"%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s, %(day)s de %(monthName)s às %(time)s",
"%(weekDayName)s %(time)s": "%(weekDayName)s às %(time)s",
- "en": "Inglês",
- "pt-br": "Português do Brasil",
- "de": "Alemão",
- "da": "Dinamarquês",
- "ru": "Russo",
"%(targetName)s accepted an invitation.": "%(targetName)s aceitou um convite.",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s aceitou o convite para %(displayName)s.",
- "all room members, from the point they are invited": "todas/os as/os integrantes da sala, a partir do momento em que foram convidadas/os",
- "all room members, from the point they joined": "todas/os as/os integrantes da sala, a partir do momento em que entraram na sala",
"%(names)s and %(lastPerson)s are typing": "%(names)s e %(lastPerson)s estão escrevendo",
"%(names)s and one other are typing": "%(names)s e uma outra pessoa estão escrevendo",
- "%(names)s and %(count)s others are typing": "%(names)s e %(count)s outras pessoas estão escrevendo",
"%(senderName)s answered the call.": "%(senderName)s atendeu à chamada.",
- "anyone": "qualquer pessoa",
"%(senderName)s banned %(targetName)s.": "%(senderName)s removeu %(targetName)s da sala.",
"Call Timeout": "Tempo esgotado. Chamada encerrada",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s mudou seu nome público de %(oldDisplayName)s para %(displayName)s.",
@@ -340,22 +248,22 @@
"Failed to verify email address: make sure you clicked the link in the email": "Não foi possível verificar o endereço de email: verifique se você realmente clicou no link que está no seu email",
"Failure to create room": "Não foi possível criar a sala",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s para %(toPowerLevel)s",
- "Guest users can't create new rooms. Please register to create room and start a chat.": "Visitantes não podem criar novas salas. Por favor, registre-se para criar uma sala e iniciar uma conversa.",
"%(senderName)s invited %(targetName)s.": "%(senderName)s convidou %(targetName)s.",
"%(displayName)s is typing": "%(displayName)s está escrevendo",
"%(targetName)s joined the room.": "%(targetName)s entrou na sala.",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s removeu %(targetName)s da sala.",
"%(targetName)s left the room.": "%(targetName)s saiu da sala.",
- "%(senderName)s made future room history visible to": "%(senderName)s deixou o histórico futuro da sala visível para",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s deixou o histórico futuro da sala visível para todos os membros da sala, a partir de quando foram convidados.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s deixou o histórico futuro da sala visível para todos os membros da sala, a partir de quando entraram.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s deixou o histórico futuro da sala visível para todas as pessoas da sala.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s deixou o histórico futuro da sala visível para qualquer pessoa.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s deixou o histórico futuro da sala visível para desconhecido (%(visibility)s).",
"Missing room_id in request": "Faltou o id da sala na requisição",
"Missing user_id in request": "Faltou o id de usuário na requisição",
"Must be viewing a room": "Tem que estar visualizando uma sala",
- "New Composer & Autocomplete": "Nova ferramenta de formatação de mensagens e autocompletar",
"(not supported by this browser)": "(não é compatível com este navegador)",
- "olm version": "versão olm",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s fez uma chamada de %(callType)s.",
"Power level must be positive integer.": "O nível de permissões tem que ser um número inteiro e positivo.",
- "Press": "Aperte",
"Press to start a chat with someone": "Clique em para iniciar a conversa com alguém",
"Reason": "Razão",
"%(targetName)s rejected the invitation.": "%(targetName)s recusou o convite.",
@@ -369,7 +277,6 @@
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s enviou um convite para %(targetDisplayName)s entrar na sala.",
"%(senderName)s set a profile picture.": "%(senderName)s definiu uma imagem de perfil.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s definiu seu nome público para %(displayName)s.",
- "tag as %(tagName)s": "marcar como %(tagName)s",
"This email address is already in use": "Este endereço de email já está sendo usado",
"This email address was not found": "Este endereço de email não foi encontrado",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "O arquivo '%(fileName)s' ultrapassa o limite de tamanho que nosso servidor permite enviar",
@@ -378,18 +285,12 @@
"This room is not recognised.": "Esta sala não é reconhecida.",
"These are experimental features that may break in unexpected ways": "Estas são funcionalidades experimentais que podem apresentar falhas",
"This phone number is already in use": "Este número de telefone já está sendo usado",
- "to browse the directory": "para navegar na lista pública de salas",
"to demote": "para reduzir prioridade",
"to favourite": "para favoritar",
- "to make a room or": "para criar uma sala ou",
- "To remove other users' messages": "Para apagar mensagens de outras pessoas",
"to restore": "para restaurar",
- "to start a chat with someone": "para iniciar uma conversa com alguém",
- "to tag as %(tagName)s": "para marcar como %(tagName)s",
"to tag direct chat": "para marcar a conversa como pessoal",
"To use it, just wait for autocomplete results to load and tab through them.": "Para usar esta funcionalidade, espere o carregamento dos resultados de autocompletar e então escolha entre as opções.",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s ativou criptografia ponta a ponta (algoritmo %(algorithm)s).",
- "Unable to restore previous session": "Não foi possível restaurar a sessão anterior",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s desfez o banimento de %(targetName)s.",
"Unable to capture screen": "Não foi possível capturar a imagem da tela",
"Unable to enable Notifications": "Não foi possível ativar as notificações",
@@ -423,156 +324,23 @@
"Share message history with new users": "Compartilhar histórico de mensagens com novas/os usuárias/os",
"Encrypt room": "Criptografar esta sala",
"There are no visible files in this room": "Não há arquivos públicos nesta sala",
- "Error changing language": "Erro ao mudar de idioma",
- "Riot was unable to find the correct Data for the selected Language.": "Não foi possível encontrar os dados para o idioma selecionado.",
"Connectivity to the server has been lost.": "A conexão com o servidor foi perdida. Verifique sua conexão de internet.",
"Sent messages will be stored until your connection has returned.": "Imagens enviadas ficarão armazenadas até que sua conexão seja reestabelecida.",
- "Auto-complete": "Autocompletar",
- "Resend all": "Reenviar todas as mensagens",
- "cancel all": "cancelar todas",
- "now. You can also select individual messages to resend or cancel.": "agora. Você também pode escolher mensagens individuais e definir se vai reenviar ou cancelar o envio.",
"Active call": "Chamada ativa",
- "af": "Afrikaans",
- "ar-ae": "Árabe (U.A.E.)",
- "ar-bh": "Árabe (Bahrain)",
- "ar-dz": "Árabe (Algéria)",
- "Sunday": "Domingo",
- "Monday": "Segunda",
- "ar-eg": "Árabe (Egito)",
- "ar-tn": "Árabe (Tunisia)",
- "be": "Bielorusso",
- "bg": "Búlgaro",
- "ca": "Catalão",
- "cs": "Tcheco",
- "el": "Grego",
- "en-au": "Inglês (Austrália)",
- "en-ca": "Inglês (Canadá)",
- "en-gb": "Inglês (Reino Unido)",
- "en-ie": "Inglês (Irlanda)",
- "en-nz": "Inglês (Nova Zelândia)",
- "en-us": "Inglês (Estados Unidos)",
- "es-ar": "Espanhol (Argentina)",
- "es-py": "Espanhol (Paraguai)",
- "es": "Espanhol (Espanha)",
- "et": "Estônia",
- "fa": "Farsi",
- "fi": "Finlandês",
- "fr-be": "Francês (Bélgica)",
- "fr-ca": "Francês (Canadá)",
- "fr-ch": "Francês (Suíça)",
- "fr": "Francês",
- "ga": "Irlandês",
- "he": "Hebreu",
- "hi": "Hindu",
- "hr": "Croácia",
- "hu": "Hungria",
- "id": "Indonésio",
- "is": "Islandês",
- "it": "Italiano",
- "ja": "Japonês",
- "ji": "Ídiche",
- "lt": "Lituânia",
- "lv": "Letão",
- "ms": "Malaio",
- "mt": "Maltês",
- "nl-be": "Holandês (Bélgica)",
- "nl": "Holandês",
- "no": "Norueguês",
- "pl": "Polonês",
- "pt": "Português (Portugal)",
- "rm": "Romanche",
- "ro": "Romeno",
- "sk": "Eslovaco",
- "sl": "Esloveno",
- "sq": "Albanês",
- "sr": "Sérvio",
- "sv": "Suécia",
- "th": "Tailandês",
- "tn": "Tsuana",
- "tr": "Turquia",
- "ts": "Tsonga",
- "uk": "Ucraniano",
- "ur": "Urdu",
- "vi": "Vietnamita",
- "xh": "Xhosa",
- "zu": "Zulu",
"Failed to forget room %(errCode)s": "Falhou ao esquecer a sala %(errCode)s",
- "Failed to join the room": "Falhou ao entrar na sala",
- "Tuesday": "Terça",
- "Wednesday": "Quarta",
- "Thursday": "Quinta",
- "Friday": "Sexta",
- "Saturday": "Sábado",
- "ar-iq": "Árabe (Iraque)",
- "ar-jo": "Árabe (Jordânia)",
- "ar-kw": "Árabe (Kuwait)",
- "ar-lb": "Árabe (Líbano)",
- "ar-ly": "Árabe (Líbia)",
- "ar-ma": "Árabe (Marrocos)",
- "ar-om": "Árabe (Omã)",
- "ar-qa": "Árabe (Catar)",
- "ar-sa": "Árabe (Arábia Saudita)",
- "ar-sy": "Árabe (Síria)",
- "ar-ye": "Árabe (Iémen)",
- "de-at": "Alemão (Austria)",
- "de-ch": "Alemão (Suíça)",
- "de-li": "Alemão (Liechtenstein)",
- "de-lu": "Alemão (Luxemburgo)",
- "en-bz": "Inglês (Belize)",
- "en-jm": "Inglês (Jamaica)",
- "en-tt": "English (Trindade)",
- "en-za": "English (África do Sul)",
- "es-bo": "Espanhol (Bolívia)",
- "es-cl": "Espanhol (Chile)",
- "es-co": "Espanhol (Colômbia)",
- "es-cr": "Espanhol (Costa Rica)",
- "es-do": "Espanhol (República Dominicana)",
- "es-ec": "Espanhol (Equador)",
- "es-gt": "Espanhol (Guatemala)",
- "es-hn": "Espanhol (Honduras)",
- "es-mx": "Espanhol (México)",
- "es-ni": "Espanhol (Nicarágua)",
- "es-pa": "Espanhol (Panamá)",
"%(oneUser)schanged their avatar": "%(oneUser)salterou sua imagem pública",
- "es-pe": "Espanhol (Peru)",
- "es-pr": "Espanhol (Porto Rico)",
- "es-sv": "Espanhol (El Salvador)",
- "es-uy": "Espanhol (Uruguai)",
- "es-ve": "Espanhol (Venezuela)",
- "eu": "Basco (Basco)",
- "fr-lu": "Francês (Luxemburgo)",
- "gd": "Galês (Escócia)",
- "it-ch": "Italiano (Suíça)",
- "ko": "Coreano",
- "mk": "Macedônio (República da Macedônia)",
- "ro-mo": "Romano (Moldávia)",
- "ru-mo": "Russo (Moldávia)",
- "sb": "Sorábio",
- "sv-fi": "Sueco (Finlândia)",
- "zh-cn": "Chinês (República Popular da China)",
- "zh-hk": "Chinês (Hong Kong SAR)",
- "zh-sg": "Chinês (Singapura)",
- "zh-tw": "Chinês (Taiwan)",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Uma mensagem de texto foi enviada para +%(msisdn)s. Gentileza entrar com o código de verificação que contém",
"%(items)s and %(remaining)s others": "%(items)s e %(remaining)s outros",
"%(items)s and one other": "%(items)s e um outro",
"%(items)s and %(lastItem)s": "%(items)s e %(lastItem)s",
- "and %(count)s others...": {
- "other": "e %(count)s outros...",
- "one": "e um outro..."
- },
+ "and %(count)s others...|one": "e um outro...",
+ "and %(count)s others...|other": "e %(count)s outros...",
"Are you sure?": "Você tem certeza?",
"Attachment": "Anexo",
"Autoplay GIFs and videos": "Reproduzir automaticamente GIFs e videos",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(day)s de %(monthName)s de %(fullYear)s às %(time)s",
- "fo": "Feroês",
- "sx": "Sutu",
- "sz": "Sami (Lappish)",
- "ve": "Venda",
- "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "Não consigo conectar ao servidor padrão - favor checar sua conexão à internet e verificar se o certificado SSL do seu servidor padrão é confiável.",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Não consigo conectar ao servidor padrão através de HTTP quando uma URL HTTPS está na barra de endereços do seu navegador. Use HTTPS ou então habilite scripts não seguros no seu navegador.",
"Change Password": "Alterar senha",
- "changing room on a RoomView is not supported": "mudar a sala em uma 'RoomView' não é permitido",
"Click to mute audio": "Clique para colocar o áudio no mudo",
"Click to mute video": "Clique para desabilitar imagens de vídeo",
"Click to unmute video": "Clique para voltar a mostrar imagens de vídeo",
@@ -609,12 +377,10 @@
"Join Room": "Ingressar na sala",
"Jump to first unread message.": "Ir diretamente para a primeira das mensagens não lidas.",
"Kick": "Remover",
- "Level": "Nível",
"Local addresses for this room:": "Endereço local desta sala:",
"Markdown is disabled": "A formatação 'Markdown' está desabilitada",
"Markdown is enabled": "A formatação 'Markdown' está habilitada",
"Message not sent due to unknown devices being present": "A mensagem não foi enviada por causa da presença de dispositivos desconhecidos",
- "Never send encrypted messages to unverified devices in this room": "Nunca envie mensagens criptografadas para dispositivos não verificados nesta sala",
"New address (e.g. #foo:%(localDomain)s)": "Novo endereço (p.ex: #algo:%(localDomain)s)",
"not set": "não definido",
"not specified": "não especificado",
@@ -632,7 +398,6 @@
"Some of your messages have not been sent.": "Algumas das suas mensagens não foram enviadas.",
"Submit": "Enviar",
"The main address for this room is": "O endereço principal desta sala é",
- "This action cannot be performed by a guest user. Please register to be able to do this.": "Esta ação não pode ser realizada por um/a usuário/a visitante. Por favor, registre-se para poder fazer isso.",
"%(actionVerb)s this person?": "%(actionVerb)s esta pessoa?",
"This room has no local addresses": "Esta sala não tem endereços locais",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Tentei carregar um ponto específico na linha do tempo desta sala, mas parece que você não tem permissões para ver a mensagem em questão.",
@@ -647,7 +412,6 @@
"You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Você não poderá desfazer esta mudança, pois estará dando a este(a) usuário(a) o mesmo nível de permissões que você.",
"Make Moderator": "Tornar moderador(a)",
"Room": "Sala",
- "(~%(searchCount)s results)": "(±%(searchCount)s resultados)",
"Cancel": "Cancelar",
"bold": "negrito",
"italic": "itálico",
@@ -741,7 +505,6 @@
"You must join the room to see its files": "Você precisa ingressar na sala para ver seus arquivos",
"Reject all %(invitedRooms)s invites": "Rejeitar todos os %(invitedRooms)s convites",
"Start new chat": "Iniciar nova conversa",
- "Guest users can't invite users. Please register.": "Visitantes não podem convidar usuárias(os) registradas(os). Favor registrar.",
"Failed to invite": "Falha ao enviar o convite",
"Failed to invite user": "Falha ao convidar a(o) usuária(o)",
"Failed to invite the following users to the %(roomName)s room:": "Falha ao convidar as(os) seguintes usuárias(os) para a sala %(roomName)s:",
@@ -763,7 +526,6 @@
"Unable to restore session": "Não foi possível restaurar a sessão",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Se você já usou antes uma versão mais recente do Riot, a sua sessão pode ser incompatível com esta versão. Feche esta janela e tente abrir com a versão mais recente.",
"Continue anyway": "Continuar de qualquer maneira",
- "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "O seu nome público é como você aparecerá para as outras pessoas quando conversar nas salas. Qual nome público você deseja ter?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Você está atualmente bloqueando dispositivos não verificados. Para enviar mensagens para estes dispositivos, você necessita antes verificá-los.",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "Nós recomendamos que você passe pelo processo de verificação para cada dispositivo para confirmar que eles pertencem às pessoas que efetivamente são suas donas, mas você pode reenviar a mensagem sem verificar isso, se assim o desejar.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contém dispositivos que você não viu antes.",
@@ -813,7 +575,6 @@
"Offline": "Offline",
"The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "O arquivo exportado irá permitir a qualquer pessoa que o acesse a descriptografar qualquer uma das mensagens criptografadas que você veja, portanto seja bastante cuidadosa(o) em manter este arquivo seguro. Para deixar este arquivo mais protegido, recomendamos que você insira uma senha abaixo, que será usada para criptografar o arquivo. Só será possível importar os dados usando exatamente a mesma senha.",
"This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Este processo faz com que você possa importar as chaves de criptografia que tinha previamente exportado de outro cliente Matrix. Você poderá então descriptografar todas as mensagens que o outro cliente pôde criptografar.",
- "You are about to be taken to a third-party site so you can authenticate your account for use with {integrationsUrl}. Do you wish to continue?": "",
"Start automatically after system login": "Iniciar automaticamente ao iniciar o sistema",
"Desktop specific": "Específico para o app de computadores desktop",
"You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Você será levado agora a um site de terceiros para poder autenticar a sua conta para uso com o serviço %(integrationsUrl)s. Você quer continuar?",
@@ -822,7 +583,6 @@
"disabled": "desabilitado",
"enabled": "habilitado",
"Export": "Exportar",
- "Failed to register as guest:": "Falha ao se registrar como visitante:",
"Guest access is disabled on this Home Server.": "O acesso para visitantes está desabilitado neste Servidor de Base.",
"Import": "Importar",
"Incorrect username and/or password.": "Nome de usuária(o) e/ou senha incorreto.",
@@ -830,7 +590,6 @@
"Results from DuckDuckGo": "Resultados de DuckDuckGo",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "A chave de assinatura que você forneceu é a mesma que a chave de assinatura que você recebeu do dispositivo %(deviceId)s de %(userId)s . O dispositivo foi portanto marcado como verificado.",
"This Home Server does not support login using email address.": "Este Servidor de Base não permite login usando endereço de e-mail.",
- "There was a problem logging in.": "Houve um problema ao fazer login.",
"Unknown (user, device) pair:": "Par usuária(o)-dispositivo desconhecido:",
"Unrecognised command:": "Comando não reconhecido:",
"Unrecognised room alias:": "Apelido de sala não reconhecido:",
@@ -838,14 +597,13 @@
"Verified key": "Chave verificada",
"WARNING: Device already verified, but keys do NOT MATCH!": "ATENÇÃO: O dispositivo já foi verificado, mas as chaves NÃO SÃO IGUAIS!",
"WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "ATENÇÃO: VERIFICAÇÃO DE CHAVE FALHOU! A chave de assinatura para a(o) usuária(o) %(userId)s e dispositivo %(deviceId)s é \"%(fprint)s\", que não é igual à chave fornecida \"%(fingerprint)s\". Isso pode significar que suas comunicações estão sendo interceptadas!",
- "Set a Display Name": "Definir seu nome público",
"for %(amount)ss": "por %(amount)ss",
"for %(amount)sm": "por %(amount)sm",
"for %(amount)sh": "por %(amount)sh",
"for %(amount)sd": "por %(amount)sd",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s removeu a imagem da sala.",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s alterou a imagem da sala %(roomName)s",
- "$senderDisplayName changed the room avatar to
": "$senderDisplayName alterou a imagem da sala para
",
+ "%(senderDisplayName)s changed the room avatar to
": "%(senderDisplayName)s alterou a imagem da sala para
",
"Missing Media Permissions, click here to request.": "Faltam permissões para uso de mídia no seu computador. Clique aqui para solicitá-las.",
"No Microphones detected": "Não foi detectado nenhum microfone",
"No Webcams detected": "Não foi detectada nenhuma Webcam",
@@ -871,27 +629,23 @@
"Tagged as: ": "Marcado como: ",
"You have disabled URL previews by default.": "Você desabilitou pré-visualizações de links por padrão.",
"You have enabled URL previews by default.": "Você habilitou pré-visualizações de links por padrão.",
- "You have entered an invalid contact. Try using their Matrix ID or email address.": "Você inseriu um contato inválido. Tente usar o ID Matrix ou endereço de e-mail da pessoa que está buscando.",
"Hide removed messages": "Ocultar mensagens removidas",
"Add": "Adicionar",
- "%(count)s new messages.one": "%(count)s nova mensagem",
- "%(count)s new messages.other": "%(count)s novas mensagens",
- "Disable markdown formatting": "Desabilitar formatação MarkDown",
+ "%(count)s new messages|one": "%(count)s nova mensagem",
+ "%(count)s new messages|other": "%(count)s novas mensagens",
"Error: Problem communicating with the given homeserver.": "Erro: problema de comunicação com o Servidor de Base fornecido.",
"Failed to fetch avatar URL": "Falha ao obter a URL da imagem de perfil",
"Home": "Início",
"The phone number entered looks invalid": "O número de telefone inserido parece ser inválido",
- "Uploading %(filename)s and %(count)s others.zero": "Enviando o arquivo %(filename)s",
- "Uploading %(filename)s and %(count)s others.one": "Enviando o arquivo %(filename)s e %(count)s outros arquivos",
- "Uploading %(filename)s and %(count)s others.other": "Enviando o arquivo %(filename)s e %(count)s outros arquivos",
+ "Uploading %(filename)s and %(count)s others|zero": "Enviando o arquivo %(filename)s",
+ "Uploading %(filename)s and %(count)s others|one": "Enviando o arquivo %(filename)s e %(count)s outros arquivos",
+ "Uploading %(filename)s and %(count)s others|other": "Enviando o arquivo %(filename)s e %(count)s outros arquivos",
"Username invalid: %(errMessage)s": "Nome de usuária(o) inválido: %(errMessage)s",
- "Searching known users": "Buscando pessoas conhecidas",
"You must register to use this functionality": "Você deve se registrar para poder usar esta funcionalidade",
"Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Reenviar todas ou cancelar todas agora. Você também pode selecionar mensagens individuais que queira reenviar ou cancelar.",
"Create new room": "Criar nova sala",
- "Welcome page": "Página de boas vindas",
"Room directory": "Lista pública de salas",
- "Start chat": "Iniciar conversa pessoal",
+ "Start chat": "Iniciar conversa",
"New Password": "Nova senha",
"Start chatting": "Iniciar a conversa",
"Start Chatting": "Iniciar a conversa",
@@ -906,8 +660,7 @@
"a room": "uma sala",
"Accept": "Aceitar",
"Active call (%(roomName)s)": "Chamada ativa (%(roomName)s)",
- "Admin tools": "Ferramentas de administração",
- "And %(count)s more...": "E mais %(count)s...",
+ "Admin Tools": "Ferramentas de administração",
"Alias (optional)": "Apelido (opcional)",
"Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Não foi possível conectar ao Servidor de Base. Por favor, confira sua conectividade à internet, garanta que o certificado SSL do Servidor de Base é confiável, e que uma extensão do navegador não esteja bloqueando as requisições de rede.",
"Click here to join the discussion!": "Clique aqui para participar da conversa!",
@@ -937,7 +690,6 @@
"%(roomName)s is not accessible at this time.": "%(roomName)s não está acessível neste momento.",
"Seen by %(userName)s at %(dateTime)s": "Visto por %(userName)s em %(dateTime)s",
"Send anyway": "Enviar de qualquer maneira",
- "Set": "Definir",
"Show Text Formatting Toolbar": "Exibir barra de formatação de texto",
"Start authentication": "Iniciar autenticação",
"This invitation was sent to an email address which is not associated with this account:": "Este convite foi enviado para um endereço de e-mail que não é associado a esta conta:",
@@ -958,8 +710,8 @@
"You have been kicked from %(roomName)s by %(userName)s.": "Você foi removido(a) da sala %(roomName)s por %(userName)s.",
"You may wish to login with a different account, or add this email to this account.": "Você pode querer fazer login com uma conta diferente, ou adicionar este e-mail a esta conta.",
"Your home server does not support device management.": "O seu Servidor de Base não suporta o gerenciamento de dispositivos.",
- "(~%(count)s results).one": "(~%(count)s resultado)",
- "(~%(count)s results).other": "(~%(count)s resultados)",
+ "(~%(count)s results)|one": "(~%(count)s resultado)",
+ "(~%(count)s results)|other": "(~%(count)s resultados)",
"Device Name": "Nome do dispositivo",
"(could not connect media)": "(não foi possível conectar-se à mídia)",
"(no answer)": "(sem resposta)",
diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json
index 3f3403d716..8ca50ec72f 100644
--- a/src/i18n/strings/ru.json
+++ b/src/i18n/strings/ru.json
@@ -1,46 +1,27 @@
{
- "accept": "принимать",
- "accepted an invitation": "принял приглашение",
- "accepted the invitation for": "принял приглашение на",
"Account": "Аккаунт",
- "Add email address": "Добавить адрес электронной почты",
+ "Add email address": "Добавить адрес email",
"Add phone number": "Добавить номер телефона",
"Admin": "Администратор",
"Advanced": "Дополнительно",
"Algorithm": "Алгоритм",
- "all room members": "все участники комнаты",
- "all room members, from the point they are invited": "все участники комнаты, с момента приглашения",
- "all room members, from the point they joined": "все участники комнаты, с момента входа",
- "an address": "адрес",
- "and": "и",
"An email has been sent to": "Email был отправлен",
"A new password must be entered.": "Введите новый пароль.",
- "answered the call.": "принятый звонок.",
- "anyone": "любой",
"Anyone who knows the room's link, apart from guests": "Любой, кто знает ссылку на комнату, кроме гостей",
- "Anyone who knows the room's link, including guests": "Любой, кто знает ссылку комнаты, включая гостей",
+ "Anyone who knows the room's link, including guests": "Любой, кто знает ссылку на комнату, включая гостей",
"Are you sure you want to reject the invitation?": "Вы уверены что вы хотите отклонить приглашение?",
"Are you sure you want to upload the following files?": "Вы уверены что вы хотите отправить следующие файлы?",
- "banned": "banned",
"Banned users": "Заблокированные пользователи",
"Bans user with given id": "Блокирует пользователя с заданным ID",
"Blacklisted": "В черном списке",
"Bug Report": "Отчет об ошибке",
"Bulk Options": "Групповые параметры",
"Can't load user settings": "Невозможно загрузить пользовательские настройки",
- "changed avatar": "изменен аватар",
- "changed name": "измененное имя",
- "changed their display name from": "changed their display name from",
- "changed their profile picture": "changed their profile picture",
- "changed the power level of": "changed the power level of",
- "changed the room name to": "changed the room name to",
- "changed the topic to": "changed the topic to",
"Changes to who can read history will only apply to future messages in this room": "Изменения того, кто может прочитать историю, будут применяться только к будущим сообщениям в этой комнате",
"Changes your display nickname": "Изменяет ваш псевдоним",
"Claimed Ed25519 fingerprint key": "Требуемый ключ цифрового отпечатка Ed25519",
"Clear Cache and Reload": "Очистить кэш и перезагрузить",
"Clear Cache": "Очистить кэш",
- "Click here": "Нажать здесь",
"Click here to fix": "Щелкните здесь, чтобы исправить",
"Commands": "Команды",
"Confirm your new password": "Подтвердите новый пароль",
@@ -52,78 +33,60 @@
"Curve25519 identity key": "Ключ идентификации Curve25519",
"Deactivate Account": "Деактивировать учетную запись",
"Deactivate my account": "Деактивировать мою учетную запись",
- "decline": "отказаться",
"Decryption error": "Ошибка расшифровки",
"Default": "По умолчанию",
- "demote": "понизить уровень авторизации",
"Deops user with given id": "Снимает полномочия оператора с пользователя с заданным ID",
"Device ID": "ID устройства",
"Devices will not yet be able to decrypt history from before they joined the room": "Устройства пока не могут дешифровать историю до их входа в комнату",
- "Direct Chat": "Прямой чат",
- "Disable inline URL previews by default": "Отключить предварительный просмотр URL-адресов по умолчанию",
+ "Disable inline URL previews by default": "Отключить предпросмотр URL-адресов по умолчанию",
"Display name": "Отображаемое имя",
"Displays action": "Отображение действий",
"Ed25519 fingerprint": "Ed25519 отпечаток",
- "Email Address": "Email адрес",
"Email, name or matrix ID": "Email, имя или matrix ID",
"Emoji": "Смайлы",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "Зашифрованные сообщения не будут видны в клиентах, которые еще не подключили шифрование",
"Encrypted room": "Зашифрованная комната",
- "ended the call.": "ended the call.",
"End-to-end encryption information": "Сведения о сквозном шифровании",
"End-to-end encryption is in beta and may not be reliable": "Сквозное шифрование находится в бета-версии и может быть ненадежным",
"Error": "Ошибка",
"Event information": "Информация о событии",
"Export E2E room keys": "Экспорт ключей сквозного шифрования",
"Failed to change password. Is your password correct?": "Не удалось сменить пароль. Вы правильно ввели текущий пароль?",
- "Failed to forget room": "Не удалось забыть комнату",
"Failed to leave room": "Не удалось выйти из комнаты",
"Failed to reject invitation": "Не удалось отклонить приглашение",
- "Failed to send email": "Ошибка отправки электронной почты",
+ "Failed to send email": "Ошибка отправки email",
"Failed to unban": "Не удалось разблокировать",
"Failed to upload file": "Не удалось отправить файл",
"Favourite": "Избранное",
- "favourite": "избранный",
"Favourites": "Избранные",
"Filter room members": "Фильтр участников комнаты",
"Forget room": "Забыть комнату",
"Forgot your password?": "Забыли пароль?",
- "For security, this session has been signed out. Please sign in again.": "По соображениям безопасности, эта сессия была прекращена. Пожалуйста, войдите снова.",
+ "For security, this session has been signed out. Please sign in again.": "Для обеспечения безопасности ваша сессия была завершена. Пожалуйста, войдите снова.",
"Found a bug?": "Нашли ошибку?",
- "had": "был",
"Hangup": "Закончить",
"Historical": "Архив",
"Homeserver is": "Домашний сервер это",
"Identity Server is": "Сервер идентификации это",
- "I have verified my email address": "Я подтвердил свой адрес электронной почты",
- "Import E2E room keys": "Импортировать ключи сквозного шифрования комнаты",
- "Invalid Email Address": "Недопустимый адрес электронной почты",
- "invited": "invited",
+ "I have verified my email address": "Я подтвердил свой адрес email",
+ "Import E2E room keys": "Импорт ключей сквозного шифрования",
+ "Invalid Email Address": "Недопустимый адрес email",
"Invite new room members": "Пригласить новых участников в комнату",
"Invites": "Приглашает",
"Invites user with given id to current room": "Приглашает пользователя с заданным ID в текущую комнату",
- "is a": "является",
- "Sign in with": "Войти с помощью",
- "joined and left": "вошел(ла) и вышел(ла)",
- "joined": "вошел(ла)",
- "joined the room": "joined the room",
+ "Sign in with": "Войти, используя",
"Joins room with given alias": "Входит в комнату с заданным псевдонимом",
"Kicks user with given id": "Выкидывает пользователя с заданным ID",
"Labs": "Лаборатория",
"Leave room": "Покинуть комнату",
- "left and rejoined": "вышел(ла) и вернулся(ась)",
- "left": "вышел",
- "left the room": "left the room",
- "Logged in as": "Зарегистрированный как",
"Login as guest": "Войти как гость",
"Logout": "Выйти",
"Low priority": "Низкий приоритет",
- "made future room history visible to": "made future room history visible to",
"Manage Integrations": "Управление интеграциями",
"Members only": "Только участники",
"Mobile phone number": "Номер мобильного телефона",
"Moderator": "Модератор",
- "my Matrix ID": "мой Matrix ID",
+ "%(serverName)s Matrix ID": "%(serverName)s Matrix ID",
"Name": "Имя",
"Never send encrypted messages to unverified devices from this device": "Никогда не отправлять зашифрованные сообщения на непроверенные устройства с этого устройства",
"Never send encrypted messages to unverified devices in this room from this device": "Никогда не отправлять зашифрованные сообщения на непроверенные устройства в этой комнате с этого устройства",
@@ -131,49 +94,29 @@
"New passwords must match each other.": "Новые пароли должны совпадать.",
"none": "никто",
"Notifications": "Уведомления",
- " (not supported by this browser)": " (not supported by this browser)",
"": "<не поддерживается>",
"NOT verified": "НЕ проверено",
"No users have specific privileges in this room": "Ни один пользователь не имеет специальных полномочий в этой комнате",
- "olm version": "olm версия",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "После включения шифрования в комнате, оно не может быть деактивировано (на данный момент)",
- "or": "или",
- "other": "другой",
- "others": "другие",
"Password": "Пароль",
"People": "Люди",
"Permissions": "Разрешения",
"Phone": "Телефон",
- "placed a": "placed a",
- "Please Register": "Пожалуйста, зарегистрируйтесь",
- "rejected the invitation.": "rejected the invitation.",
- "removed their display name": "removed their display name",
- "removed their profile picture": "removed their profile picture",
"Remove": "Удалить",
- "requested a VoIP conference": "requested a VoIP conference",
"Return to login screen": "Вернуться к экрану входа",
"Send Reset Email": "Отправить письмо со ссылкой для сброса пароля",
"sent an image": "отправил изображение",
- "sent an invitation to": "sent an invitation to",
- "set a profile picture": "set a profile picture",
- "set their display name to": "set their display name to",
"Settings": "Настройки",
"Start a chat": "Начать чат",
"Start Chat": "Начать чат",
- "tag as": "tag as",
- "These are experimental features that may break in unexpected ways. Use with caution": "These are experimental features that may break in unexpected ways. Use with caution",
- "To send events of type": "Чтобы отправить тип события",
- "To send messages": "Чтобы отправить сообщения",
- "turned on end-to-end encryption (algorithm": "turned on end-to-end encryption (algorithm",
- "Unable to add email address": "Не удается добавить адрес электронной почты",
+ "Unable to add email address": "Не удается добавить адрес email",
"Unable to remove contact information": "Не удалось удалить контактную информацию",
- "Unable to verify email address.": "Не удалось проверить адрес электронной почты.",
+ "Unable to verify email address.": "Не удалось проверить адрес email.",
"Unban": "Разблокировать",
"Unencrypted room": "Незашифрованная комната",
"unencrypted": "без шифрования",
"unknown device": "неизвестное устройство",
"unknown error code": "неизвестный код ошибки",
- "unknown": "неизвестный",
"Upload avatar": "Загрузить аватар",
"uploaded a file": "отправил(а) файл",
"Upload Files": "Отправка файлов",
@@ -196,34 +139,21 @@
"was invited": "был приглашен",
"was kicked": "был выгнан",
"was unbanned": "был(а) разблокирован(а)",
- "was": "был",
- "were": "быть",
"Who can access this room?": "Кто может получить доступ к этой комнате?",
"Who can read history?": "Кто может читать историю?",
"Who would you like to add to this room?": "Кого бы вы хотели добавить в эту комнату?",
"Who would you like to communicate with?": "С кем бы вы хотели связаться?",
- "withdrawn": "уходить",
- "Would you like to": "Хотели бы Вы",
"You do not have permission to post to this room": "Вы не можете писать в эту комнату",
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Вы вышли из всех устройств и больше не будете получать push-уведомления. Чтобы повторно активировать уведомления, войдите снова на каждом из устройств",
"You have no visible notifications": "Нет видимых уведомлений",
- "you must be a": "уровень доступа",
"Your password has been reset": "Ваш пароль был сброшен",
"Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Пароль успешно изменен. До повторной авторизации вы не будете получать push-уведомления на других устройствах",
"You should not yet trust it to secure data": "На сегодняшний день не следует полностью полагаться на то, что ваши данные будут надежно зашифрованы",
- "en": "Английский",
- "pt-br": "Португальский (Бразилия)",
- "de": "Немецкий",
- "da": "Датский",
- "ru": "Русский",
"%(targetName)s accepted an invitation.": "%(targetName)s принял приглашение.",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s принял приглашение от %(displayName)s.",
- "Resend all": "Переслать снова всем",
- "cancel all": "отменить всем",
"Active call": "Активный вызов",
"%(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 другие печатают",
"%(senderName)s answered the call.": "%(senderName)s ответил на звонок.",
"%(senderName)s banned %(targetName)s.": "%(senderName)s заблокировал(а) %(targetName)s.",
"Call Timeout": "Время ожидания вызова",
@@ -244,94 +174,33 @@
"Failed to lookup current room": "Не удалось выполнить поиск текущий комнаты",
"Failed to send request.": "Не удалось отправить запрос.",
"Failed to set up conference call": "Не удалось настроить групповой вызов",
- "Failed to verify email address: make sure you clicked the link in the email": "Не удалось проверить адрес электронной почты: убедитесь, что вы перешли по ссылке в письме",
+ "Failed to verify email address: make sure you clicked the link in the email": "Не удалось проверить адрес email: убедитесь, что вы перешли по ссылке в письме",
"Failure to create room": "Не удалось создать комнату",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s с %(fromPowerLevel)s на %(toPowerLevel)s",
- "Guest users can't create new rooms. Please register to create room and start a chat.": "Гости не могут создавать новые комнаты. Зарегистрируйтесь, чтобы создать комнату и начать чат.",
"click to reveal": "нажмите для открытия",
"%(senderName)s invited %(targetName)s.": "%(senderName)s приглашает %(targetName)s.",
"%(displayName)s is typing": "%(displayName)s печатает",
"%(targetName)s joined the room.": "%(targetName)s вошел(ла) в комнату.",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s выкинул %(targetName)s.",
"%(targetName)s left the room.": "%(targetName)s покинул комнату.",
- "%(senderName)s made future room history visible to": "%(senderName)s сделал будущую историю комнаты видимой",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s сделал(а) историю комнаты видимой для всех участников комнаты с момента их приглашения.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s сделал(а) историю комнаты видимой для всех участников комнаты с момента их входа.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s сделал(а) историю комнаты видимой для всех участников комнаты.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s сделал(а) историю комнаты видимой для всех.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s сделал(а) историю комнаты видимой для неизвестного (%(visibility)s).",
"Missing room_id in request": "Отсутствует room_id в запросе",
"Missing user_id in request": "Отсутствует user_id в запросе",
"Must be viewing a room": "Необходимо посмотреть комнату",
- "New Composer & Autocomplete": "Новый текстовый редактор и автозаполнение",
"(not supported by this browser)": "(не поддерживается этим браузером)",
- "af": "Африкаанс",
- "ar-ae": "Арабский (ОАЭ)",
- "ar-bh": "Арабский (Бахрейн)",
- "ar-dz": "Арабский (Алжир)",
- "ar-eg": "Арабский (Египет)",
- "ar-iq": "Арабский (Ирак)",
- "ar-jo": "Арабский (Иордания)",
- "ar-kw": "Арабский (Кувейт)",
- "ar-lb": "Арабский (Ливан)",
- "ar-ly": "Арабский (Ливия)",
- "ar-ma": "Арабский (Марокко)",
- "ar-om": "Арабский (Оман)",
- "ar-qa": "Арабский (Катар)",
- "ar-sa": "Арабский (Саудовская Аравия)",
- "ar-sy": "Арабский (Сирия)",
- "ar-tn": "Арабский (Тунис)",
- "ar-ye": "Арабский (Йемен)",
- "be": "Беларуский",
- "bg": "Болгарский",
- "ca": "Каталанский",
- "cs": "Чешский",
- "de-at": "Немецкий (Австрия)",
- "de-ch": "Немецкий (Швейцария)",
- "de-li": "Немецкий (Лихтенштейн)",
- "de-lu": "Немецкий (Люксембург)",
- "el": "Греческий",
- "en-au": "Английский (Австралия)",
- "en-bz": "Английский (Белиз)",
- "en-ca": "Английский (Канада)",
- "en-gb": "Английский (Великобритания)",
- "en-ie": "Английский (Ирландия)",
- "en-jm": "Английский (Ямайка)",
- "en-nz": "Английский (Новая Зеландия)",
- "en-tt": "Английский (Тринидад)",
- "en-us": "Английский (США)",
- "en-za": "Английский (Южная Африка)",
- "es-ar": "Испанский (Аргентина)",
- "es-bo": "Испанский (Боливия)",
- "es-cl": "Испанский (Чили)",
- "es-co": "Испанский (Колумбия)",
- "es-cr": "Испанский (Коста Рика)",
- "es-do": "Испанский (Доминиканская Республика)",
- "es-ec": "Испанский (Эквадор)",
- "es-gt": "Испанский (Гватемала)",
- "es-hn": "Испанский (Гондурас)",
- "es-mx": "Испанский (Мексика)",
- "es-ni": "Испанский (Никарагуа)",
- "es-pa": "Испанский (Панама)",
- "et": "Эстонский",
- "fi": "Финский",
- "fr": "Французский",
- "hr": "Хорватский",
- "it": "Итальянский",
- "ja": "Японский",
- "pl": "Польский",
- "pt": "Португальский",
- "ru-mo": "Русский (Республика Молдова)",
- "ro": "Румынский",
- "uk": "Украинский",
- "now. You can also select individual messages to resend or cancel.": "теперь. Вы можете также выбрать отдельные сообщения, чтобы снова послать или отменить.",
- "Auto-complete": "Автозаполнение",
- "Error changing language": "Ошибка изменения языка",
- "Riot was unable to find the correct Data for the selected Language.": "Riot был неспособен найти правельные данные для выбранного языка.",
"Connectivity to the server has been lost.": "Связь с сервером потеряна.",
"Sent messages will be stored until your connection has returned.": "Отправленные сообщения будут сохранены, пока соединение не восстановится.",
"There are no visible files in this room": "В этой комнате нет видимых файлов",
- "This doesn't look like a valid phone number.": "Это не похоже на допустимый телефонный номер.",
+ "This doesn't look like a valid phone number.": "Недопустимый номер телефона.",
"Missing password.": "Отсутствует пароль.",
"Set a display name:": "Введите отображаемое имя:",
"Passwords don't match.": "Пароли не совпадают.",
"Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Пароль слишком короткий (мин. %(MIN_PASSWORD_LENGTH)s).",
- "This doesn't look like a valid email address.": "Это не похоже на допустимый адрес электронной почты.",
+ "This doesn't look like a valid email address.": "Это не похоже на допустимый адрес email.",
"This server does not support authentication with a phone number.": "Этот сервер не поддерживает аутентификацию с помощью номера телефона.",
"User names may only contain letters, numbers, dots, hyphens and underscores.": "Имена пользователей могут содержать только буквы, цифры, точки, дефисы и символы подчеркивания.",
"An unknown error occurred.": "Произошла неизвестная ошибка.",
@@ -341,27 +210,12 @@
"Make this room private": "Сделать эту комнату приватной",
"Share message history with new users": "Разрешить доступ к истории сообщений новым пользователям",
"Encrypt room": "Шифрование комнаты",
- "es-pe": "Испанский (Перу)",
- "hu": "Венгерский",
- "nl": "Датский",
- "no": "Норвежский",
- "sv": "Шведский",
- "th": "Тайский",
- "vi": "Ветнамский",
- "Monday": "Понедельник",
- "Tuesday": "Вторник",
- "Wednesday": "Среда",
- "Thursday": "Четверг",
- "Friday": "Пятница",
- "Saturday": "Суббота",
- "Sunday": "Воскресенье",
"%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
"Upload an avatar:": "Загрузите аватар:",
"You need to be logged in.": "Вы должны быть авторизованы.",
"You need to be able to invite users to do that.": "Для этого вы должны иметь возможность приглашать пользователей.",
"You cannot place VoIP calls in this browser.": "VoIP звонки не поддерживаются в этом браузере.",
"You are already in a call.": "Вы уже совершаете вызов.",
- "You're not in any rooms yet! Press": "Вы еще не находитесь ни в каких комнатах! Нажать",
"You are trying to access %(roomName)s.": "Вы пытаетесь получить доступ к %(roomName)s.",
"You cannot place a call with yourself.": "Вы не можете сделать вызов самому себе.",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s отозвал %(targetName)s's приглашение.",
@@ -385,12 +239,10 @@
"Thu": "Чт",
"Fri": "Пт",
"Sat": "Сб",
- "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Ваш адрес электронной почты, кажется, не связан с Matrix ID на этом домашнем сервере.",
- "to start a chat with someone": "чтобы начать чат с кем-то",
+ "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Ваш адрес email, кажется, не связан с Matrix ID на этом домашнем сервере.",
"to tag direct chat": "отметить прямой чат",
"To use it, just wait for autocomplete results to load and tab through them.": "Для того, чтобы использовать эту функцию, просто подождите автозаполнения результатов, а затем используйте клавишу TAB для прокрутки.",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s включено сквозное шифрование (algorithm %(algorithm)s).",
- "Unable to restore previous session": "Не удалось восстановить предыдущий сеанс",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s разблокировал(а) %(targetName)s.",
"Unable to capture screen": "Не удается сделать снимок экрана",
"Unable to enable Notifications": "Не удалось включить уведомления",
@@ -398,64 +250,11 @@
"Usage": "Использование",
"Use with caution": "Использовать с осторожностью",
"VoIP is unsupported": "VoIP не поддерживается",
- "es-pr": "Испанский (Пуэрто-Рико)",
- "es-py": "Испанский язык (Парагвай)",
- "es": "Испанский (Испания)",
- "es-sv": "Испанский (Сальвадор)",
- "es-uy": "Испанский (Уругвай)",
- "es-ve": "Испанский (Венесуэла)",
- "fa": "Фарси",
- "fo": "Фарерский",
- "fr-be": "Французский (Бельгия)",
- "fr-ca": "Французский (Канада)",
- "fr-ch": "Французский (Швейцария)",
- "ga": "Ирландский",
- "he": "Иврит",
- "hi": "Хинди",
- "id": "Индонезийский",
- "is": "Исландский",
- "ji": "Идиш",
- "lt": "Литовский",
- "lv": "Латвийский",
- "ms": "Малазийский",
- "mt": "Мальтийский",
- "nl-be": "Голландский (Бельгия)",
- "rm": "Ретороманский",
- "sb": "Лужицкий",
- "sk": "Словацкий",
- "sl": "Словенский",
- "sq": "Албанский",
- "sr": "Сербский",
- "sv-fi": "Шведский (Финляндия)",
- "sz": "Сами (Саамы)",
- "tn": "Тсвана",
- "tr": "Турецкий",
- "ts": "Тсонга",
- "ur": "Урду",
- "ve": "Венда",
- "xh": "Кхоса",
- "zh-cn": "Китайский (КНР)",
- "zh-sg": "Китайский (Сингапур)",
- "zh-tw": "Китайский (Тайвань)",
- "zu": "Зулусский",
- "eu": "Баскский",
- "fr-lu": "Французский (Люксембург)",
- "gd": "Гаэльский (Шотландия)",
- "it-ch": "Итальянский (Швейцария)",
- "ko": "Корейский",
- "mk": "Македонский (БЮРМ)",
- "ro-mo": "Румынский (Республика Молдова)",
- "sx": "Суту",
- "zh-hk": "Китайский (Гонконг)",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Текстовое сообщение было отправлено на +%(msisdn)s. Введите проверочный код, который оно содержит",
- "and %(count)s others...": {
- "other": "и %(count)s других...",
- "one": "и ещё один..."
- },
+ "and %(count)s others...|other": "и %(count)s других...",
+ "and %(count)s others...|one": "и ещё один...",
"Are you sure?": "Вы уверены?",
"Autoplay GIFs and videos": "Автовоспроизведение GIF и видео",
- "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "Невозможно соединиться с домашним сервером - проверьте своё соединение и убедитесь, что SSL-сертификат вашего домашнего сервера включён в доверяемые.",
- "changing room on a RoomView is not supported": "изменение комнаты в RoomView не поддерживается",
"Click to mute audio": "Щелкните, чтобы выключить звук",
"Click to mute video": "Щелкните, чтобы выключить видео",
"Click to unmute video": "Щелкните, чтобы включить видео",
@@ -474,7 +273,6 @@
"Failed to delete device": "Не удалось удалить устройство",
"Failed to forget room %(errCode)s": "Не удалось удалить комнату %(errCode)s",
"Failed to join room": "Не удалось войти в комнату",
- "Failed to join the room": "Не удалось войти в комнату",
"Access Token:": "Токен доступа:",
"Always show message timestamps": "Всегда показывать временные метки сообщений",
"Authentication": "Аутентификация",
@@ -498,7 +296,6 @@
"Failed to set display name": "Не удалось задать отображаемое имя",
"Failed to toggle moderator status": "Не удалось изменить статус модератора",
"Fill screen": "Заполнить экран",
- "Guest users can't upload files. Please register to upload.": "Гости не могут отправлять файлы. Зарегистрируйтесь для отправки.",
"Hide read receipts": "Скрыть отметки о прочтении",
"Hide Text Formatting Toolbar": "Скрыть панель форматирования текста",
"Incorrect verification code": "Неверный код подтверждения",
@@ -509,16 +306,14 @@
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' недопустимый формат псевдонима",
"Join Room": "Войти в комнату",
"Kick": "Выгнать",
- "Level": "Уровень",
- "Local addresses for this room:": "Локальный адрес этой комнаты:",
+ "Local addresses for this room:": "Локальные адреса этой комнаты:",
"Markdown is disabled": "Markdown отключен",
"Markdown is enabled": "Markdown включен",
"matrix-react-sdk version:": "версия matrix-react-sdk:",
- "Never send encrypted messages to unverified devices in this room": "Никогда не отправлять зашифрованные сообщения на непроверенные устройства в этой комнате",
"New address (e.g. #foo:%(localDomain)s)": "Новый адрес (например, #foo:%(localDomain)s)",
"New passwords don't match": "Новые пароли не совпадают",
"not set": "не задано",
- "not specified": "не определено",
+ "not specified": "не определен",
"No devices with registered encryption keys": "Нет устройств с зарегистрированными ключами шифрования",
"No more results": "Больше никаких результатов",
"No results": "Нет результатов",
@@ -528,10 +323,8 @@
"%(senderName)s placed a %(callType)s call.": "%(senderName)s выполнил %(callType)s вызов.",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Проверьте свою электронную почту и нажмите на содержащуюся ссылку. После этого нажмите кнопку Продолжить.",
"Power level must be positive integer.": "Уровень авторизации должен быть положительным целым числом.",
- "Press": "Нажать",
"Profile": "Профиль",
"Reason": "Причина",
- "rejected": "отклонено",
"%(targetName)s rejected the invitation.": "%(targetName)s отклонил приглашение.",
"Reject invitation": "Отклонить приглашение",
"Remove Contact Information?": "Удалить контактную информацию?",
@@ -540,9 +333,8 @@
"%(senderName)s requested a VoIP conference.": "%(senderName)s хочет начать VoIP-конференцию.",
"Report it": "Сообщить об этом",
"Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Сброс пароля на данный момент сбрасывает ключи шифрования на всех устройствах, делая зашифрованную историю чатов нечитаемой. Чтобы избежать этого, экспортируйте ключи комнат и импортируйте их после сброса пароля. В будущем это будет исправлено.",
- "restore": "восстановить",
"Return to app": "Вернуться в приложение",
- "Riot does not have permission to send you notifications - please check your browser settings": "Riot не имеет разрешение на отправку уведомлений, проверьте параметры своего браузера",
+ "Riot does not have permission to send you notifications - please check your browser settings": "У Riot нет разрешений на отправку уведомлений - проверьте настройки браузера",
"Riot was not given permission to send notifications - please try again": "Riot не получил разрешение на отправку уведомлений, пожалуйста, попробуйте снова",
"riot-web version:": "версия riot-web:",
"Room %(roomId)s not visible": "Комната %(roomId)s невидима",
@@ -570,12 +362,9 @@
"Someone": "Кто-то",
"Submit": "Отправить",
"Success": "Успех",
- "tag as %(tagName)s": "пометить как %(tagName)s",
- "tag direct chat": "Тег прямого чата",
"The default role for new room members is": "Роль по умолчанию для новых участников комнаты",
"The main address for this room is": "Основной адрес для этой комнаты",
- "This action cannot be performed by a guest user. Please register to be able to do this.": "Это действие не может быть выполнено гостем. Пожалуйста, зарегистрируйтесь, чтобы получить возможность сделать то что вы хотите.",
- "This email address is already in use": "Этот адрес электронной почты уже используется",
+ "This email address is already in use": "Этот адрес email уже используется",
"This email address was not found": "Этот адрес электронной почты не найден",
"The email address linked to your account must be entered.": "Необходимо ввести адрес электронной почты, связанный с вашей учетной записью.",
"The file '%(fileName)s' failed to upload": "Не удалось отправить файл '%(fileName)s'",
@@ -583,11 +372,10 @@
"This room has no local addresses": "В этой комнате нет локальных адресов",
"This room is not recognised.": "Эта комната не опознана.",
"These are experimental features that may break in unexpected ways": "Это экспериментальные функции, которые могут себя вести неожиданным образом",
- "This doesn't appear to be a valid email address": "Похоже, это недействительный адрес электронной почты",
- "This is a preview of this room. Room interactions have been disabled": "Это предварительный просмотр комнаты. Взаимодействие с комнатой отключено",
+ "This doesn't appear to be a valid email address": "Похоже, это недействительный адрес email",
+ "This is a preview of this room. Room interactions have been disabled": "Это предпросмотр комнаты. Взаимодействие с комнатой отключено",
"This phone number is already in use": "Этот номер телефона уже используется",
"This room's internal ID is": "Внутренний ID этой комнаты",
- "times": "раз",
"to demote": "для понижения уровня доступа",
"to favourite": "для избранного",
"to restore": "восстановить",
@@ -673,8 +461,6 @@
"VoIP": "VoIP",
"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.": "Для обеспечения безопасности при выходе будут удалены все ключи сквозного шифрования из этого браузера. Если вы хотите иметь возможность расшифровать историю сообщений в будущем, необходимо экспортировать ключи комнат вручную.",
"Guest access is disabled on this Home Server.": "Гостевой доступ отключен на этом сервере.",
- "Guests can't set avatars. Please register.": "Гости не могут устанавливать аватары. Пожалуйста, зарегистрируйтесь.",
- "Guests can't use labs features. Please register.": "Гости не могут использовать экспериментальные возможности. Пожалуйста, зарегистрируйтесь.",
"Guests cannot join this room even if explicitly invited.": "Гости не могут войти в эту комнату, даже если они приглашены.",
"Missing Media Permissions, click here to request.": "Отсутствуют разрешения, нажмите для запроса.",
"No media permissions": "Нет разрешенных носителей",
@@ -689,13 +475,11 @@
"device id: ": "ID устройства: ",
"Device key:": "Ключ устройства:",
"disabled": "отключено",
- "Disable markdown formatting": "Отключить Markdown-форматирование",
- "Email address": "Адрес электронной почты",
- "Email address (optional)": "Адрес электронной почты (необязательно)",
+ "Email address": "Адрес email",
+ "Email address (optional)": "Адрес email (необязательно)",
"enabled": "включено",
"Error decrypting attachment": "Ошибка при расшифровке вложения",
"Export": "Экспорт",
- "Failed to register as guest:": "Не удалось зарегистрироваться в качестве гостя:",
"Failed to set avatar.": "Не удалось установить аватар.",
"Import": "Импорт",
"Incorrect username and/or password.": "Неверное имя пользователя и/или пароль.",
@@ -704,7 +488,7 @@
"Jump to first unread message.": "Перейти к первому непрочитанному сообщению.",
"Message not sent due to unknown devices being present": "Сообщение не отправлено из-за присутствия неизвестных устройств",
"Mobile phone number (optional)": "Номер мобильного телефона (не обязательно)",
- "Once you've followed the link it contains, click below": "После перехода по ссылке, нажмите на кнопку ниже",
+ "Once you've followed the link it contains, click below": "После перехода по ссылке, нажмите на кнопку ниже",
"Password:": "Пароль:",
"Privacy warning": "Предупреждение о конфиденциальности",
"Privileged Users": "Привилегированные пользователи",
@@ -725,28 +509,16 @@
"Session ID": "ID сессии",
"%(senderName)s set a profile picture.": "%(senderName)s установил изображение профиля.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s изменил отображаемое имя на %(displayName)s.",
- "Signed Out": "Вышли",
+ "Signed Out": "Выполнен выход",
"Sorry, this homeserver is using a login which is not recognised ": "К сожалению, этот домашний сервер использует неизвестный метод авторизации ",
"Tagged as: ": "Теги: ",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Предоставленный ключ подписи соответствует ключу, полученному от %(userId)s с устройства %(deviceId)s. Устройство помечено как проверенное.",
"%(actionVerb)s this person?": "%(actionVerb)s этот человек?",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "Файл '%(fileName)s' превышает предельный размер, допустимый к отправке на этом домашнем сервере",
"This Home Server does not support login using email address.": "Этот домашний сервер не поддерживает авторизацию с использованием адреса электронной почты.",
- "There was a problem logging in.": "Возникла проблема при авторизации.",
"The visibility of existing history will be unchanged": "Видимость существующей истории не изменится",
- "this invitation?": "это приглашение?",
"This room is not accessible by remote Matrix servers": "Это комната недоступна с удаленных серверов Matrix",
- "To ban users": "Для блокировки пользователей",
- "to browse the directory": "для просмотра каталога",
- "To configure the room": "для настройки комнаты",
- "To invite users into the room": "Чтобы приглашать пользователей в комнату",
- "to join the discussion": "присоединиться к дискуссии",
- "To kick users": "Чтобы удалять пользователей",
- "To link to a room it must have": "Для создания ссылки на комнату она должна иметь",
- "to make a room or": "чтобы создать комнату или",
- "To remove other users' messages": "Чтобы удалить сообщения других пользователей",
"To reset your password, enter the email address linked to your account": "Чтобы сбросить пароль, введите адрес электронной почты, связанный с вашей учетной записью",
- "to tag as %(tagName)s": "пометить как %(tagName)s",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Попытка загрузить выбранный интервал истории чата этой комнаты не удалась, так как у вас нет разрешений на просмотр.",
"Tried to load a specific point in this room's timeline, but was unable to find it.": "Попытка загрузить выбранный интервал истории чата этой комнаты не удалась, так как запрошенный элемент не найден.",
"Unable to load device list": "Не удалось загрузить список устройств",
@@ -759,12 +531,9 @@
"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!": "ВНИМАНИЕ: ОШИБКА ПРОВЕРКИ КЛЮЧЕЙ! Ключ подписи пользователя %(userId)s на устройстве %(deviceId)s — \"%(fprint)s\", и он не соответствует предоставленному ключу \"%(fingerprint)s\". Это может означать, что ваше общение перехватывается!",
"You have disabled URL previews by default.": "Предварительный просмотр ссылок отключен по-умолчанию.",
"You have enabled URL previews by default.": "Предварительный просмотр ссылок включен по-умолчанию.",
- "You have entered an invalid contact. Try using their Matrix ID or email address.": "Вы ввели недопустимый контакт. Попробуйте использовать Matrix ID или адрес электронной почты.",
"You need to enter a user name.": "Необходимо ввести имя пользователя.",
"You seem to be in a call, are you sure you want to quit?": "Звонок не завершен, вы уверены, что хотите выйти?",
"You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Вы не сможете отменить это изменение, так как этот пользователь получит уровень доступа, аналогичный вашему.",
- "Set a Display Name": "Указать отображаемое имя",
- "(~%(searchCount)s results)": "(~%(searchCount)s результатов)",
"%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)s отозвали свои приглашения %(repeats)s раз",
"%(oneUser)shad their invitation withdrawn %(repeats)s times": "%(oneUser)s отозвал свои приглашения %(repeats)s раз",
"%(severalUsers)shad their invitations withdrawn": "%(severalUsers)s отозвали свои приглашения",
@@ -785,7 +554,6 @@
"You must join the room to see its files": "Вы должны войти в комнату, чтобы просмотреть файлы",
"Reject all %(invitedRooms)s invites": "Отклонить все %(invitedRooms)s приглашения",
"Start new chat": "Начать новый чат",
- "Guest users can't invite users. Please register.": "Гости не могут приглашать пользователей. Пожалуйста, зарегистрируйтесь.",
"Failed to invite": "Пригласить не удалось",
"Failed to invite user": "Не удалось пригласить пользователя",
"Failed to invite the following users to the %(roomName)s room:": "Не удалось пригласить следующих пользователей в %(roomName)s:",
@@ -807,7 +575,6 @@
"Unable to restore session": "Восстановление сессии не удалось",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Если вы использовали более новую версию Riot, то ваша сессия может быть несовместима с текущей. Закройте это окно и вернитесь к использованию более новой версии.",
"Continue anyway": "Все равно продолжить",
- "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Отображаемое имя - это то, как вы отображаетесь в чате. Какое имя вы хотите?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "У вас включено занесение непроверенных устройств в черный список. Для отправки сообщений на эти устройства вам необходимо их проверить.",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "Мы рекомендуем вам выполнить процедуру проверки каждого устройства, чтобы удостовериться, что они принадлежат их законному владельцу, но вы можете переотправить сообщение без проверки, если хотите.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" содержит неподтвержденные устройства.",
@@ -819,15 +586,15 @@
"ex. @bob:example.com": "например @bob:example.com",
"Add User": "Добавить пользователя",
"This Home Server would like to make sure you are not a robot": "Этот домашний сервер хочет убедиться, что вы не робот",
- "Sign in with CAS": "Войти с помощью CAS",
+ "Sign in with CAS": "Войти, используя CAS",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Вы можете использовать настраиваемые параметры сервера для входа на другие серверы Matrix, указав другой URL-адрес домашнего сервера.",
"This allows you to use this app with an existing Matrix account on a different home server.": "Это позволяет использовать это приложение с существующей учетной записью Matrix на другом домашнем сервере.",
- "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Вы также можете установить другой сервер идентификации, но это, как правило, будет препятствовать взаимодействию с пользователями на основе адреса электронной почты.",
+ "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Вы также можете установить другой сервер идентификации, но это, как правило, будет препятствовать взаимодействию с пользователями на основе адреса email.",
"Please check your email to continue registration.": "Проверьте электронную почту, чтобы продолжить регистрацию.",
"Token incorrect": "Неверный токен",
"A text message has been sent to": "Текстовое сообщение отправлено",
"Please enter the code it contains:": "Введите полученный код:",
- "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Если адрес электронной почты не указан, сброс пароля будет невозможным. Уверены?",
+ "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Если адрес email не указан, сброс пароля будет невозможным. Уверены?",
"You are registering with %(SelectedTeamName)s": "Вы регистрируетесь на %(SelectedTeamName)s",
"Default server": "Сервер по умолчанию",
"Custom server": "Пользовательский сервер",
@@ -842,10 +609,10 @@
"Add an Integration": "Добавить интеграцию",
"You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Вы будете пернаправлены на внешний сайт, где сможете аутентифицировать свою учетную запись для использования с %(integrationsUrl)s. Продолжить?",
"Removed or unknown message type": "Удалено или неизвестный тип сообщения",
- "Disable URL previews by default for participants in this room": "Отключить предварительный просмотр URL-адресов по умолчанию для участников этой комнаты",
+ "Disable URL previews by default for participants in this room": "Отключить предпросмотр URL-адресов по умолчанию для участников этой комнаты",
"URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "Предварительный просмотр URL-адресов %(globalDisableUrlPreview)s по умолчанию для участников этой комнаты.",
"URL Previews": "Предварительный просмотр URL-адресов",
- "Enable URL previews for this room (affects only you)": "Включить предварительный просмотр URL-адресов для этой комнаты (влияет только на вас)",
+ "Enable URL previews for this room (affects only you)": "Включить предпросмотр URL-адресов для этой комнаты (касается только вас)",
"Drop file here to upload": "Перетащите файл сюда для отправки",
" (unsupported)": " (не поддерживается)",
"Ongoing conference call%(supportedText)s.": "Установлен групповой вызов %(supportedText)s.",
@@ -856,25 +623,23 @@
"Online": "В сети",
"Idle": "Неактивен",
"Offline": "Не в сети",
- "Disable URL previews for this room (affects only you)": "Отключить предварительный просмотр URL-адресов для этой комнаты (влияет только на вас)",
- "$senderDisplayName changed the room avatar to
": "$senderDisplayName сменил аватар комнаты на
",
+ "Disable URL previews for this room (affects only you)": "Отключить предпросмотр URL-адресов для этой комнаты (касается только вас)",
+ "%(senderDisplayName)s changed the room avatar to
": "%(senderDisplayName)s сменил аватар комнаты на
",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s удалил аватар комнаты.",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s сменил аватар для %(roomName)s",
"Create new room": "Создать новую комнату",
"Room directory": "Каталог комнат",
"Start chat": "Начать чат",
- "Welcome page": "Страница приветствия",
"Add": "Добавить",
- "%(count)s new messages.one": "%(count)s новое сообщение",
- "%(count)s new messages.other": "%(count)s новых сообщений",
+ "%(count)s new messages|one": "%(count)s новое сообщение",
+ "%(count)s new messages|other": "%(count)s новых сообщений",
"Error: Problem communicating with the given homeserver.": "Ошибка: проблема связи с данным сервером.",
"Failed to fetch avatar URL": "Не удалось извлечь URL-адрес аватара",
"The phone number entered looks invalid": "Введенный номер телефона недействителен",
- "Uploading %(filename)s and %(count)s others.zero": "Отправка %(filename)s",
- "Uploading %(filename)s and %(count)s others.one": "Отправка %(filename)s и %(count)s другой",
- "Uploading %(filename)s and %(count)s others.other": "Отправка %(filename)s и %(count)s других",
+ "Uploading %(filename)s and %(count)s others|zero": "Отправка %(filename)s",
+ "Uploading %(filename)s and %(count)s others|one": "Отправка %(filename)s и %(count)s другой",
+ "Uploading %(filename)s and %(count)s others|other": "Отправка %(filename)s и %(count)s других",
"Username invalid: %(errMessage)s": "Неверное имя пользователя: %(errMessage)s",
- "Searching known users": "Поиск известных пользователей",
"You must register to use this functionality": "Вы должны зарегистрироваться, чтобы использовать эту функцию",
"Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Отправить все или отменить отправку. Также можно выбрать отдельные сообщения для повторной отправки или отмены.",
"New Password": "Новый пароль",
@@ -892,8 +657,7 @@
"a room": "комната",
"Accept": "Принять",
"Active call (%(roomName)s)": "Активный вызов (%(roomName)s)",
- "Admin tools": "Инструменты администратора",
- "And %(count)s more...": "И %(count)s больше...",
+ "Admin Tools": "Инструменты администратора",
"Alias (optional)": "Псевдоним (опционально)",
"Click here to join the discussion!": "Нажмите здесь, чтобы присоединиться к обсуждению!",
"Close": "Закрыть",
@@ -917,10 +681,9 @@
"Public Chat": "Публичный чат",
"Reason: %(reasonText)s": "Причина: %(reasonText)s",
"Rejoin": "Войти повторно",
- "Set": "Установить",
"Start authentication": "Начать проверку подлинности",
"This room": "В этой комнате",
- "(~%(count)s results).other": "(~%(count)s результаты)",
+ "(~%(count)s results)|other": "(~%(count)s результаты)",
"Device Name": "Имя устройства",
"Custom": "Пользовательские",
"Decline": "Отклонить",
@@ -930,7 +693,7 @@
"Seen by %(userName)s at %(dateTime)s": "Просмотрено %(userName)s в %(dateTime)s",
"Send anyway": "Отправить в любом случае",
"Show Text Formatting Toolbar": "Показать панель инструментов форматирования текста",
- "This invitation was sent to an email address which is not associated with this account:": "Это приглашение было отправлено на адрес электронной почты, не связанный с этой учетной записью:",
+ "This invitation was sent to an email address which is not associated with this account:": "Это приглашение было отправлено на адрес email, не связанный с этой учетной записью:",
"To link to a room it must have an address.": "Чтобы связаться с комнатой, она должна иметь адрес.",
"Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Не удалось установить соответствует ли адрес, по которому этому приглашение было послано, вашей учетной записи.",
"Undecryptable": "Невозможно расшифровать",
@@ -943,11 +706,11 @@
"%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (уровень доступа %(powerLevelNumber)s)",
"Verified": "Проверено",
"Would you like to accept or decline this invitation?": "Вы хотели бы подтвердить или отклонить это приглашение?",
- "(~%(count)s results).one": "(~%(count)s результат)",
+ "(~%(count)s results)|one": "(~%(count)s результат)",
"Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Не удается подключиться к домашнему серверу - проверьте подключение, убедитесь, что ваш SSL-сертификат домашнего сервера является доверенным и что расширение браузера не блокирует запросы.",
"You have been banned from %(roomName)s by %(userName)s.": "%(userName)s заблокировал вас в %(roomName)s.",
"You have been kicked from %(roomName)s by %(userName)s.": "%(userName)s выгнал вас из %(roomName)s.",
- "You may wish to login with a different account, or add this email to this account.": "При желании вы можете войти в систему с другой учетной записью или добавить этот адрес электронной почты в эту учетную запись.",
+ "You may wish to login with a different account, or add this email to this account.": "При желании вы можете войти в систему с другой учетной записью или добавить этот адрес email в эту учетную запись.",
"Your home server does not support device management.": "Ваш домашний сервер не поддерживает управление устройствами.",
"(could not connect media)": "(подключение к СМИ не может быть установлено)",
"(no answer)": "(нет ответа)",
@@ -956,10 +719,10 @@
"Not a valid Riot keyfile": "Недействительный файл ключа Riot",
"Your browser does not support the required cryptography extensions": "Ваш браузер не поддерживает требуемые криптографические расширения",
"Authentication check failed: incorrect password?": "Ошибка аутентификации: неправильный пароль?",
- "Do you want to set an email address?": "Хотите указать адрес электронной почты?",
+ "Do you want to set an email address?": "Хотите указать адрес email?",
"This will allow you to reset your password and receive notifications.": "Это позволит при необходимости сбросить пароль и получать уведомления.",
"Press to start a chat with someone": "Нажмите для начала чата с кем-либо",
- "You're not in any rooms yet! Press to make a room or to browse the directory": "Вы ещё не находитесь ни в одной комнате! Нажмите , чтобы создать комнату или для просмотра каталога",
+ "You're not in any rooms yet! Press to make a room or to browse the directory": "Вы еще не вошли ни в одну из комнат! Нажмите , чтобы создать комнату или для просмотра каталога",
"To return to your account in future you need to set a password": "Чтобы вернуться к учетной записи в будущем, необходимо задать пароль",
"Skip": "Пропустить",
"Start verification": "Начать проверку",
@@ -977,6 +740,251 @@
"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": "Включить автоматическое определение языка для подсветки синтаксиса"
+ "Edit": "Редактировать",
+ "Enable automatic language detection for syntax highlighting": "Включить автоматическое определение языка для подсветки синтаксиса",
+ "Hide Apps": "Скрыть приложения",
+ "Hide join/leave messages (invites/kicks/bans unaffected)": "Скрыть сообщения о входе/выходе (не применяется к приглашениям/выкидываниям/банам)",
+ "Hide avatar and display name changes": "Скрыть сообщения об изменении аватаров и отображаемых имен",
+ "Integrations Error": "Ошибка интеграции",
+ "AM": "AM",
+ "PM": "PM",
+ "NOTE: Apps are not end-to-end encrypted": "ПРИМЕЧАНИЕ: приложения не защищены сквозным шифрованием",
+ "Revoke widget access": "Отозвать доступ к виджетам",
+ "Sets the room topic": "Задать тему комнаты",
+ "Show Apps": "Показать приложения",
+ "The maximum permitted number of widgets have already been added to this room.": "Максимально допустимое количество виджетов уже добавлено в эту комнату.",
+ "To get started, please pick a username!": "Чтобы начать, выберите имя пользователя!",
+ "Unable to create widget.": "Не удалось создать виджет.",
+ "Unbans user with given id": "Разбанить пользователя с заданным ID",
+ "You are not in this room.": "Вас нет в этой комнате.",
+ "You do not have permission to do that in this room.": "У вас нет разрешения на это в этой комнате.",
+ "Verifies a user, device, and pubkey tuple": "Проверка пользователя, устройства и открытого ключа",
+ "Autocomplete Delay (ms):": "Задержка автозаполнения (мс):",
+ "Loading device info...": "Загрузка информации об устройстве...",
+ "Example": "Пример",
+ "Create": "Создать",
+ "Room creation failed": "Не удалось создать комнату",
+ "Featured Rooms:": "Рекомендуемые комнаты:",
+ "Featured Users:": "Избранные пользователи:",
+ "Automatically replace plain text Emoji": "Автоматически заменять обычный текст на Emoji",
+ "Failed to upload image": "Не удалось загрузить изображение",
+ "Hide avatars in user and room mentions": "Скрыть аватары в упоминаниях пользователей и комнат",
+ "%(widgetName)s widget added by %(senderName)s": "%(widgetName)s виджет, добавленный %(senderName)s",
+ "%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s виджет, удаленный %(senderName)s",
+ "Robot check is currently unavailable on desktop - please use a web browser": "Проверка робота в настоящее время недоступна на компьютере - пожалуйста, используйте браузер",
+ "Publish this room to the public in %(domain)s's room directory?": "Опубликовать эту комнату для пользователей в %(domain)s каталоге комнат?",
+ "%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s виджет, измененный %(senderName)s",
+ "Copied!": "Скопировано!",
+ "Failed to copy": "Не удалось скопировать",
+ "Advanced options": "Дополнительные параметры",
+ "Block users on other matrix homeservers from joining this room": "Блокировать пользователей, входящих в эту комнату с других серверов matrix",
+ "This setting cannot be changed later!": "Этот параметр нельзя изменить позднее!",
+ "Ignored Users": "Игнорируемые пользователи",
+ "Ignore": "Игнорировать",
+ "Unignore": "Перестать игнорировать",
+ "User Options": "Параметры пользователя",
+ "You are now ignoring %(userId)s": "Теперь вы игнорируете %(userId)s",
+ "You are no longer ignoring %(userId)s": "Вы больше не игнорируете %(userId)s",
+ "Unignored user": "Неигнорируемый пользователь",
+ "Ignored user": "Игнорируемый пользователь",
+ "Stops ignoring a user, showing their messages going forward": "Прекращает игнорирование пользователя, показывая их будущие сообщения",
+ "Ignores a user, hiding their messages from you": "Игнорирует пользователя, скрывая сообщения от вас",
+ "Disable Emoji suggestions while typing": "Отключить предложения Emoji при наборе текста",
+ "Banned by %(displayName)s": "Запрещено %(displayName)s",
+ "Message removed by %(userId)s": "Сообщение удалено %(userId)s",
+ "To send messages, you must be a": "Для отправки сообщений необходимо быть",
+ "To invite users into the room, you must be a": "Чтобы пригласить пользователей в комнату, необходимо быть",
+ "To configure the room, you must be a": "Чтобы настроить комнату, необходимо быть",
+ "To kick users, you must be a": "Чтобы выкидывать пользователей, необходимо быть",
+ "To ban users, you must be a": "Чтобы банить пользователей, необходимо быть",
+ "To remove other users' messages, you must be a": "Чтобы удалять сообщения других пользователей, необходимо быть",
+ "To send events of type , you must be a": "Для отправки событий типа , необходимо быть",
+ "To change the room's avatar, you must be a": "Чтобы изменить аватар комнаты, необходимо быть",
+ "To change the room's name, you must be a": "Чтобы изменить имя комнаты, необходимо быть",
+ "To change the room's main address, you must be a": "Чтобы изменить основной адрес комнаты, необходимо быть",
+ "To change the room's history visibility, you must be a": "Чтобы изменить видимость истории комнаты, необходимо быть",
+ "To change the permissions in the room, you must be a": "Чтобы изменить разрешения в комнате, необходимо быть",
+ "To change the topic, you must be a": "Чтобы изменить тему, необходимо быть",
+ "To modify widgets in the room, you must be a": "Чтобы изменить виджеты в комнате, необходимо быть",
+ "Description": "Описание",
+ "Name or matrix ID": "Имя или matrix ID",
+ "Unable to accept invite": "Невозможно принять приглашение",
+ "Unable to leave room": "Невозможно покинуть комнату",
+ "Leave": "Покинуть",
+ "Failed to invite the following users to %(groupId)s:": "Не удалось пригласить следующих пользователей в %(groupId)s:",
+ "Failed to remove '%(roomName)s' from %(groupId)s": "Не удалось удалить '%(roomName)s' из %(groupId)s",
+ "Are you sure you want to remove '%(roomName)s' from %(groupId)s?": "Вы действительно хотите удалить '%(roomName)s' из %(groupId)s?",
+ "Invites sent": "Приглашение отправлено",
+ "Jump to read receipt": "Перейти к подтверждению о прочтении",
+ "Disable big emoji in chat": "Отключить большие emoji в чате",
+ "There's no one else here! Would you like to invite others or stop warning about the empty room?": "Больше никого нет! Хотите пригласить кого-нибудь или отключить уведомление о пустой комнате?",
+ "Message Pinning": "Закрепление сообщений",
+ "Remove avatar": "Удалить аватар",
+ "Failed to invite users to %(groupId)s": "Не удалось пригласить пользователей в %(groupId)s",
+ "Unable to reject invite": "Невозможно отклонить приглашение",
+ "Leave %(groupName)s?": "Покинуть %(groupName)s?",
+ "Add a Room": "Добавить комнату",
+ "Add a User": "Добавить пользователя",
+ "Who would you like to add to this summary?": "Кого вы хотите добавить в эту сводку?",
+ "Add to summary": "Добавить в сводку",
+ "Failed to add the following users to the summary of %(groupId)s:": "Не удалось добавить следующих пользователей в сводку %(groupId)s:",
+ "Which rooms would you like to add to this summary?": "Какие комнаты вы хотите добавить в эту сводку?",
+ "Room name or alias": "Название комнаты или псевдоним",
+ "Pinned Messages": "Закрепленные сообщения",
+ "%(senderName)s changed the pinned messages for the room.": "%(senderName)s изменил закрепленные сообщения для этой комнаты.",
+ "Failed to add the following rooms to the summary of %(groupId)s:": "Не удалось добавить следующие комнаты в сводку %(groupId)s:",
+ "Failed to remove the room from the summary of %(groupId)s": "Не удалось удалить комнату из сводки %(groupId)s",
+ "The room '%(roomName)s' could not be removed from the summary.": "Комнату '%(roomName)s' не удалось удалить из сводки.",
+ "Failed to remove a user from the summary of %(groupId)s": "Не удалось удалить пользователя из сводки %(groupId)s",
+ "The user '%(displayName)s' could not be removed from the summary.": "Пользователя '%(displayName)s' не удалось удалить из сводки.",
+ "Light theme": "Светлая тема",
+ "Dark theme": "Темная тема",
+ "Unknown": "Неизвестно",
+ "Failed to add the following rooms to %(groupId)s:": "Не удалось добавить следующие комнаты в %(groupId)s:",
+ "Matrix ID": "Matrix ID",
+ "Matrix Room ID": "Matrix ID комнаты",
+ "email address": "адрес email",
+ "Try using one of the following valid address types: %(validTypesList)s.": "Попробуйте использовать один из следующих допустимых типов адресов: %(validTypesList)s.",
+ "You have entered an invalid address.": "Введен неправильный адрес.",
+ "Unpin Message": "Открепить сообщение",
+ "Jump to message": "Перейти к сообщению",
+ "No pinned messages.": "Нет прикрепленных сообщений.",
+ "Loading...": "Загрузка...",
+ "Unnamed room": "Комната без названия",
+ "World readable": "Доступно всем",
+ "Guests can join": "Гости могут присоединиться",
+ "No rooms to show": "Нет комнат для отображения",
+ "Community Member Settings": "Настройки участников сообщества",
+ "Publish this community on your profile": "Опубликовать это сообщество в вашем профиле",
+ "Long Description (HTML)": "Длинное описание (HTML)",
+ "Community Settings": "Настройки сообщества",
+ "Invite to Community": "Пригласить в сообщество",
+ "Add to community": "Добавить в сообщество",
+ "Add rooms to the community": "Добавление комнат в сообщество",
+ "Which rooms would you like to add to this community?": "Какие комнаты вы хотите добавить в это сообщество?",
+ "Who would you like to add to this community?": "Кого бы вы хотели добавить в это сообщество?",
+ "Invite new community members": "Пригласить новых членов сообщества",
+ "Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Предупреждение: любой, кого вы добавляете в сообщество, будет виден всем, кто знает ID сообщества",
+ "Warning: any room you add to a community will be publicly visible to anyone who knows the community ID": "Предупреждение: любая комната, добавляемая в сообщество, будет видна всем, кто знает ID сообщества",
+ "Add rooms to this community": "Добавить комнаты в это сообщество",
+ "Your community invitations have been sent.": "Ваши приглашения в сообщество были отправлены.",
+ "Failed to invite users to community": "Не удалось пригласить пользователей в сообщество",
+ "Communities": "Сообщества",
+ "Invalid community ID": "Недопустимый ID сообщества",
+ "'%(groupId)s' is not a valid community ID": "'%(groupId)s' - недействительный ID сообщества",
+ "Related Communities": "Связанные сообщества",
+ "Related communities for this room:": "Связанные сообщества для этой комнаты:",
+ "This room has no related communities": "Эта комната не имеет связанных сообществ",
+ "New community ID (e.g. +foo:%(localDomain)s)": "Новый ID сообщества (напр. +foo:%(localDomain)s)",
+ "Remove from community": "Удалить из сообщества",
+ "Failed to remove user from community": "Не удалось удалить пользователя из сообщества",
+ "Filter community members": "Фильтр участников сообщества",
+ "Filter community rooms": "Фильтр комнат сообщества",
+ "Failed to remove room from community": "Не удалось удалить комнату из сообщества",
+ "Removing a room from the community will also remove it from the community page.": "Удаление комнаты из сообщества также удалит ее со страницы сообщества.",
+ "Community IDs may only contain alphanumeric characters": "ID сообщества могут содержать только буквенно-цифровые символы",
+ "Create Community": "Создать сообщество",
+ "Community Name": "Имя сообщества",
+ "Community ID": "ID сообщества",
+ "example": "пример",
+ "Add rooms to the community summary": "Добавить комнаты в сводку сообщества",
+ "Add users to the community summary": "Добавить пользователей в сводку сообщества",
+ "Failed to update community": "Не удалось обновить сообщество",
+ "Leave Community": "Покинуть сообщество",
+ "%(inviter)s has invited you to join this community": "%(inviter)s пригласил(а) вас присоединиться к этому сообществу",
+ "You are a member of this community": "Вы являетесь участником этого сообщества",
+ "You are an administrator of this community": "Вы являетесь администратором этого сообщества",
+ "Community %(groupId)s not found": "Сообщество %(groupId)s не найдено",
+ "This Home server does not support communities": "Этот домашний сервер не поддерживает сообщества",
+ "Failed to load %(groupId)s": "Ошибка загрузки %(groupId)s",
+ "Your Communities": "Ваши сообщества",
+ "You're not currently a member of any communities.": "В настоящее время вы не являетесь членом каких-либо сообществ.",
+ "Error whilst fetching joined communities": "Ошибка при загрузке сообществ",
+ "Create a new community": "Создать новое сообщество",
+ "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Создайте сообщество для объединения пользователей и комнат! Создайте собственную домашнюю страницу, чтобы выделить свое пространство во вселенной Matrix.",
+ "Join an existing community": "Присоединиться к существующему сообществу",
+ "To join an existing community you'll have to know its community identifier; this will look something like +example:matrix.org.": "Чтобы присоединиться к существующему сообществу, вам нужно знать его ID; это будет выглядеть примерно так+primer:matrix.org.",
+ "Something went wrong whilst creating your community": "При создании сообщества что-то пошло не так",
+ "%(names)s and %(count)s others are typing|other": "%(names)s и %(count)s другие печатают",
+ "And %(count)s more...|other": "И более %(count)s...",
+ "Delete Widget": "Удалить виджет",
+ "Deleting a widget removes it for all users in this room. Are you sure you want to delete this widget?": "Удаление виджета удаляет его для всех пользователей этой комнаты. Вы действительно хотите удалить этот виджет?",
+ "Message removed": "Сообщение удалено",
+ "Mirror local video feed": "Зеркальное отображение видео",
+ "Invite": "Пригласить",
+ "Remove this room from the community": "Удалить эту комнату из сообщества",
+ "Mention": "Упоминание",
+ "Failed to withdraw invitation": "Не удалось отозвать приглашение",
+ "Community IDs may only contain characters a-z, 0-9, or '=_-./'": "ID сообществ могут содержать только символы a-z, 0-9, или '=_-./'",
+ "%(names)s and %(count)s others are typing|one": "%(names)s и еще кто-то печатает",
+ "%(senderName)s sent an image": "%(senderName)s отправил(а) изображение",
+ "%(senderName)s sent a video": "%(senderName)s отправил(а) видео",
+ "%(senderName)s uploaded a file": "%(senderName)s загрузил(а) файл",
+ "Disinvite this user?": "Отменить приглашение этого пользователя?",
+ "Kick this user?": "Выгнать этого пользователя?",
+ "Unban this user?": "Разблокировать этого пользователя?",
+ "Ban this user?": "Заблокировать этого пользователя?",
+ "Drop here to favourite": "Перетащите сюда для добавления в избранные",
+ "You have been kicked from this room by %(userName)s.": "%(userName)s выгнал(а) вас из этой комнаты.",
+ "You have been banned from this room by %(userName)s.": "%(userName)s заблокировал(а) вас в этой комнате.",
+ "You are trying to access a room.": "Вы пытаетесь получить доступ к комнате.",
+ "Members only (since the point in time of selecting this option)": "Только участники (с момента выбора этого параметра)",
+ "Members only (since they were invited)": "Только участники (с момента их приглашения)",
+ "Members only (since they joined)": "Только участники (с момента их присоединения)",
+ "An email has been sent to %(emailAddress)s": "Письмо было отправлено на %(emailAddress)s",
+ "A text message has been sent to %(msisdn)s": "Текстовое сообщение отправлено на %(msisdn)s",
+ "Disinvite this user from community?": "Отозвать приглашение этого пользователя в сообщество?",
+ "Remove this user from community?": "Удалить этого пользователя из сообщества?",
+ "%(nameList)s %(transitionList)s": "%(nameList)s %(transitionList)s",
+ "%(severalUsers)sjoined %(count)s times|other": "%(severalUsers)s присоединились %(count)s раз",
+ "%(severalUsers)sjoined %(count)s times|one": "%(severalUsers)s присоединились",
+ "%(oneUser)sjoined %(count)s times|other": "%(oneUser)s присоединился(-лась) %(count)s раз",
+ "%(oneUser)sjoined %(count)s times|one": "%(oneUser)s присоединился(-лась)",
+ "%(severalUsers)sleft %(count)s times|other": "%(severalUsers)s покинули %(count)s раз",
+ "%(severalUsers)sleft %(count)s times|one": "%(severalUsers)s покинули",
+ "%(oneUser)sleft %(count)s times|other": "%(oneUser)sl покинул(а) %(count)s раз",
+ "%(oneUser)sleft %(count)s times|one": "%(oneUser)s покинул(а)",
+ "%(severalUsers)sjoined and left %(count)s times|other": "%(severalUsers)s присоединились и покинули %(count)s раз",
+ "%(severalUsers)sjoined and left %(count)s times|one": "%(severalUsers)s присоединились и покинули",
+ "%(oneUser)sjoined and left %(count)s times|other": "%(oneUser)s присоединился(-лась) и покинул(а) %(count)s раз",
+ "%(oneUser)sjoined and left %(count)s times|one": "%(oneUser)s присоединился(-лась) и покинул(а)",
+ "%(severalUsers)sleft and rejoined %(count)s times|other": "%(severalUsers)s покинули и снова присоединились %(count)s раз",
+ "%(severalUsers)sleft and rejoined %(count)s times|one": "%(severalUsers)s покинули и снова присоединились",
+ "%(oneUser)sleft and rejoined %(count)s times|other": "%(oneUser)s покинул(а) и снова присоединился(-лась) %(count)s раз",
+ "%(oneUser)sleft and rejoined %(count)s times|one": "%(oneUser)s покинул(а) и снова присоединился(-лась)",
+ "were invited %(count)s times|other": "были приглашены %(count)s раз",
+ "were invited %(count)s times|one": "были приглашены",
+ "was invited %(count)s times|other": "был(а) приглашен(а) %(count)s раз",
+ "was invited %(count)s times|one": "был(а) приглашен(а)",
+ "were banned %(count)s times|other": "были заблокированы %(count)s раз",
+ "were banned %(count)s times|one": "были заблокированы",
+ "was banned %(count)s times|other": "был(а) заблокирован(а) %(count)s раз",
+ "was banned %(count)s times|one": "был(а) заблокирован(а)",
+ "were unbanned %(count)s times|other": "были разблокированы %(count)s раз",
+ "were unbanned %(count)s times|one": "были разблокированы",
+ "was unbanned %(count)s times|other": "был(а) разблокирован(а) %(count)s раз",
+ "was unbanned %(count)s times|one": "был(а) разблокирован(а)",
+ "were kicked %(count)s times|other": "были выкинуты %(count)s раз",
+ "were kicked %(count)s times|one": "были выкинуты",
+ "was kicked %(count)s times|other": "был(а) выкинут(а) %(count)s раз",
+ "was kicked %(count)s times|one": "был(а) выкинут(а)",
+ "%(severalUsers)schanged their name %(count)s times|other": "%(severalUsers)s изменили свое имя %(count)s раз",
+ "%(severalUsers)schanged their name %(count)s times|one": "%(severalUsers)s изменили свое имя",
+ "%(oneUser)schanged their name %(count)s times|other": "%(oneUser)s изменил(а) свое имя %(count)s раз",
+ "%(oneUser)schanged their name %(count)s times|one": "%(oneUser)s изменил(а) свое имя",
+ "%(severalUsers)schanged their avatar %(count)s times|other": "%(severalUsers)s изменили свои аватары %(count)s раз",
+ "%(severalUsers)schanged their avatar %(count)s times|one": "%(severalUsers)s изменили свои аватары",
+ "%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)s изменил(а) свой аватар %(count)s раз",
+ "%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)s изменил(а) свой аватар",
+ "%(items)s and %(count)s others|other": "%(items)s и %(count)s других",
+ "%(items)s and %(count)s others|one": "%(items)s и один другой",
+ "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "Сообщение отправлено на %(emailAddress)s. После перехода по ссылке в отправленном вам письме, щелкните ниже.",
+ "Room Notification": "Уведомления комнаты",
+ "Drop here to tag direct chat": "Перетащите сюда, чтобы отметить как прямой чат",
+ "Drop here to restore": "Перетащиет сюда для восстановления",
+ "Drop here to demote": "Перетащите сюда для понижения",
+ "Community Invites": "Приглашения в сообщества",
+ "Notify the whole room": "Уведомить всю комнату",
+ "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "Эти комнаты отображаются для участников сообщества на странице сообщества. Участники сообщества могут присоединиться к комнатам, щелкнув на них.",
+ "Show these rooms to non-members on the community page and room list?": "Следует ли показывать эти комнаты посторонним на странице сообщества и в комнате?"
}
diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json
new file mode 100644
index 0000000000..837a55e380
--- /dev/null
+++ b/src/i18n/strings/sk.json
@@ -0,0 +1,930 @@
+{
+ "This email address is already in use": "Táto emailová adresa sa už používa",
+ "This phone number is already in use": "Toto telefónne číslo sa už používa",
+ "Failed to verify email address: make sure you clicked the link in the email": "Nepodarilo sa overiť emailovú adresu: Uistite sa, že ste správne klikli na odkaz v emailovej správe",
+ "Call Timeout": "Časový limit hovoru",
+ "The remote side failed to pick up": "Vzdialenej strane sa nepodarilo priať hovor",
+ "Unable to capture screen": "Nie je možné zachytiť obrazovku",
+ "Existing Call": "Existujúci hovor",
+ "You are already in a call.": "Už ste súčasťou iného hovoru.",
+ "VoIP is unsupported": "VoIP nie je podporovaný",
+ "You cannot place VoIP calls in this browser.": "Použitím tohoto webového prehliadača nemôžete uskutočniť hovory.",
+ "You cannot place a call with yourself.": "Nemôžete uskutočniť hovor so samým sebou.",
+ "Conference calls are not supported in this client": "Tento klient nepodporuje konferenčné hovory",
+ "Conference calls are not supported in encrypted rooms": "Konferenčné hovory nie sú podporované v šifrovaných miestnostiach",
+ "Warning!": "Upozornenie!",
+ "Conference calling is in development and may not be reliable.": "Konferenčné hovory sú stále vo vývoji a nemusia byť úplne spoľahlivé.",
+ "Failed to set up conference call": "Nepodarilo sa nastaviť konferenčný hovor",
+ "Conference call failed.": "Konferenčný hovor sa nepodarilo uskutočniť.",
+ "The file '%(fileName)s' failed to upload": "Nepodarilo sa nahrať súbor '%(fileName)s'",
+ "The file '%(fileName)s' exceeds this home server's size limit for uploads": "Veľkosť súboru '%(fileName)s' prekračuje limit veľkosti súboru nahrávania na tento domovský server",
+ "Upload Failed": "Nahrávanie zlyhalo",
+ "Sun": "Ne",
+ "Mon": "Po",
+ "Tue": "Ut",
+ "Wed": "St",
+ "Thu": "Št",
+ "Fri": "Pi",
+ "Sat": "So",
+ "Jan": "Jan",
+ "Feb": "Feb",
+ "Mar": "Mar",
+ "Apr": "Apr",
+ "May": "Maj",
+ "Jun": "Jun",
+ "Jul": "Jul",
+ "Aug": "Aug",
+ "Sep": "Sep",
+ "Oct": "Okt",
+ "Nov": "Nov",
+ "Dec": "Dec",
+ "PM": "PM",
+ "AM": "AM",
+ "%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
+ "%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s, %(day)s %(monthName)s %(time)s",
+ "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(day)s %(monthName)s %(fullYear)s %(time)s",
+ "Who would you like to add to this community?": "Koho si želáte pridať do tejto komunity?",
+ "Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Pozor: Každá osoba, ktorú pridáte do komunity bude verejne dostupná pre všetkých, čo poznajú ID komunity",
+ "Invite new community members": "Pozvať nových členov komunity",
+ "Name or matrix ID": "Meno alebo matrix ID",
+ "Invite to Community": "Pozvať do komunity",
+ "Which rooms would you like to add to this community?": "Ktoré miestnosti by ste radi pridali do tejto komunity?",
+ "Add rooms to the community": "Pridať miestnosti do komunity",
+ "Room name or alias": "Názov miestnosti alebo alias",
+ "Add to community": "Pridať do komunity",
+ "Failed to invite the following users to %(groupId)s:": "Do komunity %(groupId)s sa nepodarilo pozvať nasledujúcich používateľov:",
+ "Failed to invite users to community": "Do komunity sa nepodarilo pozvať používateľov",
+ "Failed to invite users to %(groupId)s": "Do komunity %(groupId)s sa nepodarilo pozvať používateľov",
+ "Failed to add the following rooms to %(groupId)s:": "Do komunity %(groupId)s sa nepodarilo pridať nasledujúce miestnosti:",
+ "Riot does not have permission to send you notifications - please check your browser settings": "Riot nemá udelené povolenie, aby vám mohol posielať oznámenia - Prosím, skontrolujte nastavenia vašeho prehliadača",
+ "Riot was not given permission to send notifications - please try again": "Aplikácii Riot neboli udelené oprávnenia potrebné pre posielanie oznámení - prosím, skúste to znovu",
+ "Unable to enable Notifications": "Nie je možné povoliť oznámenia",
+ "This email address was not found": "Túto emailovú adresu sa nepodarilo nájsť",
+ "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Zdá sa, že vaša emailová adresa nie je priradená k žiadnemu Matrix ID na tomto domovskom servery.",
+ "Default": "Predvolené",
+ "User": "Používateľ",
+ "Moderator": "Moderátor",
+ "Admin": "Správca",
+ "Start a chat": "Začať konverzáciu",
+ "Who would you like to communicate with?": "S kým si želáte komunikovať?",
+ "Email, name or matrix ID": "Emailová adresa, meno alebo matrix ID",
+ "Start Chat": "Začať konverzáciu",
+ "Invite new room members": "Pozvať nových členov do miestnosti",
+ "Who would you like to add to this room?": "Koho si želáte pridať do tejto miestnosti?",
+ "Send Invites": "Poslať pozvánky",
+ "Failed to invite user": "Nepodarilo sa pozvať používateľa",
+ "Operation failed": "Operácia zlyhala",
+ "Failed to invite": "Pozvanie zlyhalo",
+ "Failed to invite the following users to the %(roomName)s room:": "Do miestnosti %(roomName)s sa nepodarilo pozvať nasledujúcich používateľov:",
+ "You need to be logged in.": "Mali by ste byť prihlásení.",
+ "You need to be able to invite users to do that.": "Na uskutočnenie tejto akcie by ste mali byť schopní pozývať používateľov.",
+ "Unable to create widget.": "Nie je možné vytvoriť widget.",
+ "Failed to send request.": "Nepodarilo sa odoslať požiadavku.",
+ "This room is not recognised.": "Nie je možné rozpoznať takúto miestnosť.",
+ "Power level must be positive integer.": "Úroveň moci musí byť kladné celé číslo.",
+ "You are not in this room.": "Nenachádzate sa v tejto miestnosti.",
+ "You do not have permission to do that in this room.": "V tejto miestnosti nemáte oprávnenie na vykonanie takejto akcie.",
+ "Missing room_id in request": "V požiadavke chýba room_id",
+ "Must be viewing a room": "Musí byť zobrazená miestnosť",
+ "Room %(roomId)s not visible": "Miestnosť %(roomId)s nie je viditeľná",
+ "Missing user_id in request": "V požiadavke chýba user_id",
+ "Failed to lookup current room": "Nepodarilo sa vyhľadať aktuálnu miestnosť",
+ "Usage": "Použitie",
+ "/ddg is not a command": "/ddg nie je žiaden príkaz",
+ "To use it, just wait for autocomplete results to load and tab through them.": "Ak to chcete použiť, len počkajte na načítanie výsledkov automatického dopĺňania a cyklicky prechádzajte stláčaním klávesu tab..",
+ "Unrecognised room alias:": "Nerozpoznaný alias miestnosti:",
+ "Ignored user": "Ignorovaný používateľ",
+ "You are now ignoring %(userId)s": "Od teraz ignorujete používateľa %(userId)s",
+ "Unignored user": "Ignorácia zrušená",
+ "You are no longer ignoring %(userId)s": "Od teraz viac neignorujete používateľa %(userId)s",
+ "Unknown (user, device) pair:": "Neznámy pár (používateľ, zariadenie):",
+ "Device already verified!": "Zariadenie už overené!",
+ "WARNING: Device already verified, but keys do NOT MATCH!": "POZOR: Zariadenie je už overené, ale kľúče SA NEZHODUJÚ!",
+ "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!": "POZOR: OVERENIE KĽÚČOV ZLYHALO! Podpisovací kľúč zo zariadenia %(deviceId)s používateľa %(userId)s je \"%(fprint)s\" čo sa nezhoduje s poskytnutým kľúčom \"%(fingerprint)s\". Mohlo by to znamenať, že vaša komunikácia je práve odpočúvaná!",
+ "Verified key": "Kľúč overený",
+ "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Podpisovací kľúč, ktorý ste poskytli súhlasí s podpisovacím kľúčom, ktorý ste dostali zo zariadenia %(deviceId)s používateľa %(userId)s's. Zariadenie je považované za overené.",
+ "Unrecognised command:": "Nerozpoznaný príkaz:",
+ "Reason": "Dôvod",
+ "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s prijal pozvanie pre %(displayName)s.",
+ "%(targetName)s accepted an invitation.": "%(targetName)s prijal pozvanie.",
+ "%(senderName)s requested a VoIP conference.": "%(senderName)s požiadal o VOIP konferenciu.",
+ "%(senderName)s invited %(targetName)s.": "%(senderName)s pozval %(targetName)s.",
+ "%(senderName)s banned %(targetName)s.": "%(senderName)s zakázal vstup %(targetName)s.",
+ "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s si zmenil zobrazované meno z %(oldDisplayName)s na %(displayName)s.",
+ "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s si nastavil zobrazované meno %(displayName)s.",
+ "%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s odstránil svoje zobrazované meno (%(oldDisplayName)s).",
+ "%(senderName)s removed their profile picture.": "%(senderName)s si z profilu odstránil obrázok.",
+ "%(senderName)s changed their profile picture.": "%(senderName)s si zmenil obrázok v profile.",
+ "%(senderName)s set a profile picture.": "%(senderName)s si nastavil obrázok v profile.",
+ "VoIP conference started.": "Začala VoIP konferencia.",
+ "%(targetName)s joined the room.": "%(targetName)s vstúpil do miestnosti.",
+ "VoIP conference finished.": "Skončila VoIP konferencia.",
+ "%(targetName)s rejected the invitation.": "%(targetName)s odmietol pozvanie.",
+ "%(targetName)s left the room.": "%(targetName)s opustil miestnosť.",
+ "%(senderName)s unbanned %(targetName)s.": "%(senderName)s povolil vstup %(targetName)s.",
+ "%(senderName)s kicked %(targetName)s.": "%(senderName)s vykopol %(targetName)s.",
+ "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s stiahol pozvanie %(targetName)s.",
+ "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s zmenil tému na \"%(topic)s\".",
+ "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s odstránil názov miestnosti.",
+ "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s zmenil názov miestnosti na %(roomName)s.",
+ "%(senderDisplayName)s sent an image.": "%(senderDisplayName)s poslal obrázok.",
+ "Someone": "Niekto",
+ "(not supported by this browser)": "(Nepodporované v tomto prehliadači)",
+ "%(senderName)s answered the call.": "%(senderName)s prijal hovor.",
+ "(could not connect media)": "(nie je možné spojiť médiá)",
+ "(no answer)": "(žiadna odpoveď)",
+ "(unknown failure: %(reason)s)": "(neznáma chyba: %(reason)s)",
+ "%(senderName)s ended the call.": "%(senderName)s ukončil hovor.",
+ "%(senderName)s placed a %(callType)s call.": "%(senderName)s uskutočnil %(callType)s hovor.",
+ "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s pozval %(targetDisplayName)s vstúpiť do miestnosti.",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s sprístupnil budúcu históriu miestnosti pre všetkých členov, od kedy boli pozvaní.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s sprístupnil budúcu históriu miestnosti pre všetkých členov, od kedy vstúpili.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s sprístupnil budúcu históriu miestnosti pre všetkých členov.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s sprístupnil budúcu históriu miestnosti pre všetkých.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s sprístupnil budúcu históriu miestnosti neznámym (%(visibility)s).",
+ "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s povolil E2E šifrovanie (algoritmus %(algorithm)s).",
+ "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s z %(fromPowerLevel)s na %(toPowerLevel)s",
+ "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s zmenil úroveň moci pre %(powerLevelDiffText)s.",
+ "%(senderName)s changed the pinned messages for the room.": "%(senderName)s zmenil pripnuté správy pre túto miestnosť.",
+ "%(widgetName)s widget modified by %(senderName)s": "%(senderName)s zmenil widget %(widgetName)s",
+ "%(widgetName)s widget added by %(senderName)s": "%(senderName)s pridal widget %(widgetName)s",
+ "%(widgetName)s widget removed by %(senderName)s": "%(senderName)s odstránil widget %(widgetName)s",
+ "Communities": "Komunity",
+ "Message Pinning": "Pripnutie správ",
+ "%(displayName)s is typing": "%(displayName)s píše",
+ "%(names)s and %(count)s others are typing|other": "%(names)s a %(count)s ďalší píšu",
+ "%(names)s and %(count)s others are typing|one": "%(names)s a jeden ďalší píše",
+ "%(names)s and %(lastPerson)s are typing": "%(names)s a %(lastPerson)s píšu",
+ "Failure to create room": "Nepodarilo sa vytvoriť miestnosť",
+ "Server may be unavailable, overloaded, or you hit a bug.": "Server môže byť nedostupný, preťažený, alebo ste narazili na chybu.",
+ "Unnamed Room": "Nepomenovaná miestnosť",
+ "Your browser does not support the required cryptography extensions": "Váš prehliadač nepodporuje požadované kryptografické rozšírenia",
+ "Not a valid Riot keyfile": "Toto nie je správny súbor s kľúčami Riot",
+ "Authentication check failed: incorrect password?": "Kontrola overenia zlyhala: Nesprávne heslo?",
+ "Failed to join room": "Nepodarilo sa vstúpiť do miestnosti",
+ "Active call (%(roomName)s)": "Aktívny hovor (%(roomName)s)",
+ "unknown caller": "neznámeho volajúceho",
+ "Incoming voice call from %(name)s": "Prichádzajúci audio hovor od %(name)s",
+ "Incoming video call from %(name)s": "Prichádzajúci video hovor od %(name)s",
+ "Incoming call from %(name)s": "Prichádzajúci hovor od %(name)s",
+ "Decline": "Odmietnuť",
+ "Accept": "Prijať",
+ "Error": "Chyba",
+ "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Na číslo +%(msisdn)s bola odoslaná textová správa, ktorá obsahuje overovací kód. Prosím zadajte tento overovací kód",
+ "Incorrect verification code": "Nesprávny overovací kód",
+ "Enter Code": "Vložte kód",
+ "Submit": "Odoslať",
+ "Phone": "Telefón",
+ "Add phone number": "Pridať telefónne číslo",
+ "Add": "Pridať",
+ "Failed to upload profile picture!": "Do profilu sa nepodarilo nahrať obrázok!",
+ "Upload new:": "Nahrať nový:",
+ "No display name": "Žiadne zobrazované meno",
+ "New passwords don't match": "Nové heslá sa nezhodujú",
+ "Passwords can't be empty": "Heslá nemôžu byť prázdne",
+ "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.": "Zmena hesla momentálne obnoví šifrovacie kľúče na všetkých vašich zariadeniach, čo spôsobí, že história vašich šifrovaných konverzácií sa stane nečitateľná, jedine že si pred zmenou hesla exportujete kľúče miestností do súboru a po zmene kľúče importujete naspäť. V budúcnosti bude táto funkcia vylepšená.",
+ "Continue": "Pokračovať",
+ "Export E2E room keys": "Exportovať E2E šifrovacie kľúče miestností",
+ "Do you want to set an email address?": "Želáte si nastaviť emailovú adresu?",
+ "Current password": "Súčasné heslo",
+ "Password": "Heslo",
+ "New Password": "Nové heslo",
+ "Confirm password": "Potvrdiť heslo",
+ "Change Password": "Zmeniť heslo",
+ "Your home server does not support device management.": "Zdá sa, že váš domovský server nepodporuje správu zariadení.",
+ "Unable to load device list": "Nie je možné načítať zoznam zariadení",
+ "Device ID": "ID zariadenia",
+ "Device Name": "Názov zariadenia",
+ "Last seen": "Naposledy aktívne",
+ "Failed to set display name": "Nepodarilo sa nastaviť zobrazované meno",
+ "Authentication": "Overenie",
+ "Failed to delete device": "Nepodarilo sa vymazať zariadenie",
+ "Delete": "Vymazať",
+ "Disable Notifications": "Zakázať oznámenia",
+ "Enable Notifications": "Povoliť oznámenia",
+ "Cannot add any more widgets": "Nie je možné pridať ďalšie widgety",
+ "The maximum permitted number of widgets have already been added to this room.": "Do tejto miestnosti už bol pridaný maximálny povolený počet widgetov.",
+ "Add a widget": "Pridať widget",
+ "Drop File Here": "Pretiahnite sem súbor",
+ "Drop file here to upload": "Pretiahnutím sem nahráte súbor",
+ " (unsupported)": " (nepodporované)",
+ "Join as voice or video.": "Pripojte sa ako audio alebo video.",
+ "Ongoing conference call%(supportedText)s.": "Prebiehajúci%(supportedText)s hovor.",
+ "%(senderName)s sent an image": "%(senderName)s poslal obrázok",
+ "%(senderName)s sent a video": "%(senderName)s poslal video",
+ "%(senderName)s uploaded a file": "%(senderName)s nahral súbor",
+ "Options": "Možnosti",
+ "Undecryptable": "Nedešifrovateľné",
+ "Encrypted by a verified device": "Zašifrované overeným zariadením",
+ "Encrypted by an unverified device": "Zašifrované neovereným zariadením",
+ "Unencrypted message": "Nešifrovaná správa",
+ "Please select the destination room for this message": "Prosím, vyberte cieľovú miestnosť pre túto správu",
+ "Blacklisted": "Na čiernej listine",
+ "Verified": "Overené",
+ "Unverified": "Neoverené",
+ "device id: ": "ID zariadenia: ",
+ "Disinvite": "Stiahnuť pozvanie",
+ "Kick": "Vykopnúť",
+ "Disinvite this user?": "Stiahnuť pozvanie tohoto používateľa?",
+ "Kick this user?": "Vykopnúť tohoto používateľa?",
+ "Failed to kick": "Nepodarilo sa vykopnúť",
+ "Unban": "Povoliť vstup",
+ "Ban": "Zakázať vstup",
+ "Unban this user?": "Povoliť vstúpiť tomuto používateľovi?",
+ "Ban this user?": "Zakázať vstúpiť tomuto používateľovi?",
+ "Failed to ban user": "Nepodarilo sa zakázať vstup používateľa",
+ "Failed to mute user": "Nepodarilo sa umlčať používateľa",
+ "Failed to toggle moderator status": "Nepodarilo sa prepnúť stav moderátor",
+ "Failed to change power level": "Nepodarilo sa zmeniť úroveň moci",
+ "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Túto zmenu nebudete môcť vrátiť späť pretože tomuto používateľovi udeľujete rovnakú úroveň moci, akú máte vy.",
+ "Are you sure?": "Ste si istí?",
+ "No devices with registered encryption keys": "Žiadne zariadenia so zaregistrovanými šifrovacími kľúčmi",
+ "Devices": "Zariadenia",
+ "Unignore": "Prestať ignorovať",
+ "Ignore": "Ignorovať",
+ "Jump to read receipt": "Preskočiť na potvrdenie o prečítaní",
+ "Mention": "Zmieniť sa",
+ "Invite": "Pozvať",
+ "User Options": "Možnosti používateľa",
+ "Direct chats": "Priame konverzácie",
+ "Unmute": "Zrušiť umlčanie",
+ "Mute": "Umlčať",
+ "Revoke Moderator": "Odobrať stav moderátor",
+ "Make Moderator": "Udeliť stav moderátor",
+ "Admin Tools": "Nástroje správcu",
+ "Level:": "Úroveň:",
+ "and %(count)s others...|other": "a ďalších %(count)s...",
+ "and %(count)s others...|one": "a jeden ďalší...",
+ "Invited": "Pozvaní",
+ "Filter room members": "Filtrovať členov v miestnosti",
+ "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (moc %(powerLevelNumber)s)",
+ "Attachment": "Príloha",
+ "Upload Files": "Nahrať súbory",
+ "Are you sure you want to upload the following files?": "Ste si istí, že chcete nahrať nasledujúce súbory?",
+ "Encrypted room": "Šifrovaná miestnosť",
+ "Unencrypted room": "Nešifrovaná miestnosť",
+ "Hangup": "Zavesiť",
+ "Voice call": "Audio hovor",
+ "Video call": "Video hovor",
+ "Hide Apps": "Skriť aplikácie",
+ "Show Apps": "Zobraziť aplikácie",
+ "Upload file": "Nahrať súbor",
+ "Show Text Formatting Toolbar": "Zobraziť lištu formátovania textu",
+ "Send an encrypted message": "Odoslať šifrovanú správu",
+ "Send a message (unencrypted)": "Odoslať správu (nešifrovanú)",
+ "You do not have permission to post to this room": "Nemáte udelené právo posielať do tejto miestnosti",
+ "Turn Markdown on": "Povoliť Markdown",
+ "Turn Markdown off": "Zakázať Markdown",
+ "Hide Text Formatting Toolbar": "Skriť lištu formátovania textu",
+ "Server error": "Chyba servera",
+ "Server unavailable, overloaded, or something else went wrong.": "Server je nedostupný, preťažený, alebo sa pokazilo niečo iné.",
+ "Command error": "Chyba príkazu",
+ "bold": "tučné",
+ "italic": "kurzíva",
+ "strike": "preškrtnutie",
+ "underline": "podčiarknutie",
+ "code": "kód",
+ "quote": "citácia",
+ "bullet": "odrážky",
+ "numbullet": "číslované odrážky",
+ "Markdown is disabled": "Markdown je zakázaný",
+ "Markdown is enabled": "Markdown je povolený",
+ "Unpin Message": "Zrušiť pripnutie správy",
+ "Jump to message": "Preskočiť na správu",
+ "No pinned messages.": "Žiadne pripnuté správy.",
+ "Loading...": "Načítanie...",
+ "Pinned Messages": "Pripnuté správy",
+ "for %(amount)ss": "na %(amount)ss",
+ "for %(amount)sm": "na %(amount)sm",
+ "for %(amount)sh": "na %(amount)sh",
+ "for %(amount)sd": "na %(amount)sd",
+ "Online": "Prítomný",
+ "Idle": "Nečinný",
+ "Offline": "Nedostupný",
+ "Unknown": "Neznámy",
+ "Seen by %(userName)s at %(dateTime)s": "%(userName)s videl %(dateTime)s",
+ "Unnamed room": "Nepomenovaná miestnosť",
+ "World readable": "Viditeľné pre všetkých",
+ "Guests can join": "Aj hostia môžu vstúpiť",
+ "No rooms to show": "Žiadne miestnosti na zobrazenie",
+ "Failed to set avatar.": "Nepodarilo sa nastaviť avatara.",
+ "Save": "Uložiť",
+ "(~%(count)s results)|other": "(~%(count)s výsledkov)",
+ "(~%(count)s results)|one": "(~%(count)s výsledok)",
+ "Join Room": "Vstúpiť do miestnosti",
+ "Upload avatar": "Nahrať avatara",
+ "Remove avatar": "Odstrániť avatara",
+ "Settings": "Nastavenia",
+ "Forget room": "Zabudnúť miestnosť",
+ "Search": "Hľadať",
+ "Show panel": "Zobraziť panel",
+ "Drop here to favourite": "Pretiahnutím sem označíte ako obľúbené",
+ "Drop here to tag direct chat": "Pretiahnutím sem označíte ako priamu konverzáciu",
+ "Drop here to restore": "Pretiahnutím sem obnovíte z pozadia",
+ "Drop here to demote": "Pretiahnutím sem presuniete do pozadia",
+ "Drop here to tag %(section)s": "Pretiahnutím sem pridáte značku %(section)s",
+ "Press to start a chat with someone": "Stlačením tlačidla otvoríte diskusiu s kýmkoľvek",
+ "You're not in any rooms yet! Press to make a room or to browse the directory": "Zatiaľ ste nevstúpili do žiadnej miestnosti! Stlačením tlačidla môžete vytvoriť novú miestnosť alebo si po stlačení tlačidla môžete prezrieť adresár miestností",
+ "Community Invites": "Pozvánky do komunity",
+ "Invites": "Pozvánky",
+ "Favourites": "Obľúbené",
+ "People": "Ľudia",
+ "Rooms": "Miestnosti",
+ "Low priority": "Nízka priorita",
+ "Historical": "Historické",
+ "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Nie je možné si byť istý že toto pozvanie bola odoslaná na emailovú adresu priradenú k vašemu účtu.",
+ "This invitation was sent to an email address which is not associated with this account:": "Toto pozvanie bolo odoslané na emailovú adresu, ktorá nie je priradená k tomuto účtu:",
+ "You may wish to login with a different account, or add this email to this account.": "Môžete sa prihlásiť k inému účtu, alebo pridať emailovú adresu do práve prihláseného účtu.",
+ "You have been invited to join this room by %(inviterName)s": "Používateľ %(inviterName)s vás pozval vstúpiť do tejto miestnosti",
+ "Would you like to accept or decline this invitation?": "Chcete prijať alebo odmietnuť toto pozvanie?",
+ "Reason: %(reasonText)s": "Dôvod: %(reasonText)s",
+ "Rejoin": "Vstúpiť znovu",
+ "You have been kicked from %(roomName)s by %(userName)s.": "Používateľ %(userName)s vás vykopol z miestnosti %(roomName)s.",
+ "You have been kicked from this room by %(userName)s.": "Používateľ %(userName)s vás vykopol z tejto miestnosti.",
+ "You have been banned from %(roomName)s by %(userName)s.": "Používateľ %(userName)s vám zakázal vstúpiť do miestnosti %(roomName)s.",
+ "You have been banned from this room by %(userName)s.": "Používateľ %(userName)s vám zakázal vstúpiť do tejto miestnosti.",
+ "This room": "Táto miestnosť",
+ "%(roomName)s does not exist.": "%(roomName)s neexistuje.",
+ "%(roomName)s is not accessible at this time.": "%(roomName)s nie je momentálne prístupná.",
+ "You are trying to access %(roomName)s.": "Pristupujete k miestnosti %(roomName)s.",
+ "You are trying to access a room.": "Pristupujete k miestnosti.",
+ "Click here to join the discussion!": "Kliknutím sem vstúpite do diskusie!",
+ "This is a preview of this room. Room interactions have been disabled": "Toto je náhľad na miestnosť. Všetky akcie pre túto miestnosť sú zakázané",
+ "To change the room's avatar, you must be a": "Aby ste mohli meniť avatara miestnosti, musíte byť",
+ "To change the room's name, you must be a": "Aby ste mohli meniť názov miestnosti, musíte byť",
+ "To change the room's main address, you must be a": "Aby ste mohli meniť hlavnú adresu miestnosti, musíte byť",
+ "To change the room's history visibility, you must be a": "Aby ste mohli meniť viditeľnosť histórie miestnosti, musíte byť",
+ "To change the permissions in the room, you must be a": "Aby ste mohli meniť oprávnenia v miestnosti, musíte byť",
+ "To change the topic, you must be a": "Aby ste mohli meniť tému, musíte byť",
+ "To modify widgets in the room, you must be a": "Aby ste v miestnosti mohli meniť widgety, musíte byť",
+ "Failed to unban": "Nepodarilo sa povoliť vstup",
+ "Banned by %(displayName)s": "Vstup zakázal %(displayName)s",
+ "Privacy warning": "Upozornenie súkromia",
+ "Changes to who can read history will only apply to future messages in this room": "Zmeny určujúce kto môže čítať históriu sa uplatnia len na budúce správy v tejto miestnosti",
+ "The visibility of existing history will be unchanged": "Viditeľnosť existujúcej histórie ostane bez zmeny",
+ "unknown error code": "neznámy kód chyby",
+ "Failed to forget room %(errCode)s": "Nepodarilo sa zabudnúť miestnosť %(errCode)s",
+ "End-to-end encryption is in beta and may not be reliable": "E2E šifrovanie je v štádiu beta a nemusí byť úplne spoľahlivé",
+ "You should not yet trust it to secure data": "Nemali by ste zatiaľ spoliehať, že vám toto šifrovanie dokáže zabezpečiť vaše údaje",
+ "Devices will not yet be able to decrypt history from before they joined the room": "Zariadenia zatiaľ nedokážu dešifrovať správy poslané skôr, než ste na nich vstúpili do miestnosti",
+ "Once encryption is enabled for a room it cannot be turned off again (for now)": "Ak v miestnosti povolíte šifrovanie, šifrovanie nie je viac možné zakázať (aspoň zatiaľ nie)",
+ "Encrypted messages will not be visible on clients that do not yet implement encryption": "Šifrované správy nebudú vôbec zobrazené v klientoch, ktorí zatiaľ nepodporujú šifrovanie",
+ "Never send encrypted messages to unverified devices in this room from this device": "Z tohoto zariadenia nikdy v tejto miestnosti neposielať šifrované správy na neoverené zariadenia",
+ "Enable encryption": "Povoliť šifrovanie",
+ "(warning: cannot be disabled again!)": "(Pozor: Nie je viac možné zakázať!)",
+ "Encryption is enabled in this room": "V tejto miestnosti je povolené šifrovanie",
+ "Encryption is not enabled in this room": "V tejto miestnosti nie je povolené šifrovanie",
+ "Privileged Users": "Poverení používatelia",
+ "%(user)s is a": "%(user)s je",
+ "No users have specific privileges in this room": "Žiadny používatelia nemajú v tejto miestnosti pridelené konkrétne poverenia",
+ "Banned users": "Používatelia, ktorým bol zakázaný vstup",
+ "This room is not accessible by remote Matrix servers": "Táto miestnosť nie je prístupná cez vzdialené Matrix servery",
+ "Leave room": "Opustiť miestnosť",
+ "Favourite": "Obľúbená",
+ "Tagged as: ": "Označená ako: ",
+ "To link to a room it must have an address.": "Ak chcete vytvoriť odkaz do miestnosti, musíte najprv nastaviť jej adresu.",
+ "Guests cannot join this room even if explicitly invited.": "Hostia nemôžu vstúpiť do tejto miestnosti ani ak ich priamo pozvete.",
+ "Click here to fix": "Kliknutím sem to opravíte",
+ "Who can access this room?": "Kto môže vstúpiť do tejto miestnosti?",
+ "Only people who have been invited": "Len pozvaní ľudia",
+ "Anyone who knows the room's link, apart from guests": "Ktokoľvek, kto pozná odkaz do miestnosti (okrem hostí)",
+ "Anyone who knows the room's link, including guests": "Ktokoľvek, kto pozná odkaz do miestnosti (vrátane hostí)",
+ "Publish this room to the public in %(domain)s's room directory?": "Uverejniť túto miestnosť v adresáry miestností na servery %(domain)s?",
+ "Who can read history?": "Kto môže čítať históriu?",
+ "Anyone": "Ktokoľvek",
+ "Members only (since the point in time of selecting this option)": "Len členovia (odkedy je aktívna táto voľba)",
+ "Members only (since they were invited)": "Len členovia (odkedy boli pozvaní)",
+ "Members only (since they joined)": "Len členovia (odkedy vstúpili)",
+ "Room Colour": "Farba miestnosti",
+ "Permissions": "Oprávnenia",
+ "The default role for new room members is": "Predvolený status pre nových členov je",
+ "To send messages, you must be a": "Aby ste mohli posielať správy, musíte byť",
+ "To invite users into the room, you must be a": "Aby ste mohli pozývať používateľov do miestnosti, musíte byť",
+ "To configure the room, you must be a": "Aby ste mohli nastavovať miestnosť, musíte byť",
+ "To kick users, you must be a": "Aby ste mohli vykopávať používateľov, musíte byť",
+ "To ban users, you must be a": "Aby ste používateľom mohli zakazovať vstup, musíte byť",
+ "To remove other users' messages, you must be a": "Aby ste mohli odstraňovať správy, ktoré poslali iní používatelia, musíte byť",
+ "To send events of type , you must be a": "Aby ste mohli posielať udalosti typu , musíte byť",
+ "Advanced": "Pokročilé",
+ "This room's internal ID is": "Interné ID tejto miestnosti je",
+ "Add a topic": "Pridať tému",
+ "Cancel": "Zrušiť",
+ "Scroll to unread messages": "Posunúť na neprečítané správy",
+ "Jump to first unread message.": "Preskočiť na prvú neprečítanú správu.",
+ "Close": "Zatvoriť",
+ "Invalid alias format": "Nesprávny formát aliasu",
+ "'%(alias)s' is not a valid format for an alias": "'%(alias)s' nie je platný formát pre alias",
+ "Invalid address format": "Nesprávny formát adresy",
+ "'%(alias)s' is not a valid format for an address": "'%(alias)s' nie je platný formát adresy",
+ "not specified": "nezadané",
+ "not set": "nenastavené",
+ "Remote addresses for this room:": "Vzdialené adresy do tejto miestnosti:",
+ "The main address for this room is": "Hlavná adresa tejto miestnosti je",
+ "Local addresses for this room:": "Lokálne adresy do tejto miestnosti:",
+ "This room has no local addresses": "Pre túto miestnosť nie sú žiadne lokálne adresy",
+ "New address (e.g. #foo:%(localDomain)s)": "Nová adresa (napr. #foo:%(localDomain)s)",
+ "Invalid community ID": "Nesprávne ID komunity",
+ "'%(groupId)s' is not a valid community ID": "'%(groupId)s' nie je platným ID komunity",
+ "Related Communities": "Súvisiace komunity",
+ "Related communities for this room:": "Komunity spojené s touto miestnosťou:",
+ "This room has no related communities": "Pre túto miestnosť nie sú žiadne súvisiace komunity",
+ "New community ID (e.g. +foo:%(localDomain)s)": "Nové ID komunity (napr. +foo:%(localDomain)s)",
+ "Disable URL previews by default for participants in this room": "Predvolene zakázať náhľady URL adries pre členov tejto miestnosti",
+ "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "Náhľady URL adries sú predvolene %(globalDisableUrlPreview)s pre členov tejto miestnosti.",
+ "disabled": "zakázané",
+ "enabled": "povolené",
+ "You have disabled URL previews by default.": "Predvolene máte zakázané náhľady URL adries.",
+ "You have enabled URL previews by default.": "Predvolene máte povolené náhľady URL adries.",
+ "URL Previews": "Náhľady URL adries",
+ "Enable URL previews for this room (affects only you)": "Povoliť náhľady URL adries pre túto miestnosť (ovplyvňuje len vás)",
+ "Disable URL previews for this room (affects only you)": "Zakázať náhľady URL adries pre túto miestnosť (ovplyvňuje len vás)",
+ "Error decrypting audio": "Chyba pri dešifrovaní zvuku",
+ "Error decrypting attachment": "Chyba pri dešifrovaní prílohy",
+ "Decrypt %(text)s": "Dešifrovať %(text)s",
+ "Download %(text)s": "Stiahnuť %(text)s",
+ "Invalid file%(extra)s": "Neplatný súbor%(extra)s",
+ "Error decrypting image": "Chyba pri dešifrovaní obrázka",
+ "Image '%(Body)s' cannot be displayed.": "Nie je možné zobraziť obrázok '%(Body)s'.",
+ "This image cannot be displayed.": "Tento obrázok nie je možné zobraziť.",
+ "Error decrypting video": "Chyba pri dešifrovaní videa",
+ "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s zmenil avatara pre %(roomName)s",
+ "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s z miestnosti odstránil avatara.",
+ "%(senderDisplayName)s changed the room avatar to
": "%(senderDisplayName)s zmenil avatara miestnosti na
",
+ "Copied!": "Skopírované!",
+ "Failed to copy": "Nepodarilo sa skopírovať",
+ "Add an Integration": "Pridať integráciu",
+ "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?": "Budete presmerovaní na stránku tretej strany, aby ste mohli overiť svoj účet na použitie s %(integrationsUrl)s. Chcete pokračovať?",
+ "Removed or unknown message type": "Odstránený alebo neznámy typ udalosti",
+ "Message removed by %(userId)s": "Správu odstránil %(userId)s",
+ "Message removed": "správa odstránená",
+ "Robot check is currently unavailable on desktop - please use a web browser": "Overenie, že nieste robot nie je možné cez aplikáciu na pracovnej ploche - prosím prejdite do prehliadača webu",
+ "This Home Server would like to make sure you are not a robot": "Tento domovský server by sa rád uistil, že nieste robot",
+ "Sign in with CAS": "Prihlásiť sa s použitím CAS",
+ "Custom Server Options": "Vlastné možnosti servera",
+ "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Vlastné nastavenia servera môžete použiť na pripojenie k iným serverom Matrix a to zadaním URL adresy domovského servera.",
+ "This allows you to use this app with an existing Matrix account on a different home server.": "Umožní vám to použiť túto aplikáciu s už existujúcim Matrix účtom na akomkoľvek domovskom servery.",
+ "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Môžete tiež zadať vlastnú adresu servera totožností, čo však za štandardných okolností znemožní interakcie medzi používateľmi založené emailovou adresou.",
+ "Dismiss": "Zamietnuť",
+ "To continue, please enter your password.": "Aby ste mohli pokračovať, prosím zadajte svoje heslo.",
+ "Password:": "Heslo:",
+ "An email has been sent to %(emailAddress)s": "Na adresu %(emailAddress)s bola odoslaná správa",
+ "Please check your email to continue registration.": "Prosím, skontrolujte si emaily, aby ste mohli pokračovať v registrácii.",
+ "Token incorrect": "Nesprávny token",
+ "A text message has been sent to %(msisdn)s": "Na číslo %(msisdn)s bola odoslaná textová správa",
+ "Please enter the code it contains:": "Prosím, zadajte kód z tejto správy:",
+ "Start authentication": "Spustiť overenie",
+ "powered by Matrix": "Poháňa Matrix",
+ "User name": "Meno používateľa",
+ "Mobile phone number": "Číslo mobilného telefónu",
+ "Forgot your password?": "Zabudli ste heslo?",
+ "%(serverName)s Matrix ID": "Matrix ID na servery %(serverName)s",
+ "Sign in with": "Na prihlásenie sa použije",
+ "Email address": "Emailová adresa",
+ "Sign in": "Prihlásiť sa",
+ "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Ak nezadáte vašu emailovú adresu, nebudete si môcť obnoviť heslo. Ste si istí?",
+ "Email address (optional)": "Emailová adresa (nepovinné)",
+ "You are registering with %(SelectedTeamName)s": "Registrujete sa s %(SelectedTeamName)s",
+ "Mobile phone number (optional)": "Číslo mobilného telefónu (nepovinné)",
+ "Register": "Zaregistrovať",
+ "Default server": "Predvolený server",
+ "Custom server": "Vlastný server",
+ "Home server URL": "Adresa domovského servera",
+ "Identity server URL": "Adresa servera totožností",
+ "What does this mean?": "Čo je toto?",
+ "Remove from community": "Odstrániť z komunity",
+ "Disinvite this user from community?": "Zrušiť pozvanie tohoto používateľa z komunity?",
+ "Remove this user from community?": "Odstrániť tohoto používateľa z komunity?",
+ "Failed to withdraw invitation": "Nepodarilo sa stiahnuť pozvanie",
+ "Failed to remove user from community": "Nepodarilo sa odstrániť používateľa z komunity",
+ "Filter community members": "Filtrovať členov komunity",
+ "Are you sure you want to remove '%(roomName)s' from %(groupId)s?": "Ste si istí, že chcete odstrániť miestnosť '%(roomName)s' z komunity %(groupId)s?",
+ "Removing a room from the community will also remove it from the community page.": "Keď odstránite miestnosť z komunity, odstráni sa aj odkaz do miestnosti zo stránky komunity.",
+ "Remove": "Odstrániť",
+ "Failed to remove room from community": "Nepodarilo sa odstrániť miestnosť z komunity",
+ "Failed to remove '%(roomName)s' from %(groupId)s": "Nepodarilo sa odstrániť miestnosť '%(roomName)s' z komunity %(groupId)s",
+ "Something went wrong!": "Niečo sa pokazilo!",
+ "The visibility of '%(roomName)s' in %(groupId)s could not be updated.": "Nie je možné aktualizovať viditeľnosť miestnosti '%(roomName)s' v komunite %(groupId)s.",
+ "Visibility in Room List": "Viditeľnosť v zozname miestností",
+ "Visible to everyone": "Viditeľná pre všetkých",
+ "Only visible to community members": "Viditeľná len pre členov komunity",
+ "Filter community rooms": "Filtrovať miestnosti v komunite",
+ "Unknown Address": "Neznáma adresa",
+ "NOTE: Apps are not end-to-end encrypted": "POZOR: Aplikácie nie sú šifrované",
+ "Do you want to load widget from URL:": "Chcete načítať widget z URL adresy:",
+ "Allow": "Povoliť",
+ "Delete Widget": "Vymazať widget",
+ "Deleting a widget removes it for all users in this room. Are you sure you want to delete this widget?": "Týmto vymažete widget pre všetkých používateľov v tejto miestnosti. Ste si istí, že chcete vymazať tento widget?",
+ "Delete widget": "Vymazať widget",
+ "Revoke widget access": "Odmietnuť prístup k widgetu",
+ "Edit": "Upraviť",
+ "Create new room": "Vytvoriť novú miestnosť",
+ "Unblacklist": "Odstrániť z čiernej listiny",
+ "Blacklist": "Pridať na čiernu listinu",
+ "Unverify": "Zrušiť overenie",
+ "Verify...": "Overiť...",
+ "No results": "Žiadne výsledky",
+ "Home": "Domov",
+ "Integrations Error": "Chyba integrácií",
+ "Could not connect to the integration server": "Nie je možné sa pripojiť k integračnému serveru",
+ "Manage Integrations": "Spravovať integrácie",
+ "%(nameList)s %(transitionList)s": "%(nameList)s %(transitionList)s",
+ "%(severalUsers)sjoined %(count)s times|other": "%(severalUsers)s%(count)s krát vstúpili",
+ "%(severalUsers)sjoined %(count)s times|one": "%(severalUsers)svstúpili",
+ "%(oneUser)sjoined %(count)s times|other": "%(oneUser)s%(count)s krát vstúpil",
+ "%(oneUser)sjoined %(count)s times|one": "%(oneUser)svstúpil",
+ "%(severalUsers)sleft %(count)s times|other": "%(severalUsers)s%(count)s krát opustili",
+ "%(severalUsers)sleft %(count)s times|one": "%(severalUsers)sopustili",
+ "%(oneUser)sleft %(count)s times|other": "%(oneUser)s%(count)s krát opustil",
+ "%(oneUser)sleft %(count)s times|one": "%(oneUser)sopustil",
+ "%(severalUsers)sjoined and left %(count)s times|other": "%(severalUsers)s%(count)s krát vstúpili a opustili",
+ "%(severalUsers)sjoined and left %(count)s times|one": "%(severalUsers)svstúpili a opustili",
+ "%(oneUser)sjoined and left %(count)s times|other": "%(oneUser)s%(count)s krát vstúpil a opustil",
+ "%(oneUser)sjoined and left %(count)s times|one": "%(oneUser)svstúpil a opustil",
+ "%(severalUsers)sleft and rejoined %(count)s times|other": "%(severalUsers)s%(count)s krát opustili a znovu vstúpili",
+ "%(severalUsers)sleft and rejoined %(count)s times|one": "%(severalUsers)sopustili a znovu vstúpili",
+ "%(oneUser)sleft and rejoined %(count)s times|other": "%(oneUser)s%(count)s krát opustil a znovu vstúpil",
+ "%(oneUser)sleft and rejoined %(count)s times|one": "%(oneUser)sopustil a znovu vstúpil",
+ "%(severalUsers)srejected their invitations %(count)s times|other": "%(severalUsers)s%(count)s krát odmietli pozvanie",
+ "%(severalUsers)srejected their invitations %(count)s times|one": "%(severalUsers)sodmietly pozvanie",
+ "%(oneUser)srejected their invitation %(count)s times|other": "%(oneUser)s%(count)s krát odmietol pozvanie",
+ "%(oneUser)srejected their invitation %(count)s times|one": "%(oneUser)sodmietol pozvanie",
+ "%(severalUsers)shad their invitations withdrawn %(count)s times|other": "%(severalUsers)smali %(count)s krát stiahnuté pozvanie",
+ "%(severalUsers)shad their invitations withdrawn %(count)s times|one": "%(severalUsers)smali stiahnuté pozvanie",
+ "%(oneUser)shad their invitation withdrawn %(count)s times|other": "%(oneUser)smal %(count)s krát stiahnuté pozvanie",
+ "%(oneUser)shad their invitation withdrawn %(count)s times|one": "%(oneUser)smal stiahnuté pozvanie",
+ "were invited %(count)s times|other": "boli %(count)s krát pozvaní",
+ "were invited %(count)s times|one": "boli pozvaní",
+ "was invited %(count)s times|other": "bol %(count)s krát pozvaný",
+ "was invited %(count)s times|one": "bol pozvaný",
+ "were banned %(count)s times|other": "mali %(count)s krát zakázaný vstup",
+ "were banned %(count)s times|one": "mali zakázaný vstup",
+ "was banned %(count)s times|other": "mal %(count)s krát zakázaný vstup",
+ "was banned %(count)s times|one": "mal zakázaný vstup",
+ "were unbanned %(count)s times|other": "mali %(count)s krát povolený vstup",
+ "were unbanned %(count)s times|one": "mali povolený vstup",
+ "was unbanned %(count)s times|other": "mal %(count)s krát povolený vstup",
+ "was unbanned %(count)s times|one": "mal povolený vstup",
+ "were kicked %(count)s times|other": "boli %(count)s krát vykopnutí",
+ "were kicked %(count)s times|one": "boli vykopnutí",
+ "was kicked %(count)s times|other": "bol %(count)s krát vykopnutý",
+ "was kicked %(count)s times|one": "bol vykopnutý",
+ "%(severalUsers)schanged their name %(count)s times|other": "%(severalUsers)ssi %(count)s krát zmenili meno",
+ "%(severalUsers)schanged their name %(count)s times|one": "%(severalUsers)ssi zmenili meno",
+ "%(oneUser)schanged their name %(count)s times|other": "%(oneUser)ssi %(count)s krát zmenil meno",
+ "%(oneUser)schanged their name %(count)s times|one": "%(oneUser)ssi zmenil meno",
+ "%(severalUsers)schanged their avatar %(count)s times|other": "%(severalUsers)ssi %(count)s krát zmenili avatara",
+ "%(severalUsers)schanged their avatar %(count)s times|one": "%(severalUsers)ssi zmenili avatara",
+ "%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)ssi %(count)s krát zmenil avatara",
+ "%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)ssi zmenil avatara",
+ "%(items)s and %(count)s others|other": "%(items)s a %(count)s ďalší",
+ "%(items)s and %(count)s others|one": "%(items)s a jeden ďalší",
+ "%(items)s and %(lastItem)s": "%(items)s a tiež %(lastItem)s",
+ "Custom level": "Vlastná úroveň",
+ "Room directory": "Adresár miestností",
+ "Start chat": "Začať konverzáciu",
+ "And %(count)s more...|other": "A %(count)s ďalších...",
+ "ex. @bob:example.com": "pr. @jan:priklad.sk",
+ "Add User": "Pridať používateľa",
+ "Matrix ID": "Matrix ID",
+ "Matrix Room ID": "ID Matrix miestnosti",
+ "email address": "emailová adresa",
+ "Try using one of the following valid address types: %(validTypesList)s.": "Skúste použiť niektorý z nasledujúcich správnych typov adresy: %(validTypesList)s.",
+ "You have entered an invalid address.": "Zadali ste neplatnú adresu.",
+ "Create a new chat or reuse an existing one": "Vytvorte novú konverzáciu alebo sa pripojte už k existujúcej",
+ "Start new chat": "Začať novú konverzáciu",
+ "You already have existing direct chats with this user:": "S týmto používateľom už máte spoločné priame konverzácie:",
+ "Start chatting": "Začať konverzovať",
+ "Click on the button below to start chatting!": "Konverzovať môžete začať kliknutím na tlačidlo nižšie!",
+ "Start Chatting": "Začať konverzovať",
+ "Confirm Removal": "Potvrdiť odstránenie",
+ "Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Ste si istí, že chcete odstrániť (vymazať) túto udalosť? Všimnite si: ak vymažete zmenu názvu miestnosti alebo zmenu témy, môžete tak vrátiť zodpovedajúcu zmenu.",
+ "Community IDs may only contain characters a-z, 0-9, or '=_-./'": "ID komunity môže obsahovať len znaky a-z, 0-9, alebo '=_-./'",
+ "Something went wrong whilst creating your community": "Niečo sa pokazilo počas vytvárania požadovanej komunity",
+ "Create Community": "Vytvoriť komunitu",
+ "Community Name": "Názov komunity",
+ "Example": "Príklad",
+ "Community ID": "ID komunity",
+ "example": "príklad",
+ "Create": "Vytvoriť",
+ "Create Room": "Vytvoriť miestnosť",
+ "Room name (optional)": "Názov miestnosti (nepovinné)",
+ "Advanced options": "Pokročilé voľby",
+ "Block users on other matrix homeservers from joining this room": "Blokovať vstup do tejto miestnosti používateľom z ostatných domovských serverov Matrix",
+ "This setting cannot be changed later!": "Toto nastavenie už viac nie je možné meniť!",
+ "Unknown error": "Neznáma chyba",
+ "Incorrect password": "Nesprávne heslo",
+ "Deactivate Account": "Deaktivovať účet",
+ "This will make your account permanently unusable. You will not be able to re-register the same user ID.": "Toto spôsobí, že váš účet nebude viac použiteľný. Tak tiež si nebudete môcť znovu zaregistrovať rovnaké používateľské ID.",
+ "This action is irreversible.": "Túto akciu nie je možné vrátiť späť.",
+ "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:": "Ak chcete overiť, či toto zariadenie je skutočne dôverihodné, kontaktujte jeho vlastníka iným spôsobom (napr. osobne alebo cez telefón) a opýtajte sa ho, či kľúč, ktorý má pre toto zariadenie zobrazený v nastaveniach sa zhoduje s kľúčom zobrazeným nižšie:",
+ "Device name": "Názov zariadenia",
+ "Device key": "Kľúč zariadenia",
+ "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Ak sa kľúče zhodujú, stlačte tlačidlo Overiť nižšie. Ak sa nezhodujú, niekto ďalší odpočúva toto zariadenie a v takomto prípade by ste asi mali namiesto toho stlačiť tlačidlo Pridať na čiernu listinu.",
+ "In future this verification process will be more sophisticated.": "V budúcnosti plánujeme tento proces overovania zariadení zjednodušiť.",
+ "Verify device": "Overiť zariadenie",
+ "I verify that the keys match": "Overil som, kľúče sa zhodujú",
+ "An error has occurred.": "Vyskytla sa chyba.",
+ "OK": "OK",
+ "You added a new device '%(displayName)s', which is requesting encryption keys.": "Pridali ste nové zariadenie nazvané '%(displayName)s', ktoré žiada o šifrovacie kľúče.",
+ "Your unverified device '%(displayName)s' is requesting encryption keys.": "Vaše neoverené zariadenie nazvané '%(displayName)s' žiada o šifrovacie kľúče.",
+ "Start verification": "Spustiť overenie",
+ "Share without verifying": "Zdieľať bez overenia",
+ "Ignore request": "Ignorovať žiadosť",
+ "Loading device info...": "Načítanie informácií o zariadení...",
+ "Encryption key request": "Žiadosť o šifrovacie kľúče",
+ "Otherwise, click here to send a bug report.": "inak kliknutím sem nahláste chybu.",
+ "Unable to restore session": "Nie je možné obnoviť reláciu",
+ "We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Pri pokuse o obnovenie vašej predchádzajúcej relácie sa vyskytla chyba. Ak budete pokračovať, musíte sa znovu prihlásiť, a história šifrovaných konverzácii nebude viac čitateľná.",
+ "If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Ak ste sa v minulosti prihlásili s novšou verziou programu Riot, vaša relácia nemusí byť kompatibilná s touto verziou. Zatvorte prosím toto okno a vráťte sa cez najnovšiu verziu Riot.",
+ "Continue anyway": "Napriek tomu pokračovať",
+ "Invalid Email Address": "Nesprávna emailová adresa",
+ "This doesn't appear to be a valid email address": "Zdá sa, že toto nie je platná emailová adresa",
+ "Verification Pending": "Nedokončené overenie",
+ "Please check your email and click on the link it contains. Once this is done, click continue.": "Prosím, skontrolujte si email a kliknite na odkaz v správe, ktorú sme vám poslali. Keď budete mať toto za sebou, kliknite na tlačidlo Pokračovať.",
+ "Unable to add email address": "Nie je možné pridať emailovú adresu",
+ "Unable to verify email address.": "Nie je možné overiť emailovú adresu.",
+ "This will allow you to reset your password and receive notifications.": "Toto vám umožní obnoviť si heslo a prijímať oznámenia emailom.",
+ "Skip": "Preskočiť",
+ "User names may only contain letters, numbers, dots, hyphens and underscores.": "Používateľské meno môže obsahovať len písmená, číslice, bodky, pomlčky a podčiarkovníky.",
+ "Username not available": "Používateľské meno nie je k dispozícii",
+ "Username invalid: %(errMessage)s": "Neplatné používateľské meno: %(errMessage)s",
+ "An error occurred: %(error_string)s": "Vyskytla sa chyba: %(error_string)s",
+ "Username available": "Používateľské meno je k dispozícii",
+ "To get started, please pick a username!": "Začnite tým, že si zvolíte používateľské meno!",
+ "This will be your account name on the homeserver, or you can pick a different server.": "Toto bude názov vašeho účtu na domovskom servery , alebo si môžete zvoliť iný server.",
+ "If you already have a Matrix account you can log in instead.": "Ak už máte Matrix účet, môžete sa hneď Prihlásiť.",
+ "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Momentálne sa ku všetkym neovereným zariadeniam správate ako by boli na čiernej listine; aby ste na tieto zariadenia mohli posielať správy, mali by ste ich overiť.",
+ "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.": "Odporúčame vám prejsť procesom overenia pre všetky tieto zariadenia aby ste si potvrdili, že skutočne patria ich pravým vlastníkom, ak si to však želáte, môžete tiež znovu poslať správu bez overovania.",
+ "Room contains unknown devices": "V miestnosti sú neznáme zariadenia",
+ "\"%(RoomName)s\" contains devices that you haven't seen before.": "V miestnosti \"%(RoomName)s\" sa našli zariadenia, s ktorými ste doposiaľ nikdy nekomunikovali.",
+ "Unknown devices": "Neznáme zariadenia",
+ "Send anyway": "Napriek tomu odoslať",
+ "Private Chat": "Súkromná konverzácia",
+ "Public Chat": "Verejná konverzácia",
+ "Custom": "Vlastné",
+ "Alias (optional)": "Alias (nepovinné)",
+ "Name": "Názov",
+ "Topic": "Téma",
+ "Make this room private": "Urobiť z tejto miestnosti súkromnú miestnosť",
+ "Share message history with new users": "Zdieľať históriu s novými používateľmi",
+ "Encrypt room": "Zašifrovať miestnosť",
+ "You must register to use this functionality": "Aby ste mohli použiť túto vlastnosť, musíte byť zaregistrovaný",
+ "You must join the room to see its files": "Aby ste si mohli zobraziť zoznam súborov, musíte vstúpiť do miestnosti",
+ "There are no visible files in this room": "V tejto miestnosti nie sú žiadne viditeľné súbory",
+ "HTML for your community's page
\n\n Use the long description to introduce new members to the community, or distribute\n some important links\n
\n\n You can even use 'img' tags\n
\n": "HTML kód hlavnej stránky komunity
\n\n Dlhý popis môžete použiť na predstavenie komunity novým členom, alebo uvedenie \n dôležitých odkazov\n
\n\n Môžete tiež používať HTML značku 'img'\n
\n",
+ "Add rooms to the community summary": "Pridať miestnosti do prehľadu komunity",
+ "Which rooms would you like to add to this summary?": "Ktoré miestnosti si želáte pridať do tohoto prehľadu?",
+ "Add to summary": "Pridať do prehľadu",
+ "Failed to add the following rooms to the summary of %(groupId)s:": "Do prehľadu komunity %(groupId)s sa nepodarilo pridať nasledujúce miestnosti:",
+ "Add a Room": "Pridať miestnosť",
+ "Failed to remove the room from the summary of %(groupId)s": "Z prehľadu komunity %(groupId)s sa nepodarilo odstrániť miestnosť",
+ "The room '%(roomName)s' could not be removed from the summary.": "Nie je možné odstrániť miestnosť '%(roomName)s' z prehľadu.",
+ "Add users to the community summary": "Pridať používateľov do prehľadu komunity",
+ "Who would you like to add to this summary?": "Koho si želáte pridať do tohoto prehľadu?",
+ "Failed to add the following users to the summary of %(groupId)s:": "Do prehľadu komunity %(groupId)s sa nepodarilo pridať nasledujúcich používateľov:",
+ "Add a User": "Pridať používateľa",
+ "Failed to remove a user from the summary of %(groupId)s": "Z prehľadu komunity %(groupId)s sa nepodarilo odstrániť používateľa",
+ "The user '%(displayName)s' could not be removed from the summary.": "Nie je možné odstrániť používateľa '%(displayName)s' z prehľadu.",
+ "Failed to upload image": "Nepodarilo sa nahrať obrázok",
+ "Failed to update community": "Nepodarilo sa aktualizovať komunitu",
+ "Unable to accept invite": "Nie je možné prijať pozvanie",
+ "Unable to reject invite": "Nie je možné odmietnuť pozvanie",
+ "Leave Community": "Opustiť komunitu",
+ "Leave %(groupName)s?": "Opustiť komunitu %(groupName)s?",
+ "Leave": "Opustiť",
+ "Unable to leave room": "Nie je možné opustiť miestnosť",
+ "Community Settings": "Nastavenia komunity",
+ "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "Tieto miestnosti sú zobrazené všetkým členom na stránke komunity. Členovia komunity môžu vstúpiť do miestnosti kliknutím.",
+ "Add rooms to this community": "Pridať miestnosti do tejto komunity",
+ "Featured Rooms:": "Hlavné miestnosti:",
+ "Featured Users:": "Významní používatelia:",
+ "%(inviter)s has invited you to join this community": "%(inviter)s vás pozval vstúpiť do tejto komunity",
+ "You are an administrator of this community": "Ste správcom tejto komunity",
+ "You are a member of this community": "Ste členom tejto komunity",
+ "Community Member Settings": "Nastavenia členstva v komunite",
+ "Publish this community on your profile": "Uverejniť túto komunitu vo vašom profile",
+ "Your community hasn't got a Long Description, a HTML page to show to community members.
Click here to open settings and give it one!": "Vaša komunita nemá vyplnený dlhý popis, ktorý tvorí stránku komunity viditeľnú jej členom.
Kliknutím sem otvoríte nastavenia, kde ho môžete vyplniť!",
+ "Long Description (HTML)": "Dlhý popis (HTML)",
+ "Description": "Popis",
+ "Community %(groupId)s not found": "Komunita %(groupId)s nebola nájdená",
+ "This Home server does not support communities": "Tento domovský server nepodporuje komunity",
+ "Failed to load %(groupId)s": "Nepodarilo sa načítať komunitu %(groupId)s",
+ "Reject invitation": "Odmietnuť pozvanie",
+ "Are you sure you want to reject the invitation?": "Ste si istí, že chcete odmietnuť toto pozvanie?",
+ "Failed to reject invitation": "Nepodarilo sa odmietnuť pozvanie",
+ "Are you sure you want to leave the room '%(roomName)s'?": "Ste si istí, že chcete opustiť miestnosť '%(roomName)s'?",
+ "Failed to leave room": "Nepodarilo sa opustiť miestnosť",
+ "Signed Out": "Ste odhlásení",
+ "For security, this session has been signed out. Please sign in again.": "Kôli bezpečnosti ste boli odhlásení z tejto relácie. Prosím, prihláste sa znovu.",
+ "Logout": "Odhlásiť sa",
+ "Your Communities": "Vaše komunity",
+ "You're not currently a member of any communities.": "V súčasnosti nie ste členom žiadnej komunity.",
+ "Error whilst fetching joined communities": "Pri získavaní vašich komunít sa vyskytla chyba",
+ "Create a new community": "Vytvoriť novú komunitu",
+ "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Vytvorte si komunitu s cieľom zoskupiť miestnosti a používateľov! Zostavte si vlastnú domovskú stránku a vymedzte tak svoj priestor vo svete Matrix.",
+ "Join an existing community": "Vstúpiť do existujúcej komunity",
+ "To join an existing community you'll have to know its community identifier; this will look something like +example:matrix.org.": "Aby ste mohli vstúpiť do existujúcej komunity, musíte poznať jej identifikátor; Mal by vizerať nejako takto +priklad:matrix.org.",
+ "You have no visible notifications": "Nie sú k dispozícii žiadne oznámenia",
+ "Scroll to bottom of page": "Posunúť na spodok stránky",
+ "Connectivity to the server has been lost.": "Spojenie so serverom bolo prerušené.",
+ "Sent messages will be stored until your connection has returned.": "Odoslané správy ostanú uložené, kým sa spojenie nenadviaže znovu.",
+ "Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Znovu odoslať všetky alebo zrušiť všetky teraz. Môžete tiež znovu poslať alebo zrušiť odosielanie jednotlivých správ zvlášť.",
+ "%(count)s new messages|other": "%(count)s nových správ",
+ "%(count)s new messages|one": "%(count)s nová správa",
+ "Active call": "Aktívny hovor",
+ "There's no one else here! Would you like to invite others or stop warning about the empty room?": "Okrem vás v tejto miestnosti nie je nik iný! Želáte si pozvať ďalších alebo prestať upozorňovať na prázdnu miestnosť?",
+ "You seem to be uploading files, are you sure you want to quit?": "Zdá sa, že práve nahrávate súbory, ste si istí, že chcete skončiť?",
+ "You seem to be in a call, are you sure you want to quit?": "Zdá sa, že máte prebiehajúci hovor, ste si istí, že chcete skončiť?",
+ "Some of your messages have not been sent.": "Niektoré vaše správy ešte neboli odoslané.",
+ "Message not sent due to unknown devices being present": "Neodoslaná správa kvôli nájdeným neznámym zariadeniam",
+ "Failed to upload file": "Nepodarilo sa nahrať súbor",
+ "Server may be unavailable, overloaded, or the file too big": "Server môže byť nedostupný, preťažený, alebo je súbor príliš veľký",
+ "Search failed": "Hľadanie zlyhalo",
+ "Server may be unavailable, overloaded, or search timed out :(": "Server môže byť nedostupný, preťažený, alebo vypršal časový limit hľadania :(",
+ "No more results": "Žiadne ďalšie výsledky",
+ "Unknown room %(roomId)s": "Neznáma miestnosť %(roomId)s",
+ "Room": "Miestnosť",
+ "Failed to save settings": "Nepodarilo sa uložiť nastavenia",
+ "Failed to reject invite": "Nepodarilo sa odmietnuť pozvanie",
+ "Fill screen": "Vyplniť obrazovku",
+ "Click to unmute video": "Kliknutím zrušíte stlmenie videa",
+ "Click to mute video": "Kliknutím stlmíte video",
+ "Click to unmute audio": "Kliknutím zrušíte stlmenie zvuku",
+ "Click to mute audio": "Kliknutím stlmíte zvuk",
+ "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Pri pokuse načítať konkrétny bod v histórii tejto miestnosti sa vyskytla chyba, nemáte oprávnenie na zobrazenie zodpovedajúcej správy.",
+ "Tried to load a specific point in this room's timeline, but was unable to find it.": "Pri pokuse načítať konkrétny bod v histórii tejto miestnosti sa vyskytla chyba, Správu nie je možné nájsť.",
+ "Failed to load timeline position": "Nepodarilo sa načítať pozíciu na časovej osi",
+ "Uploading %(filename)s and %(count)s others|other": "Nahrávanie %(filename)s a %(count)s ďalších súborov",
+ "Uploading %(filename)s and %(count)s others|zero": "Nahrávanie %(filename)s",
+ "Uploading %(filename)s and %(count)s others|one": "Nahrávanie %(filename)s a %(count)s ďalší súbor",
+ "Autoplay GIFs and videos": "Automaticky prehrávať animované GIF obrázky a videá",
+ "Hide read receipts": "Skriť potvrdenia o prečítaní",
+ "Don't send typing notifications": "Neposielať oznámenia keď píšete",
+ "Always show message timestamps": "Vždy zobrazovať časovú značku správ",
+ "Show timestamps in 12 hour format (e.g. 2:30pm)": "Pri zobrazovaní časových značiek používať 12 hodinový formát (napr. 2:30pm)",
+ "Hide join/leave messages (invites/kicks/bans unaffected)": "Skriť správy o vstupe a opustení miestnosti (netýka sa pozvaní/vykopnutí/zákazov vstupu)",
+ "Hide avatar and display name changes": "Skriť zmeny zobrazovaného mena a avatara",
+ "Use compact timeline layout": "Použiť kompaktné rozloženie časovej osy",
+ "Hide removed messages": "Skriť odstránené správy",
+ "Enable automatic language detection for syntax highlighting": "Povoliť automatickú detegciu jazyka pre zvýrazňovanie syntaxe",
+ "Automatically replace plain text Emoji": "Automaticky nahrádzať textové Emoji",
+ "Disable Emoji suggestions while typing": "Zakázať návrhy Emoji počas písania",
+ "Hide avatars in user and room mentions": "Skriť avatarov pri zmienkach miestností a používateľov",
+ "Disable big emoji in chat": "Zakázať veľké Emoji v konverzácii",
+ "Mirror local video feed": "Zrkadliť lokálne video",
+ "Opt out of analytics": "Odhlásiť sa zo zberu analytických údajov",
+ "Disable Peer-to-Peer for 1:1 calls": "Zakázať P2P počas priamych volaní",
+ "Never send encrypted messages to unverified devices from this device": "Z tohoto zariadenia nikdy neposielať šifrované správy neovereným zariadeniam",
+ "Light theme": "Svetlá téma",
+ "Dark theme": "Tmavá téma",
+ "Can't load user settings": "Nie je možné načítať používateľské nastavenia",
+ "Server may be unavailable or overloaded": "Server môže byť nedostupný alebo preťažený",
+ "Sign out": "Odhlásiť sa",
+ "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.": "S cieľom posilniť bezpečnosť sa všetky E2E šifrovacie kľúče pri odhlásení odstránia z tohoto prehliadača. Ak chcete, aby ste mohli čítať históriu šifrovaných konverzácií aj po opätovnom prihlásení, prosím exportujte a bezpečne si uchovajte kľúče miestností.",
+ "Failed to change password. Is your password correct?": "Nepodarilo sa zmeniť heslo. Zadali ste správne heslo?",
+ "Success": "Úspech",
+ "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Úspešne ste si zmenili heslo. Na ostatných zariadeniach sa vám nebudú zobrazovať okamžité oznámenia, kým sa aj na nich opätovne neprihlásite",
+ "Remove Contact Information?": "Odstrániť kontaktné informácie?",
+ "Remove %(threePid)s?": "Odstrániť %(threePid)s?",
+ "Unable to remove contact information": "Nie je možné odstrániť kontaktné informácie",
+ "Refer a friend to Riot:": "Odporučte Riot známemu:",
+ "Interface Language": "Jazyk rozhrania",
+ "User Interface": "Používateľské rozhranie",
+ "Autocomplete Delay (ms):": "Oneskorenie automatického dokončovania (ms):",
+ "Disable inline URL previews by default": "Predvolene zakázať náhľady URL adries",
+ "": "",
+ "Import E2E room keys": "Importovať E2E kľúče miestností",
+ "Cryptography": "Kryptografia",
+ "Device ID:": "ID zariadenia:",
+ "Device key:": "Kľúč zariadenia:",
+ "Ignored Users": "Ignorovaní používatelia",
+ "Bug Report": "Hlásenie chyby",
+ "Found a bug?": "Našli ste chybu?",
+ "Report it": "Ohláste ju",
+ "Analytics": "Analytické údaje",
+ "Riot collects anonymous analytics to allow us to improve the application.": "Riot zbiera anonymné analytické údaje, čo nám umožňuje aplikáciu ďalej zlepšovať.",
+ "Labs": "Experimenty",
+ "These are experimental features that may break in unexpected ways": "Tieto funkcie sú experimentálne a môžu sa nečakane pokaziť",
+ "Use with caution": "Pri používaní buďte opatrní",
+ "Deactivate my account": "Deaktivovať môj účet",
+ "Clear Cache": "Vyprázdniť vyrovnávaciu pamäť",
+ "Clear Cache and Reload": "Vyprázdniť vyrovnávaciu pamäť a načítať znovu",
+ "Updates": "Aktualizácie",
+ "Check for update": "Skontrolovať dostupnosť aktualizácie",
+ "Reject all %(invitedRooms)s invites": "Odmietnuť všetky %(invitedRooms)s pozvania",
+ "Bulk Options": "Hromadné možnosti",
+ "Desktop specific": "Špecifické pre pracovnú plochu",
+ "Start automatically after system login": "Spustiť automaticky po prihlásení do systému",
+ "No media permissions": "Žiadne oprávnenia k médiám",
+ "You may need to manually permit Riot to access your microphone/webcam": "Mali by ste aplikácii Riot ručne udeliť právo pristupovať k mikrofónu a kamere",
+ "Missing Media Permissions, click here to request.": "Kliknutím sem vyžiadate chýbajúce oprávnenia na prístup k mediálnym zariadeniam.",
+ "No Microphones detected": "Neboli nájdené žiadne mikrofóny",
+ "No Webcams detected": "Neboli nájdené žiadne kamery",
+ "Default Device": "Predvolené zariadenie",
+ "Microphone": "Mikrofón",
+ "Camera": "Kamera",
+ "VoIP": "VoIP",
+ "Email": "Email",
+ "Add email address": "Pridať emailovú adresu",
+ "Notifications": "Oznámenia",
+ "Profile": "Profil",
+ "Display name": "Zobrazované meno",
+ "Account": "Účet",
+ "To return to your account in future you need to set a password": "Aby ste sa v budúcnosti mohli vrátiť k vašemu účtu mali by ste si teraz nastaviť heslo",
+ "Logged in as:": "Prihlásený ako:",
+ "Access Token:": "Prístupový token:",
+ "click to reveal": "Odkryjete kliknutím",
+ "Homeserver is": "Domovský server je",
+ "Identity Server is": "Server totožností je",
+ "matrix-react-sdk version:": "Verzia matrix-react-sdk:",
+ "riot-web version:": "Verzia riot-web:",
+ "olm version:": "Verzia olm:",
+ "Failed to send email": "Nepodarilo sa odoslať email",
+ "The email address linked to your account must be entered.": "Musíte zadať emailovú adresu prepojenú s vašim účtom.",
+ "A new password must be entered.": "Musíte zadať nové heslo.",
+ "New passwords must match each other.": "Obe nové heslá musia byť zhodné.",
+ "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.": "Zmena hesla momentálne obnoví šifrovacie kľúče na všetkých vašich zariadeniach, čo spôsobí, že história vašich šifrovaných konverzácií sa stane nečitateľná, jedine že si pred zmenou hesla exportujete kľúče miestností do súboru a po zmene kľúče importujete naspäť. V budúcnosti bude táto funkcia vylepšená.",
+ "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "Na adresu %(emailAddress)s bola odoslaná správa. Potom, čo prejdete na odkaz z tejto správy, kliknite nižšie.",
+ "I have verified my email address": "Overil som si emailovú adresu",
+ "Your password has been reset": "Vaše heslo bolo obnovené",
+ "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Boli ste odhlásení na všetkych zariadeniach a nebudete viac dostávať okamžité oznámenia. Oznámenia znovu povolíte tak, že sa opätovne prihlásite na každom zariadení",
+ "Return to login screen": "Vrátiť sa na prihlasovaciu obrazovku",
+ "To reset your password, enter the email address linked to your account": "Ak chcete obnoviť vaše heslo, zadajte emailovú adresu prepojenú s vašim účtom",
+ "New password": "Nové heslo",
+ "Confirm your new password": "Potvrďte vaše nové heslo",
+ "Send Reset Email": "Poslať obnovovací email",
+ "Create an account": "Vytvoriť účet",
+ "This Home Server does not support login using email address.": "Tento domovský server nepodporuje prihlasovanie sa emailom.",
+ "Incorrect username and/or password.": "Nesprávne meno používateľa a / alebo heslo.",
+ "Guest access is disabled on this Home Server.": "Na tomto domovskom servery je zakázaný prístup pre hostí.",
+ "The phone number entered looks invalid": "Zdá sa, že zadané telefónne číslo je neplatné",
+ "Error: Problem communicating with the given homeserver.": "Chyba: Nie je možné komunikovať so zadaným domovským serverom.",
+ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "K domovskému serveru nie je možné pripojiť sa použitím protokolu HTTP keďže v adresnom riadku prehliadača máte HTTPS adresu. Použite protokol HTTPS alebo povolte nezabezpečené skripty.",
+ "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Nie je možné pripojiť sa k domovskému serveru - skontrolujte prosím funkčnosť vašeho pripojenia na internet, uistite sa že certifikát domovského servera je dôverihodný, a že žiaden doplnok nainštalovaný v prehliadači nemôže blokovať požiadavky.",
+ "Sorry, this homeserver is using a login which is not recognised ": "Prepáčte, tento domovský server používa neznámy spôsob prihlasovania ",
+ "Login as guest": "Prihlásiť sa ako hosť",
+ "Return to app": "Vrátiť sa do aplikácie",
+ "Failed to fetch avatar URL": "Nepodarilo sa získať URL adresu avatara",
+ "Set a display name:": "Nastaviť zobrazované meno:",
+ "Upload an avatar:": "Nahrať avatara:",
+ "This server does not support authentication with a phone number.": "Tento server nepodporuje overenie telefónnym číslom.",
+ "Missing password.": "Chýba heslo.",
+ "Passwords don't match.": "Heslá sa nezhodujú.",
+ "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Heslo je veľmi krátke (minimálne %(MIN_PASSWORD_LENGTH)s).",
+ "This doesn't look like a valid email address.": "Zdá sa, že toto nie je platná emailová adresa.",
+ "This doesn't look like a valid phone number.": "Zdá sa, že toto nie je platné telefónne číslo.",
+ "You need to enter a user name.": "Musíte zadať používateľské meno.",
+ "An unknown error occurred.": "Vyskytla sa neznáma chyba.",
+ "I already have an account": "Už mám účet",
+ "Displays action": "Zobrazí akciu",
+ "Bans user with given id": "Zakáže vstup používateľovi so zadaným ID",
+ "Unbans user with given id": "Povolí vstup používateľovi so zadaným ID",
+ "Define the power level of a user": "Určí úroveň sili používateľa",
+ "Deops user with given id": "Zruší stav moderátor používateľovi so zadaným ID",
+ "Invites user with given id to current room": "Pošle používateľovi so zadaným ID pozvanie do tejto miestnosti",
+ "Joins room with given alias": "Vstúpi do miestnosti so zadaným aliasom",
+ "Sets the room topic": "Nastaví tému miestnosti",
+ "Kicks user with given id": "Vykopne používateľa so zadaným ID",
+ "Changes your display nickname": "Zmení vaše zobrazované meno",
+ "Searches DuckDuckGo for results": "Vyhľadá výsledky na DuckDuckGo",
+ "Changes colour scheme of current room": "Zmení farebnú schému aktuálnej miestnosti",
+ "Verifies a user, device, and pubkey tuple": "Overí zadané údaje používateľa, zariadenie a verejný kľúč",
+ "Ignores a user, hiding their messages from you": "Ignoruje používateľa a skrije všetky jeho správy",
+ "Stops ignoring a user, showing their messages going forward": "Prestane ignorovať používateľa a začne zobrazovať jeho správy",
+ "Commands": "Príkazy",
+ "Results from DuckDuckGo": "Výsledky z DuckDuckGo",
+ "Emoji": "Emoji",
+ "Notify the whole room": "Oznamovať celú miestnosť",
+ "Room Notification": "Oznámenie miestnosti",
+ "Users": "Používatelia",
+ "unknown device": "neznáme zariadenie",
+ "NOT verified": "NE-overené",
+ "verified": "overené",
+ "Verification": "Overenie",
+ "Ed25519 fingerprint": "Odtlačok prsta Ed25519",
+ "User ID": "ID používateľa",
+ "Curve25519 identity key": "Kľúč totožnosti Curve25519",
+ "none": "žiadny",
+ "Claimed Ed25519 fingerprint key": "Údajne kľúč s odtlačkom prsta Ed25519",
+ "Algorithm": "Algoritmus",
+ "unencrypted": "nešifrované",
+ "Decryption error": "Chyba dešifrovania",
+ "Session ID": "ID relácie",
+ "End-to-end encryption information": "Informácie o šifrovaní E2E",
+ "Event information": "Informácie o udalosti",
+ "Sender device information": "Informácie o zariadení odosielateľa",
+ "Passphrases must match": "Heslá sa musia zhodovať",
+ "Passphrase must not be empty": "Heslo nesmie byť prázdne",
+ "Export room keys": "Exportovať kľúče miestností",
+ "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "Tento proces vás prevedie exportom kľúčov určených na dešifrovanie správ, ktoré ste dostali v šifrovaných miestnostiach do lokálneho súboru. Tieto kľúče zo súboru môžete neskôr importovať do iného Matrix klienta, aby ste v ňom mohli dešifrovať vaše šifrované správy.",
+ "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "Tento súbor umožní komukoľvek, k to má ku nemu prístup dešifrovať všetky vami viditeľné šifrované správy, mali by ste teda byť opatrní a tento súbor si bezpečne uchovať. Aby bolo toto pre vás jednoduchšie, nižšie zadajte heslo, ktorým budú údaje v súbore zašifrované. Importovať údaje zo súboru bude možné len po zadaní tohoto istého hesla.",
+ "Enter passphrase": "Zadajte heslo",
+ "Confirm passphrase": "Potvrďte heslo",
+ "Export": "Exportovať",
+ "Import room keys": "Importovať kľúče miestností",
+ "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Tento proces vás prevedie importom šifrovacích kľúčov, ktoré ste si v minulosti exportovali v inom Matrix klientovi. Po úspešnom importe budete v tomto klientovi môcť dešifrovať všetky správy, ktoré ste mohli dešifrovať v spomínanom klientovi.",
+ "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "Exportovaný súbor je chránený heslom. Súbor môžete importovať len ak zadáte zodpovedajúce heslo.",
+ "File to import": "Importovať zo súboru",
+ "Import": "Importovať",
+ "Show these rooms to non-members on the community page and room list?": "Zobrazovať tieto miestnosti na domovskej stránke komunity a v zozname miestností aj pre nečlenov?"
+}
diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json
index d3b512900c..f14a563117 100644
--- a/src/i18n/strings/sv.json
+++ b/src/i18n/strings/sv.json
@@ -1,126 +1,5 @@
{
- "af": "Afrikaans",
- "ar-ae": "Arabiska (U.A.E.)",
- "ar-bh": "Arabiska (Bahrain)",
- "ar-dz": "Arabiska (Algeriet)",
- "ar-eg": "Arabiska (Egypten)",
- "ar-iq": "Arabiska (Irak)",
- "ar-jo": "Arabiska (Jordanien)",
- "ar-kw": "Arabiska (Kuwait)",
- "ar-lb": "Arabiska (Libanon)",
- "ar-ly": "Arabiska (Libyen)",
- "ar-ma": "Arabiska (Marocko)",
- "ar-om": "Arabiska (Oman)",
- "ar-qa": "Arabiska (Qatar)",
- "ar-sa": "Arabiska (Saudiarabien)",
- "ar-sy": "Arabiska (Syrien)",
- "ar-tn": "Arabiska (Tunisien)",
- "ar-ye": "Arabiska (Yemen)",
- "be": "Vitryska",
- "bg": "Bulgariska",
- "ca": "Katalanska",
- "cs": "Tjeckiska",
- "da": "Danska",
- "de-at": "Tyska (Österrike)",
- "de-ch": "Tyska (Schweiz)",
- "de": "Tyska",
- "de-li": "Tyska (Liechtenstein)",
- "de-lu": "Tyska (Luxembourg)",
- "el": "Grekiska",
- "en-au": "Engelska (Australien)",
- "en-bz": "Engelska (Belize)",
- "en-ca": "Engelska (Kanada)",
- "en": "Engelska",
- "en-gb": "Engelska (Förenta kungariket)",
- "en-ie": "Engelska (Irland)",
- "en-jm": "Engelska (Jamaica)",
- "en-nz": "Engelska (Nya Zeeland)",
- "en-tt": "Engelska (Trinidad)",
- "en-us": "Engelska (Förenta staterna)",
- "en-za": "Engelska (Sydafrika)",
- "es-ar": "Spanska (Argentina)",
- "es-bo": "Spanska (Bolivia)",
- "es-cl": "Spanska (Chile)",
- "es-co": "Spanska (Colombia)",
- "es-cr": "Spanska (Costa Rica)",
- "es-do": "Spanska (Dominikanska republiken)",
- "es-ec": "Spanska (Ecuador)",
- "es-gt": "Spanska (Guatemala)",
- "es-hn": "Spanska (Honduras)",
- "es-mx": "Spanska (Mexico)",
- "es-ni": "Spanska (Nicaragua)",
- "es-pa": "Spanska (Panama)",
- "es-pe": "Spanska (Peru)",
- "es-pr": "Spanska (Puerto Rico)",
- "es-py": "Spanska (Paraguay)",
- "es": "Spanska (Spanien)",
- "es-sv": "Spanska (El Salvador)",
- "es-uy": "Spanska (Uruguay)",
- "es-ve": "Spanska (Venezuela)",
- "et": "Estniska",
- "eu": "Baskiska",
- "fa": "Persiska",
- "fi": "Finska",
- "fo": "Färöiska",
- "fr-be": "Franska (Belgien)",
- "fr-ca": "Franska (Kanada)",
- "fr-ch": "Franska (Schweiz)",
- "fr": "Franska",
- "fr-lu": "Franska (Luxembourg)",
- "ga": "Irländska",
- "gd": "Gaeliska (Skottland)",
- "he": "Hebreiska",
- "hi": "Hindi",
- "hr": "Kroatiska",
- "hu": "Ungerska",
- "id": "Indonesiska",
- "is": "Isländska",
- "it-ch": "Italienska (Schweiz)",
- "it": "Italienska",
- "ja": "Japanska",
- "ji": "Jiddisch",
- "ko": "Koreanska",
- "lt": "Litauiska",
- "lv": "Lettiska",
- "mk": "Makedonska (FYROM)",
- "ms": "Malaysiska",
- "mt": "Maltesiska",
- "nl-be": "Nederländska (Belgien)",
- "nl": "Nederländska",
- "no": "Norska",
- "pl": "Polska",
- "pt-br": "Brasiliansk portugisiska",
- "pt": "Portugisiska",
- "rm": "Rätoromanska",
- "ro-mo": "Rumänska (Republiken Moldavien)",
- "ro": "Rumänska",
- "ru-mo": "Ryska (Republiken Moldavien)",
- "ru": "Ryska",
- "sb": "Sorbiska",
- "sk": "Slovakiska",
- "sl": "Slovenska",
- "sq": "Albanska",
- "sr": "Serbiska",
- "sv-fi": "Svenska (Finland)",
- "sv": "Svenska",
- "sx": "Sutu",
- "sz": "Samiska",
- "th": "Thailändska",
- "tn": "Tswana",
- "tr": "Turkiska",
- "ts": "Tsonga",
- "uk": "Ukrainska",
- "ur": "Urdu",
- "ve": "Venda",
- "vi": "Vietnamesiska",
- "xh": "Xhosa",
- "zh-cn": "Kinesiska (Folkrepubliken Kina)",
- "zh-hk": "Kinesiska (Hongkong SAR)",
- "zh-sg": "Kinesiska (Singapore)",
- "zh-tw": "Kinesiska (Taiwan)",
- "zu": "Zulu",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Ett SMS har skickats till +%(msisdn)s. Vänligen ange verifieringskoden ur meddelandet",
- "accept": "acceptera",
"%(targetName)s accepted an invitation.": "%(targetName)s accepterade en inbjudan.",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s accepterade inbjudan för %(displayName)s.",
"Account": "Konto",
@@ -142,26 +21,17 @@
"Always show message timestamps": "Visa alltid tidsstämpel för meddelanden",
"Hide removed messages": "Göm raderade meddelanden",
"Authentication": "Autentisering",
- "all room members": "alla rumsmedlemmar",
- "all room members, from the point they are invited": "alla rumsmedlemmar fr.o.m att de bjöds in",
- "all room members, from the point they joined": "alla rumsmedlemmar fr.o.m. att de gick med som medlem",
- "an address": "en address",
- "and": "och",
"%(items)s and %(remaining)s others": "%(items)s och %(remaining)s andra",
"%(items)s and one other": "%(items)s och en annan",
"%(items)s and %(lastItem)s": "%(items)s och %(lastItem)s",
- "and %(count)s others...": {
- "other": "och %(count)s andra...",
- "one": "och en annan..."
- },
+ "and %(count)s others...|other": "och %(count)s andra...",
+ "and %(count)s others...|one": "och en annan...",
"%(names)s and %(lastPerson)s are typing": "%(names)s och %(lastPerson)s skriver",
"%(names)s and one other are typing": "%(names)s och en annan skriver",
- "%(names)s and %(count)s others are typing": "%(names)s och %(count)s andra skriver",
"An email has been sent to": "Ett epostmeddelande har sänts till",
"A new password must be entered.": "Ett nytt lösenord måste anges.",
"%(senderName)s answered the call.": "%(senderName)s svarade på samtalet.",
"Anyone who knows the room's link, including guests": "Alla som har rummets adress, inklusive gäster",
- "anyone": "vem som helst",
"Anyone": "Vem som helst",
"Anyone who knows the room's link, apart from guests": "Alla som har rummets adress, förutom gäster",
"An error has occurred.": "Ett fel har inträffat.",
@@ -179,7 +49,6 @@
"Ban": "Banna",
"Attachment": "Bilaga",
"Call Timeout": "Samtalstimeout",
- "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "Det gick inte att ansluta till hemservern - kontrollera anslutningen och att hemserverns TLS-certifikat är pålitat.",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Det går inte att ansluta till en hemserver via HTTP då adressen i webbläsaren är HTTPS. Använd HTTPS, eller sätt på osäkra skript.",
"Can't load user settings": "Det gick inte att ladda användarinställningar",
"Change Password": "Byt lösenord",
@@ -194,7 +63,6 @@
"Claimed Ed25519 fingerprint key": "Påstådd Ed25519-fingeravtrycksnyckel",
"Clear Cache and Reload": "Töm cache och ladda om",
"Clear Cache": "Töm cache",
- "Click here": "Klicka här",
"Click here to fix": "Klicka här för att fixa",
"Click to mute audio": "Klicka för att dämpa ljud",
"Click to mute video": "Klicka för att stänga av video",
@@ -220,11 +88,9 @@
"/ddg is not a command": "/ddg är inte ett kommando",
"Deactivate Account": "Deaktivera konto",
"Deactivate my account": "Deaktivera mitt konto",
- "decline": "avböj",
"Decrypt %(text)s": "Dekryptera %(text)s",
"Decryption error": "Dekrypteringsfel",
"Delete": "Radera",
- "demote": "degradera",
"Deops user with given id": "Degraderar användaren med givet id",
"Default": "Standard",
"Device already verified!": "Enheten är redan verifierad!",
@@ -234,7 +100,6 @@
"Device key:": "Enhetsnyckel:",
"Devices": "Enheter",
"Devices will not yet be able to decrypt history from before they joined the room": "Enheter kan inte ännu dekryptera meddelandehistorik från före de gick med i rummet",
- "Direct Chat": "Direkt-chatt",
"Direct chats": "Direkta chattar",
"disabled": "avstängd",
"Disable inline URL previews by default": "Stäng av inline-URL-förhandsvisningar som standard",
@@ -271,13 +136,11 @@
"Failed to delete device": "Det gick inte att radera enhet",
"Failed to forget room %(errCode)s": "Det gick inte att glömma bort rummet %(errCode)s",
"Failed to join room": "Det gick inte att gå med i rummet",
- "Failed to join the room": "Det gick inte att gå med i rummet",
"Failed to kick": "Det gick inte att kicka",
"Failed to leave room": "Det gick inte att lämna rummet",
"Failed to load timeline position": "Det gick inte att hämta positionen på tidslinjen",
"Failed to lookup current room": "Det gick inte att hämta det nuvarande rummet",
"Failed to mute user": "Det gick inte att dämpa användaren",
- "Failed to register as guest:": "Det gick inte att registrera som gästanvändare:",
"Failed to reject invite": "Det gick inte att avböja inbjudan",
"Failed to reject invitation": "Det gick inte att avböja inbjudan",
"Failed to save settings": "Det gick inte att spara inställningarna",
@@ -291,27 +154,23 @@
"Failed to upload file": "Det gick inte att ladda upp filen",
"Failed to verify email address: make sure you clicked the link in the email": "Det gick inte att bekräfta epostadressen, klicka på länken i epostmeddelandet",
"Favourite": "Favorit",
- "favourite": "favorit",
"a room": "ett rum",
"Accept": "Godkänn",
"Access Token:": "Åtkomsttoken:",
"Active call (%(roomName)s)": "Aktiv samtal (%(roomName)s)",
"Add": "Lägg till",
- "Admin tools": "Admin verktyg",
- "And %(count)s more...": "Och %(count)s till...",
+ "Admin Tools": "Admin verktyg",
"Alias (optional)": "Alias (valfri)",
"Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Det gick inte att ansluta till servern - kontrollera anslutningen, försäkra att din hemservers TLS-certifikat är betrott, och att inget webbläsartillägg blockerar förfrågningar.",
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s ändrade maktnivån av %(powerLevelDiffText)s.",
- "changing room on a RoomView is not supported": "det går inte att byta rum i en RoomView",
"Click here to join the discussion!": "Klicka här för att gå med i diskussionen!",
"Close": "Stäng",
- "%(count)s new messages.one": "%(count)s nytt meddelande",
- "%(count)s new messages.other": "%(count)s nya meddelanden",
+ "%(count)s new messages|one": "%(count)s nytt meddelande",
+ "%(count)s new messages|other": "%(count)s nya meddelanden",
"Create a new chat or reuse an existing one": "Skapa en ny chatt eller använd en existerande",
"Custom": "Egen",
"Decline": "Avvisa",
"Disable Notifications": "Slå av aviseringar",
- "Disable markdown formatting": "Slå av Markdown-formattering",
"Drop File Here": "Dra filen hit",
"Enable Notifications": "Slå på aviseringar",
"Encrypted by a verified device": "Krypterat av en verifierad enhet",
@@ -333,12 +192,7 @@
"Found a bug?": "Hittade du en bugg?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s från %(fromPowerLevel)s till %(toPowerLevel)s",
"Guest access is disabled on this Home Server.": "Gäståtkomst är inte aktiverat på den här hemservern.",
- "Guests can't set avatars. Please register.": "Gäster kan inte välja en profilbild. Vänligen registrera dig.",
- "Guest users can't create new rooms. Please register to create room and start a chat.": "Gäster kan inte skapa nya rum. Vänligen registrera dig för att skapa rum och starta chattar.",
- "Guest users can't upload files. Please register to upload.": "Gäster kan inte ladda upp filer. Vänligen registrera dig för att ladda upp.",
- "Guests can't use labs features. Please register.": "Gäster kan inte använda labb-egenskaper. Vänligen registrera dig.",
"Guests cannot join this room even if explicitly invited.": "Gäster kan inte gå med i det här rummet fastän de är uttryckligen inbjudna.",
- "had": "hade",
"Hangup": "Lägg på",
"Hide read receipts": "Göm kvitteringar",
"Hide Text Formatting Toolbar": "Göm textformatteringsverktygsfältet",
@@ -370,8 +224,6 @@
"Sign in with": "Logga in med",
"Join as voice or video.": "Gå med som röst eller video.",
"Join Room": "Gå med i rum",
- "joined and left": "gick med och lämnade",
- "joined": "gick med",
"%(targetName)s joined the room.": "%(targetName)s gick med i rummet.",
"Joins room with given alias": "Går med i rummet med givet alias",
"Jump to first unread message.": "Hoppa till första olästa meddelande.",
@@ -381,8 +233,6 @@
"Labs": "Labb",
"Last seen": "Senast sedd",
"Leave room": "Lämna rummet",
- "left and rejoined": "lämnade rummet och kom tillbaka",
- "left": "lämnade",
"%(targetName)s left the room.": "%(targetName)s lämnade rummet.",
"Level:": "Nivå:",
"Local addresses for this room:": "Lokala adresser för rummet:",
@@ -390,7 +240,10 @@
"Login as guest": "Logga in som gäst",
"Logout": "Logga ut",
"Low priority": "Lågprioritet",
- "%(senderName)s made future room history visible to": "%(senderName)s gjorde framtida rumshistorik synligt åt",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s gjorde framtida rumshistorik synligt åt alla rumsmedlemmar fr.o.m att de bjöds in.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s gjorde framtida rumshistorik synligt åt alla rumsmedlemmar fr.o.m. att de gick med som medlem.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s gjorde framtida rumshistorik synligt åt alla rumsmedlemmar.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s gjorde framtida rumshistorik synligt åt vem som helst.",
"Manage Integrations": "Hantera integrationer",
"Markdown is disabled": "Markdown är inaktiverat",
"Markdown is enabled": "Markdown är aktiverat",
@@ -404,13 +257,11 @@
"Moderator": "Moderator",
"Must be viewing a room": "Du måste ha ett öppet rum",
"Mute": "Dämpa",
- "my Matrix ID": "mitt Matrix-ID",
+ "%(serverName)s Matrix ID": "%(serverName)s Matrix-ID",
"Name": "Namn",
"Never send encrypted messages to unverified devices from this device": "Skicka aldrig krypterade meddelanden till overifierade enheter från den här enheten",
- "Never send encrypted messages to unverified devices in this room": "Skicka aldrig krypterade meddelanden till overifierade enheter i det här rummet",
"Never send encrypted messages to unverified devices in this room from this device": "Skicka aldrig krypterade meddelanden till overifierade enheter i det här rummet från den här enheten",
"New address (e.g. #foo:%(localDomain)s)": "Ny address (t.ex. #foo:%(localDomain)s)",
- "New Composer & Autocomplete": "Ny redigerare och autoslutförande",
"New password": "Nytt lösenord",
"New passwords don't match": "De nya lösenorden matchar inte",
"New passwords must match each other.": "De nya lösenorden måste vara de samma.",
@@ -429,7 +280,7 @@
"OK": "OK",
"olm version:": "olm-version:",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "När kryptering aktiveras i ett rum kan det inte deaktiveras (tills vidare)",
- "Once you've followed the link it contains, click below": "När du har följt länken i meddelandet, klicka här",
+ "Once you've followed the link it contains, click below": "När du har följt länken i meddelandet, klicka här",
"Only people who have been invited": "Endast inbjudna",
"Operation failed": "Handlingen misslyckades",
"Otherwise, click here to send a bug report.": "Annars kan du klicka här för att skicka en buggrapport.",
@@ -441,9 +292,7 @@
"Phone": "Telefon",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s startade ett %(callType)ssamtal.",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Öppna meddelandet i din epost och klicka på länken i meddelandet. När du har gjort detta, klicka vidare.",
- "Please Register": "Registrera dig",
"Power level must be positive integer.": "Maktnivån måste vara ett positivt heltal.",
- "Press": "Tryck",
"Press to start a chat with someone": "Tryck på för att starta en chatt med någon",
"Privacy warning": "Integritetsvarning",
"Private Chat": "Privatchatt",
@@ -455,7 +304,6 @@
"Revoke Moderator": "Degradera moderator",
"Refer a friend to Riot:": "Hänvisa en vän till Riot:",
"Register": "Registrera",
- "rejected": "avvisade",
"%(targetName)s rejected the invitation.": "%(targetName)s avvisade inbjudan.",
"Reject invitation": "Avvisa inbjudan",
"Rejoin": "Gå med tillbaka",
@@ -468,7 +316,6 @@
"%(senderName)s requested a VoIP conference.": "%(senderName)s begärde en VoIP-konferens.",
"Report it": "Rapportera det",
"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.": "Om du återställer ditt lösenord kommer alla krypteringsnycklar på alla enheter att återställas, vilket gör krypterad meddelandehistorik oläsbar om du inte först exporterar dina rumsnycklar och sedan importerar dem igen. I framtiden kommer det här att förbättras.",
- "restore": "återställ",
"Results from DuckDuckGo": "Resultat från DuckDuckGo",
"Return to app": "Tillbaka till appen",
"Return to login screen": "TIllbaka till login-skärmen",
@@ -488,7 +335,6 @@
"Search": "Sök",
"Search failed": "Sökning misslyckades",
"Searches DuckDuckGo for results": "Söker efter resultat på DuckDuckGo",
- "Searching known users": "Söker genom kända användare",
"Seen by %(userName)s at %(dateTime)s": "Sedd av %(userName)s %(dateTime)s",
"Send a message (unencrypted)": "Skicka ett meddelande (okrypterat)",
"Send an encrypted message": "Skicka ett krypterad meddelande",
@@ -498,7 +344,7 @@
"Send Reset Email": "Skicka återställningsmeddelande",
"sent an image": "skickade en bild",
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s skickade en bild.",
- "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s bjöd in %(targetDIsplayName)s med i rummet.",
+ "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s bjöd in %(targetDisplayName)s med i rummet.",
"sent a video": "skickade en video",
"Server error": "Serverfel",
"Server may be unavailable or overloaded": "Servern kan vara otillgänglig eller överbelastad",
@@ -509,7 +355,6 @@
"Session ID": "Sessions-ID",
"%(senderName)s set a profile picture.": "%(senderName)s satte en profilbild.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s bytte sitt visningnamn till %(displayName)s.",
- "Set": "Sätt",
"Settings": "Inställningar",
"Show panel": "Visa panel",
"Show Text Formatting Toolbar": "Visa textformatteringsverktygsfält",
@@ -525,5 +370,44 @@
"Sorry, this homeserver is using a login which is not recognised ": "Den här hemsevern använder en login-metod som inte stöds ",
"Start a chat": "Starta en chatt",
"Start authentication": "Starta autentisering",
- "Start Chat": "Starta en chatt"
+ "Start Chat": "Starta en chatt",
+ "Cancel": "Avbryt",
+ "Create new room": "Nytt rum",
+ "Custom Server Options": "Egna serverinställningar",
+ "Dismiss": "Avvisa",
+ "powered by Matrix": "drivs av Matrix",
+ "Room directory": "Rumskatalog",
+ "Start chat": "Starta chatt",
+ "unknown error code": "okänd felkod",
+ "Add a widget": "Lägg till en widget",
+ "Allow": "Tillåt",
+ "Cannot add any more widgets": "Det går inte att lägga till fler widgets",
+ "Changes colour scheme of current room": "Ändrar färgschema för nuvarande rum",
+ "Delete widget": "Ta bort widget",
+ "Define the power level of a user": "Definiera anseende för en användare",
+ "Do you want to load widget from URL:": "Vill du ladda widgeten från URL:",
+ "Edit": "Redigera",
+ "Enable automatic language detection for syntax highlighting": "Aktivera automatisk språkdetektering för syntaxmarkering",
+ "Hide Apps": "Dölj Appar",
+ "Hide avatar and display name changes": "Dölj avatar och visningsnamns ändringar",
+ "Integrations Error": "Integrationsfel",
+ "Publish this room to the public in %(domain)s's room directory?": "Publicera rummet i den offentliga rumskatalogen på %(domain)s?",
+ "AM": "a.m.",
+ "PM": "p.m.",
+ "NOTE: Apps are not end-to-end encrypted": "OBS: Apparna är inte end-to-end-krypterade",
+ "Revoke widget access": "Upphäv widget-åtkomst",
+ "Show Apps": "Visa appar",
+ "Submit": "Lämna",
+ "Tagged as: ": "Taggad som: ",
+ "The default role for new room members is": "Standardrollen för nya medlemmar är",
+ "The main address for this room is": "Huvudadressen för det här rummet är",
+ "The maximum permitted number of widgets have already been added to this room.": "Den största tillåtna mängden widgetar har redan tillsats till rummet.",
+ "The phone number entered looks invalid": "Telefonnumret ser felaktigt ut",
+ "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Signeringsnyckeln du angav matchar signeringsnyckeln som mottogs från enheten %(deviceId)s som tillhör %(userId)s. Enheten är markerad som verifierad.",
+ "This email address is already in use": "Den här epostadressen är redan i bruk",
+ "This email address was not found": "Den här epostadressen fanns inte",
+ "%(actionVerb)s this person?": "%(actionVerb)s den här personen?",
+ "The email address linked to your account must be entered.": "Epostadressen som är kopplad till ditt konto måste anges.",
+ "The file '%(fileName)s' exceeds this home server's size limit for uploads": "Filen '%(fileName)s' överskrider serverns största tillåtna filstorlek",
+ "The file '%(fileName)s' failed to upload": "Filen '%(fileName)s' kunde inte laddas upp"
}
diff --git a/src/i18n/strings/te.json b/src/i18n/strings/te.json
index 0f1d5b9a6d..d542f8140c 100644
--- a/src/i18n/strings/te.json
+++ b/src/i18n/strings/te.json
@@ -1,89 +1,5 @@
{
"was invited": "తనని ఆహ్వానించారు",
- "ar-iq": "అరబిక్ (ఇరాక్)",
- "ar-jo": "అరబిక్ (జోర్డాన్)",
- "ar-kw": "అరబిక్ (కువైట్)",
- "ar-lb": "అరబిక్ (లెబనాన్)",
- "ar-ly": "అరబిక్ (లిబియా)",
- "ar-ma": "అరబిక్ (మొరాకో)",
- "ar-om": "అరబిక్ (ఒమన్)",
- "ar-qa": "అరబిక్ (కతర్)",
- "ar-sa": "అరబిక్ (సౌదీ అరేబియా)",
- "ar-sy": "అరబిక్ (సిరియా)",
- "ar-tn": "అరబిక్ (ట్యునీషియా)",
- "ar-ye": "అరబిక్ (యెమెన్)",
- "bg": "బల్గేరియన్",
- "da": "డానిష్",
- "de-at": "జర్మన్ (ఆస్ట్రియా)",
- "de-ch": "జర్మన్ (స్విట్జర్లాండ్)",
- "de": "జర్మన్",
- "de-li": "జర్మన్ (లిక్టెన్స్టీన్)",
- "de-lu": "జర్మన్ (లక్సెంబర్గ్)",
- "el": "గ్రీకు",
- "en-au": "ఆంగ్లము (ఆస్ట్రేలియా)",
- "en-bz": "ఇంగ్లీష్ (బెలిజ్)",
- "en-ca": "ఇంగ్లీష్ (కెనడా)",
- "en": "ఇంగ్లీష్",
- "en-gb": "ఇంగ్లీష్ (యునైటెడ్ కింగ్డమ్)",
- "en-ie": "ఇంగ్లీష్ (ఐర్లాండ్)",
- "en-jm": "ఇంగ్లీష్ (జమైకా)",
- "en-nz": "ఇంగ్లీష్ (న్యూజిలాండ్)",
- "en-tt": "ఇంగ్లీష్ (ట్రినిడాడ్)",
- "en-us": "ఇంగ్లీష్ (యునైటెడ్ స్టేట్స్)",
- "en-za": "ఇంగ్లీష్ (దక్షిణ ఆఫ్రికా)",
- "es-ar": "స్పానిష్ (అర్జెంటీనా)",
- "es-bo": "స్పానిష్ (బొలీవియా)",
- "es-cl": "స్పానిష్ (చిలీ)",
- "es-co": "స్పానిష్ (కొలంబియా)",
- "es-cr": "స్పానిష్ (కోస్టా రికా)",
- "af": "ఆఫ్రికాన్స్",
- "ar-ae": "అరబిక్ (యు.ఏ.ఈ.)",
- "ar-bh": "అరబిక్ (బహ్రెయిన్)",
- "ar-dz": "అరబిక్ (అల్జీరియా)",
- "ar-eg": "అరబిక్ (ఈజిప్ట్)",
- "be": "భెలరుసీన్",
- "ca": "కతలన్",
- "cs": "ఛ్జెచ్",
- "es-do": "స్పానిష్ (డొమినికన్ రిపబ్లిక్)",
- "lt": "లిథూనీన్",
- "lv": "లత్వీన్",
- "mk": "మాసిడోనియన్ (ఫ్య్ఋఓం)",
- "ms": "మలేషియన్",
- "mt": "మాల్టీస్",
- "nl-be": "డచ్ (బెల్జియం)",
- "nl": "డచ్",
- "no": "నార్వేజియన్",
- "pl": "పోలిష్",
- "pt-br": "బ్రెజిలియన్ పోర్చుగీస్",
- "pt": "పోర్చుగీస్",
- "rm": "ర్హెతో-రొమనిచ్",
- "ro-mo": "రోమేనియా (మోల్డోవా రిపబ్లిక్)",
- "ro": "రొమనీన్",
- "ru-mo": "రష్యన్ (మోల్డోవా రిపబ్లిక్)",
- "ru": "రష్యన్",
- "sb": "సోర్బియన్",
- "sk": "శ్లొవక్",
- "sl": "స్లోవేనియాన్",
- "sq": "ఆల్బనీన్",
- "sr": "సెర్బియన్",
- "sv-fi": "స్వీడిష్ (ఫిన్లాండ్)",
- "sv": "స్వీడిష్",
- "sx": "శుతు",
- "sz": "సామీ (లప్పీష్)",
- "th": "థాయ్",
- "tn": "సెటస్వానా",
- "tr": "టుర్కిష్",
- "ts": "సోంగా",
- "uk": "ఉక్రేనియన్",
- "ur": "ఉర్దూ",
- "ve": "వెండా",
- "vi": "వియత్నమెసె",
- "xh": "షోసా",
- "zh-cn": "చైనీస్ (ప్ ర్ సీ)",
- "zh-hk": "చైనీస్ (హాంకాంగ్ స్ఎఅర్)",
- "zh-sg": "చైనీస్ (సింగపూర్)",
- "zh-tw": "చైనీస్ (తైవాన్)",
- "zu": "జూలూ",
"a room": "ఓ గది",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "ఒక టెక్స్ట్ సందేశం +%(msisdn)s కు పంపబడింది. దయచేసి దీనిలో ఉన్న ధృవీకరణ కోడ్ను నమోదు చేయండి",
"Accept": "అంగీకరించు",
@@ -95,7 +11,7 @@
"Add email address": "ఇమెయిల్ చిరునామాను జోడించండి",
"Add phone number": "ఫోన్ నంబర్ను జోడించండి",
"Admin": "అడ్మిన్",
- "Admin tools": "నిర్వాహక ఉపకరణాలు",
+ "Admin Tools": "నిర్వాహక ఉపకరణాలు",
"VoIP": "విఒఐపి",
"Missing Media Permissions, click here to request.": "మీడియా అనుమతులు మిస్ అయయి, అభ్యర్థించడానికి ఇక్కడ క్లిక్ చేయండి.",
"No Microphones detected": "మైక్రోఫోన్లు కనుగొనబడలేదు",
@@ -111,54 +27,13 @@
"Always show message timestamps": "ఎల్లప్పుడూ సందేశాల సమయ ముద్రలు చూపించు",
"Authentication": "ప్రామాణీకరణ",
"Alias (optional)": "అలియాస్ (ఇవచు ఇవకపపోవచు)",
- "all room members": "అన్ని గదుల సభ్యులు",
"You do not have permission to post to this room": "మీకు ఈ గదికి పోస్ట్ చేయడానికి అనుమతి లేదు",
"You have been invited to join this room by %(inviterName)s": "%(inviterName)s ఈ గదిలో చేరడానికి మీరు ఆహ్వానించబడ్డారు",
- "es-ec": "స్పానిష్ (ఈక్వెడార్)",
- "es-gt": "స్పానిష్ (గ్వాటెమాల)",
- "es-hn": "స్పానిష్ (హోండురాస్)",
- "es-mx": "స్పానిష్ (మెక్సికో)",
- "es-ni": "స్పానిష్ (నికరాగువా)",
- "es-pa": "స్పానిష్ (పనామా)",
- "es-pe": "స్పానిష్ (పెరు)",
- "es-pr": "స్పానిష్ (ఫ్యూర్టో రికో)",
- "es-py": "స్పానిష్ (పరాగ్వే)",
- "es": "స్పానిష్ (స్పెయిన్)",
- "es-sv": "స్పానిష్ (ఎల్ సాల్వడార్)",
- "es-uy": "స్పానిష్ (ఉరుగ్వే)",
- "es-ve": "స్పానిష్ (వెనిజులా)",
- "eu": "బాస్క్ (బాస్క్)",
- "fa": "ఫార్సి",
- "fi": "ముగించు",
- "fo": "ఫెరోయెస్",
- "fr-be": "ఫ్రెంచ్ (బెల్జియం)",
- "fr-ca": "ఫ్రెంచ్ (కెనడా)",
- "fr-ch": "ఫ్రెంచ్ (స్విట్జర్లాండ్)",
- "fr": "ఫ్రెంచ్",
- "fr-lu": "ఫ్రెంచ్ (లక్సెంబర్గ్)",
- "ga": "ఐరిష్",
- "gd": "గేలిక్ (స్కాట్లాండ్)",
- "he": "హిబ్రూ",
- "hi": "హిందీ",
- "hu": "హంగేరియన్",
- "id": "ఇండోనేషియన్",
- "is": "ఐస్లాండిక్",
- "it-ch": "ఇటాలియన్ (స్విట్జర్లాండ్)",
- "it": "ఇటాలియన్",
- "ja": "జపనీస్",
- "ko": "కొరియన్",
"Active call (%(roomName)s)": "క్రియాశీల కాల్ల్ (%(roomName)s)",
- "And %(count)s more...": "మరియు %(count)s ఇంకా ...",
- "all room members, from the point they are invited": "అన్ని గది సభ్యులు, పాయింట్ నుండి వారు ఆహ్వానించబడ్డారు",
- "all room members, from the point they joined": "అన్ని గది సభ్యులు, పాయింట్ నుండి వారు చేరారు",
- "and": "మరియు",
- "and one other...": "మరియు మరొకటి ...",
"%(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.": "కొత్త పాస్ వర్డ్ ను తప్పక నమోదు చేయాలి.",
"%(senderName)s answered the call.": "%(senderName)s కు సమాధానం ఇచ్చారు.",
- "anyone": "ఎవరైనా",
"An error has occurred.": "ఒక లోపము సంభవించినది.",
"Anyone": "ఎవరైనా",
"Anyone who knows the room's link, apart from guests": "అతిథులు కాకుండా గది యొక్క లింక్ తెలిసిన వారు ఎవరైనా",
@@ -183,14 +58,12 @@
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s గది పేరు తొలగించబడింది.",
"Changes to who can read history will only apply to future messages in this room": "చరిత్ర చదివేవారికి మార్పులు ఈ గదిలో భవిష్య సందేశాలకు మాత్రమే వర్తిస్తాయి",
"Changes your display nickname": "మీ ప్రదర్శన మారుపేరుని మారుస్తుంది",
- "changing room on a RoomView is not supported": "ఒక రూమ్వ్యూలో గది మార్చుకునేకి మద్దతు లేదు",
"You cannot place a call with yourself.": "మీరు మీతో కాల్ చేయలేరు.",
"You are already in a call.": "మీరు ఇప్పటికే కాల్లో ఉన్నారు.",
"You are trying to access %(roomName)s.": "మీరు %(roomName)s లను యాక్సెస్ చేయడానికి ప్రయత్నిస్తున్నారు.",
"You cannot place VoIP calls in this browser.": "మీరు ఈ బ్రౌజర్లో VoIP కాల్లను ఉంచలేరు.",
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "మీరు అన్ని పరికరాల నుండి లాగ్ అవుట్ అయ్యారు మరియు ఇకపై పుష్ ఉండదు.\nప్రకటనలను నోటిఫికేషన్లను పునఃప్రారంభించడానికి, ప్రతి పరికరంలో మళ్లీ సైన్ ఇన్ చేయండి",
"You have no visible notifications": "మీకు కనిపించే నోటిఫికేషన్లు లేవు",
- "you must be a": "మీరు తప్పక",
"You need to be able to invite users to do that.": "మీరు దీన్ని చేయడానికి వినియోగదారులను ఆహ్వానించగలరు.",
"Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "పాస్ వర్డ్ మార్చడం వల్ల ప్రస్తుతం అన్ని పరికరాల్లో ఏదైనా ఎండ్-టు-ఎండ్ ఎన్క్రిప్షన్ కీలను రీసెట్ చేస్తుంది, ఎన్క్రిప్టెడ్ చాట్ చరిత్రను చదవటానికి వీలెకుండ చెస్తుంది, మీరు మొదట మీ గది కీలను ఎగుమతి చేసి, తర్వాత వాటిని తిరిగి దిగుమతి చేసుకోకపోతే. భవిష్యత్తులో ఇది మెరుగవుతుంది.",
"Claimed Ed25519 fingerprint key": "ఎడ్25519 వేలిముద్ర కీ ని పేర్కొన్నారు",
@@ -214,8 +87,8 @@
"Confirm your new password": "మీ క్రొత్త పాస్వర్డ్ను నిర్ధారించండి",
"Continue": "కొనసాగించు",
"Could not connect to the integration server": "ఇంటిగ్రేషన్ సర్వర్కు కనెక్ట్ చేయడం సాధ్యం కాలేదు",
- "%(count)s new messages.one": "%(count)s కొత్త సందేశం",
- "%(count)s new messages.other": "%(count)s కొత్త సందేశాలు",
+ "%(count)s new messages|one": "%(count)s కొత్త సందేశం",
+ "%(count)s new messages|other": "%(count)s కొత్త సందేశాలు",
"Create a new chat or reuse an existing one": "క్రొత్త చాట్ ను సృష్టించుకోండి లేదా ఇప్పటికే ఉన్న ఒకదాన్ని తిరిగి ఉపయోగించండి",
"Create an account": "ఒక ఎకౌంటు ను సృష్టించండి",
"Create Room": "రూమ్ ని సృష్టించండి",
@@ -230,7 +103,6 @@
"Decline": "డిక్లైన్",
"Decryption error": "గుప్తలేఖన లోపం",
"Delete": "తొలగించు",
- "demote": "స్థానానికి తగ్గించు",
"Deops user with given id": "ఇచ్చిన ID తో వినియోగదారుని విడదీస్తుంది",
"Default": "డిఫాల్ట్",
"Device already verified!": "పరికరం ఇప్పటికే ధృవీకరించబడింది!",
@@ -241,11 +113,9 @@
"Wed": "బుధవారం",
"Thu": "గురువారం",
"Fri": "శుక్రువారం",
- "Friday": "శుక్రువారం",
"Sat": "శనివారం",
"Jan": "జనవరి",
"Feb": "ఫిబ్రవరి",
- "Disable markdown formatting": "మార్క్డౌన్ ఆకృతీకరణని ఆపివేయి",
"Markdown is disabled": "మార్క్డౌన్ నిలిపివేయబడింది",
"Markdown is enabled": "మార్క్డౌన్ ప్రారంభించబడింది",
"Turn Markdown off": "మార్క్డౌన్ ఆఫ్ చెయ్యి",
@@ -270,7 +140,6 @@
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s",
"%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
"Set a display name:": "ప్రదర్శన పేరుని సెట్ చేయండి:",
- "Set a Display Name": "ప్రదర్శన పేరుని సెట్ చేయండి",
"Upload avatar": "అవతార్ను అప్లోడ్ చేయండి",
"Upload an avatar:": "అవతార్ను అప్లోడ్ చేయండి:",
"This server does not support authentication with a phone number.": "ఈ సర్వర్ ఫోన్ నంబర్తో ప్రామాణీకరణకు మద్దతు ఇవ్వదు.",
@@ -291,21 +160,14 @@
"There are no visible files in this room": "ఈ గదిలో కనిపించే ఫైల్లు లేవు",
"Connectivity to the server has been lost.": "సెర్వెర్ కనెక్టివిటీని కోల్పోయారు.",
"Sent messages will be stored until your connection has returned.": "మీ కనెక్షన్ తిరిగి వచ్చే వరకు పంపిన సందేశాలు నిల్వ చేయబడతాయి.",
- "Auto-complete": "ఆటో-పూర్తి",
"Cancel": "రద్దు",
"Resend all or cancel all now. You can also select individual messages to resend or cancel.": "అన్నీ మళ్లీ పంపులేదాఅన్నింటినీ రద్దు చేయండిప్పుడు.వ్యక్తిగత సందేశాలను మీరు మళ్ళీ చేసుకోవచ్చు లేదా రద్దు చేసుకోవచ్చు.",
- "Monday": "సోమవారం",
- "Tuesday": "మంగళవారం",
- "Wednesday": "బుధవారం",
- "Thursday": "గురువారం",
- "Saturday": "శనివారం",
- "Sunday": "ఆదివారం",
"bold": "బోల్డ్",
"italic": "ఇటాలిక్",
"strike": "సమ్మె",
"underline": "అండర్లైన్",
"Enter Code": "కోడ్ వ్రాయండి",
- "Failed to forget room %(errCode)s": "గది %(errCode)s మర్చిపోవడంలో విఫలమైంది",
+ "Failed to forget room %(errCode)s": "గది మర్చిపోవడం విఫలమైంది %(errCode)s",
"Incorrect verification code": "ధృవీకరణ కోడ్ సరిగా లెదు",
"unknown error code": "తెలియని కోడ్ లోపం",
"code": "కోడ్",
@@ -315,25 +177,20 @@
"riot-web version:": "రయట్-వెబ్ సంస్కరణ:",
"Riot was not given permission to send notifications - please try again": "రయట్ కు ప్రకటనలను పంపడానికి అనుమతి లేదు - దయచేసి మళ్ళీ ప్రయత్నించండి",
"Return to app": "అనువర్తనానికి తిరిగి వెళ్ళు",
- "restore": "పునరుద్దరించండి",
"to restore": "పునరుద్ధరించడానికి",
- "Unable to restore previous session": "మునుపటి సెషన్ను పునరుద్ధరించడానికి సాధ్యపడలేదు",
"Unable to restore session": "సెషన్ను పునరుద్ధరించడానికి సాధ్యపడలేదు",
"Report it": "దానిని నివేదించండి",
"Remove": "తొలగించు",
"Room directory": "గది వివరము",
"Create new room": "క్రొత్త గది సృష్టించండి",
"Custom Server Options": "మలచిన సేవిక ఎంపికలు",
- "Direct Chat": "ప్రత్యక్ష మాటామంతి",
"Dismiss": "రద్దుచేసే",
"Drop here %(toAction)s": "ఇక్కడ వదలండి %(toAction)s",
"Error": "లోపం",
- "Failed to join the room": "గదిలో చేరడం విఫలమైంది",
"Favourite": "గుర్తుంచు",
"Mute": "నిశబ్ధము",
- "Notifications": "తాఖీదు",
+ "Notifications": "ప్రకటనలు",
"Operation failed": "కార్యం విఫలమైంది",
"Search": "శోధన",
- "Settings": "అమరికలు",
- "Welcome page": "స్వాగత పేజీ"
+ "Settings": "అమరికలు"
}
diff --git a/src/i18n/strings/th.json b/src/i18n/strings/th.json
index 01ffa729d7..2cdf7f20a8 100644
--- a/src/i18n/strings/th.json
+++ b/src/i18n/strings/th.json
@@ -1,21 +1,10 @@
{
- "de": "เยอร์มัน",
- "en-us": "อังกฤษ (สหรัฐอเมริกา)",
- "en": "อังกฤษ",
- "en-ca": "อังกฤษ(แคนาดา)",
- "ja": "ญี่ปุ่น",
- "fr": "ฝรั่งเศส",
- "ko": "เกาหลี",
- "th": "ไทย",
- "vi": "เวียดนาม",
- "accept": "ยอมรับ",
"Account": "บัญชี",
"Add phone number": "เพิ่มหมายเลขโทรศัพท์",
"Microphone": "ไมโครโฟน",
"No Microphones detected": "ไม่พบไมโครโฟน",
"Camera": "กล้อง",
"Advanced": "ขึ้นสูง",
- "and": "และ",
"Ban": "แบน",
"Bug Report": "รายงานจุดบกพร่อง",
"Change Password": "เปลี่ยนรหัสผ่าน",
@@ -30,14 +19,12 @@
"Device ID:": "ID อุปกรณ์:",
"device id: ": "id อุปกรณ์: ",
"Devices": "อุปกรณ์",
- "Direct Chat": "แชทโดยตรง",
"Download %(text)s": "ดาวน์โหลด %(text)s",
"Emoji": "อีโมจิ",
"Enable encryption": "เปิดใช้งานการเข้ารหัส",
"enabled": "เปิดใช้งานแล้ว",
"Error": "ข้อผิดพลาด",
"Found a bug?": "พบจุดบกพร่อง?",
- "is a": "เป็น",
"%(displayName)s is typing": "%(displayName)s กำลังพิมพ์",
"Kick": "เตะ",
"Low priority": "ความสำคัญต่ำ",
@@ -49,7 +36,6 @@
"OK": "ตกลง",
"Password": "รหัสผ่าน",
"Password:": "รหัสผ่าน:",
- "Please Register": "กรุณาลงทะเบียน",
"Profile": "โปรไฟล์",
"Reason": "เหตุผล",
"Register": "ลงทะเบียน",
@@ -65,18 +51,10 @@
"Search": "ค้นหา",
"Settings": "การตั้งค่า",
"unknown error code": "รหัสข้อผิดพลาดที่ไม่รู้จัก",
- "Sunday": "วันอาทิตย์",
- "Monday": "วันจันทร์",
- "Tuesday": "วันอังคาร",
- "Wednesday": "วันพุธ",
- "Thursday": "วันพฤหัสบดี",
- "Friday": "วันศุกร์",
- "Saturday": "วันเสาร์",
"olm version:": "เวอร์ชัน olm:",
"Report it": "รายงานเลย",
"Remove": "ลบ",
"Custom Server Options": "กำหนดเซิร์ฟเวอร์เอง",
- "Failed to join the room": "การเข้าร่วมห้องล้มเหลว",
"Drop here %(toAction)s": "ปล่อยที่นี่%(toAction)s",
"Favourite": "รายการโปรด",
"Failed to forget room %(errCode)s": "การลืมห้องล้มเหลว %(errCode)s",
@@ -91,22 +69,14 @@
"Algorithm": "อัลกอริทึม",
"Hide removed messages": "ซ่อนข้อความที่ถูกลบแล้ว",
"Authentication": "การยืนยันตัวตน",
- "all room members": "สมาชิกทั้งหมด",
- "all room members, from the point they are invited": "สมาชิกทั้งหมด นับตั้งแต่เมื่อได้รับคำเชิญ",
- "all room members, from the point they joined": "สมาชิกทั้งหมด นับตั้งแต่เมื่อเข้าร่วมห้อง",
- "an address": "ที่อยู่",
"%(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": "และอีกหนึ่งผู้ใช้..."
- },
+ "and %(count)s others...|one": "และอีกหนึ่งผู้ใช้...",
+ "and %(count)s others...|other": "และอีก %(count)s ผู้ใช้...",
"%(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 คนกำลังพิมพ์",
"%(senderName)s answered the call.": "%(senderName)s รับสายแล้ว",
- "anyone": "ทุกคน",
"An error has occurred.": "เกิดข้อผิดพลาด",
"Anyone": "ทุกคน",
"Anyone who knows the room's link, apart from guests": "ทุกคนที่มีลิงก์ ยกเว้นแขก",
@@ -126,10 +96,8 @@
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s เปลี่ยนชื่อห้องไปเป็น %(roomName)s",
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s ลบชื่อห้อง",
"Changes your display nickname": "เปลี่ยนชื่อเล่นที่แสดงของคุณ",
- "changing room on a RoomView is not supported": "ไม่รองรับการเปลี่ยนห้องใน RoomView",
"Clear Cache and Reload": "ล้างแคชแล้วโหลดใหม่",
"Clear Cache": "ล้างแคช",
- "Click here": "คลิกที่นี่",
"Click here to fix": "คลิกที่นี่เพื่อแก้ไข",
"Click to mute audio": "คลิกที่นี่เพื่อปิดเสียง",
"Click to mute video": "คลิกที่นี่เพื่อปิดกล้อง",
@@ -151,9 +119,7 @@
"/ddg is not a command": "/ddg ไม่ใช่คำสั่ง",
"Deactivate Account": "ปิดการใช้งานบัญชี",
"Deactivate my account": "ปิดการใช้งานบัญชีของฉัน",
- "decline": "ปฏิเสธ",
"Decryption error": "การถอดรหัสผิดพลาด",
- "demote": "ลดขั้น",
"Device already verified!": "ยืนยันอุปกรณ์แล้ว!",
"Device key:": "Key อุปกรณ์:",
"Devices will not yet be able to decrypt history from before they joined the room": "อุปกรณ์จะยังไม่สามารถถอดรหัสประวัติแชทก่อนจะเข้าร่วมห้องได้",
@@ -180,7 +146,6 @@
"Failed to kick": "การเตะล้มเหลว",
"Failed to leave room": "การออกจากห้องล้มเหลว",
"Failed to lookup current room": "การหาห้องปัจจุบันล้มเหลว",
- "Failed to register as guest:": "การลงทะเบียนในฐานะแขกล้มเหลว:",
"Failed to reject invite": "การปฏิเสธคำเชิญล้มเหลว",
"Failed to reject invitation": "การปฏิเสธคำเชิญล้มเหลว",
"Failed to save settings": "การบันทึกการตั้งค่าล้มเหลว",
@@ -192,13 +157,11 @@
"Failed to upload file": "การอัปโหลดไฟล์ล้มเหลว",
"Failed to verify email address: make sure you clicked the link in the email": "การยืนยันอีเมลล้มเหลว: กรุณาตรวจสอบว่าคุณคลิกลิงก์ในอีเมลแล้ว",
"Failure to create room": "การสร้างห้องล้มเหลว",
- "favourite": "รายการโปรด",
"Favourites": "รายการโปรด",
"Filter room members": "กรองสมาชิกห้อง",
"Forget room": "ลืมห้อง",
"Forgot your password?": "ลิมรหัสผ่าน?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s จาก %(fromPowerLevel)s ไปเป็น %(toPowerLevel)s",
- "had": "เคยมี",
"Hangup": "วางสาย",
"Historical": "ประวัติแชทเก่า",
"Homeserver is": "เซิร์ฟเวอร์บ้านคือ",
@@ -221,15 +184,11 @@
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' ไม่ใช่รูปแบบที่ถูกต้องสำหรับนามแฝง",
"Sign in with": "เข้าสู่ระบบด้วย",
"Join Room": "เข้าร่วมห้อง",
- "joined and left": "เข้าร่วมแล้วออกจากห้อง",
- "joined": "เข้าร่วมแล้ว",
"%(targetName)s joined the room.": "%(targetName)s เข้าร่วมห้องแล้ว",
"Jump to first unread message.": "ข้ามไปยังข้อความแรกที่ยังไม่ได้อ่าน",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s เตะ %(targetName)s แล้ว",
"Labs": "ห้องทดลอง",
"Leave room": "ออกจากห้อง",
- "left and rejoined": "ออกแล้วกลับเข้าร่วมอีกครั้ง",
- "left": "ออกไปแล้ว",
"%(targetName)s left the room.": "%(targetName)s ออกจากห้องแล้ว",
"Logged in as:": "เข้าสู่ระบบในชื่อ:",
"Login as guest": "เข้าสู่ระบบในฐานะแขก",
@@ -238,7 +197,6 @@
"Markdown is enabled": "เปิดใช้งาน Markdown แล้ว",
"Missing user_id in request": "ไม่พบ user_id ในคำขอ",
"Moderator": "ผู้ช่วยดูแล",
- "my Matrix ID": "Matrix ID ของฉัน",
"New address (e.g. #foo:%(localDomain)s)": "ที่อยู่ใหม่ (เช่น #foo:%(localDomain)s)",
"New password": "รหัสผ่านใหม่",
"New passwords don't match": "รหัสผ่านใหม่ไม่ตรงกัน",
@@ -251,7 +209,7 @@
"NOT verified": "ยังไม่ได้ยืนยัน",
"No more results": "ไม่มีผลลัพธ์อื่น",
"No results": "ไม่มีผลลัพธ์",
- "Once you've followed the link it contains, click below": "หลังจากคุณเปิดลิงก์ข้างในแล้ว คลิกข้างล่าง",
+ "Once you've followed the link it contains, click below": "หลังจากคุณเปิดลิงก์ข้างในแล้ว คลิกข้างล่าง",
"Passwords can't be empty": "รหัสผ่านต้องไม่ว่าง",
"People": "บุคคล",
"Permissions": "สิทธิ์",
@@ -262,13 +220,11 @@
"Privileged Users": "ผู้ใช้ที่มีสิทธิพิเศษ",
"Revoke Moderator": "เพิกถอนผู้ช่วยดูแล",
"Refer a friend to Riot:": "แนะนำเพื่อนให้รู้จัก Riot:",
- "rejected": "ปฏิเสธแล้ว",
"%(targetName)s rejected the invitation.": "%(targetName)s ปฏิเสธคำเชิญแล้ว",
"Reject invitation": "ปฏิเสธคำเชิญ",
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s ลบชื่อที่แสดงแล้ว (%(oldDisplayName)s)",
"%(senderName)s removed their profile picture.": "%(senderName)s ลบรูปโปรไฟล์ของเขาแล้ว",
"Remove %(threePid)s?": "ลบ %(threePid)s?",
- "restore": "กู้คืน",
"Return to login screen": "กลับไปยังหน้าลงชื่อเข้าใช้",
"Riot does not have permission to send you notifications - please check your browser settings": "Riot ไม่มีสิทธิ์ส่งการแจ้งเตือน - กรุณาตรวจสอบการตั้งค่าเบราว์เซอร์ของคุณ",
"Riot was not given permission to send notifications - please try again": "Riot ไม่ได้รับสิทธิ์ส่งการแจ้งเตือน - กรุณาลองใหม่อีกครั้ง",
@@ -306,8 +262,6 @@
"Start Chat": "เริ่มแชท",
"Submit": "ส่ง",
"Success": "สำเร็จ",
- "tag as %(tagName)s": "แท็กว่า %(tagName)s",
- "tag direct chat": "แท็กว่าแชทตรง",
"Tagged as: ": "แท็กไว้ว่า: ",
"The main address for this room is": "ที่อยู่หลักของห้องนี้คือ",
"This email address is already in use": "ที่อยู่อีเมลถูกใช้แล้ว",
@@ -315,12 +269,9 @@
"%(actionVerb)s this person?": "%(actionVerb)s บุคคลนี้?",
"The file '%(fileName)s' failed to upload": "การอัปโหลดไฟล์ '%(fileName)s' ล้มเหลว",
"This Home Server does not support login using email address.": "เซิร์ฟเวอร์บ้านนี้ไม่รองรับการลงชื่อเข้าใช้ด้วยที่อยู่อีเมล",
- "There was a problem logging in.": "มีปัญหาในการลงชื่อเข้าใช้",
- "this invitation?": "คำเชิญนี้?",
"This is a preview of this room. Room interactions have been disabled": "นี่คือตัวอย่างของห้อง การตอบสนองภายในห้องถูกปิดใช้งาน",
"This phone number is already in use": "หมายเลขโทรศัพท์นี้ถูกใช้งานแล้ว",
"This room's internal ID is": "ID ภายในของห้องนี้คือ",
- "times": "ครั้ง",
"%(oneUser)schanged their name": "%(oneUser)sเปลี่ยนชื่อของเขาแล้ว",
"%(severalUsers)schanged their name %(repeats)s times": "%(severalUsers)sเปลี่ยนชื่อของพวกเขา %(repeats)s ครั้ง",
"%(oneUser)schanged their name %(repeats)s times": "%(oneUser)sเปลี่ยนชื่อของเขา %(repeats)s ครั้ง",
@@ -328,12 +279,10 @@
"Create new room": "สร้างห้องใหม่",
"Room directory": "ไดเรกทอรีห้อง",
"Start chat": "เริ่มแชท",
- "Welcome page": "หน้าต้อนรับ",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "ไม่สามารถเชื่อมต่อไปยังเซิร์ฟเวอร์บ้านผ่านทาง HTTP ได้เนื่องจาก URL ที่อยู่บนเบราว์เซอร์เป็น HTTPS กรุณาใช้ HTTPS หรือเปิดใช้งานสคริปต์ที่ไม่ปลอดภัย.",
- "%(count)s new messages.one": "มี %(count)s ข้อความใหม่",
- "%(count)s new messages.other": "มี %(count)s ข้อความใหม่",
+ "%(count)s new messages|one": "มี %(count)s ข้อความใหม่",
+ "%(count)s new messages|other": "มี %(count)s ข้อความใหม่",
"Disable inline URL previews by default": "ตั้งค่าเริ่มต้นให้ไม่แสดงตัวอย่าง URL ในแชท",
- "Disable markdown formatting": "ปิดใช้งานการจัดรูปแบบ markdown",
"End-to-end encryption information": "ข้อมูลการเข้ารหัสจากปลายทางถึงปลายทาง",
"End-to-end encryption is in beta and may not be reliable": "การเข้ารหัสจากปลายทางถึงปลายทางยังอยู่ในเบต้า และอาจพึ่งพาไม่ได้",
"Error: Problem communicating with the given homeserver.": "ข้อผิดพลาด: มีปัญหาในการติดต่อกับเซิร์ฟเวอร์บ้านที่กำหนด",
@@ -346,9 +295,6 @@
"The phone number entered looks invalid": "ดูเหมือนว่าหมายเลขโทรศัพท์ที่กรอกรมาไม่ถูกต้อง",
"The email address linked to your account must be entered.": "กรุณากรอกที่อยู่อีเมลที่เชื่อมกับบัญชีของคุณ",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "ไฟล์ '%(fileName)s' มีขนาดใหญ่เกินจำกัดของเซิร์ฟเวอร์บ้าน",
- "To send messages": "เพื่อส่งข้อความ",
- "to start a chat with someone": "เพื่อเริ่มแชทกับผู้อื่น",
- "to tag as %(tagName)s": "เพื่อแท็กว่า %(tagName)s",
"to tag direct chat": "เพื่อแทกว่าแชทตรง",
"Turn Markdown off": "ปิด markdown",
"Turn Markdown on": "เปิด markdown",
@@ -365,12 +311,11 @@
"unknown device": "อุปกรณ์ที่ไม่รู้จัก",
"Unknown room %(roomId)s": "ห้องที่ไม่รู้จัก %(roomId)s",
"Unknown (user, device) pair:": "คู่ (ผู้ใช้, อุปกรณ์) ที่ไม่รู้จัก:",
- "unknown": "ไม่รู้จัก",
"Unrecognised command:": "คำสั่งที่ไม่รู้จัก:",
"Unrecognised room alias:": "นามแฝงห้องที่ไม่รู้จัก:",
- "Uploading %(filename)s and %(count)s others.zero": "กำลังอัปโหลด %(filename)s",
- "Uploading %(filename)s and %(count)s others.one": "กำลังอัปโหลด %(filename)s และอีก %(count)s ไฟล์",
- "Uploading %(filename)s and %(count)s others.other": "กำลังอัปโหลด %(filename)s และอีก %(count)s ไฟล์",
+ "Uploading %(filename)s and %(count)s others|zero": "กำลังอัปโหลด %(filename)s",
+ "Uploading %(filename)s and %(count)s others|one": "กำลังอัปโหลด %(filename)s และอีก %(count)s ไฟล์",
+ "Uploading %(filename)s and %(count)s others|other": "กำลังอัปโหลด %(filename)s และอีก %(count)s ไฟล์",
"uploaded a file": "อัปโหลดไฟล์",
"Upload Failed": "การอัปโหลดล้มเหลว",
"Upload Files": "อัปโหลดไฟล์",
@@ -385,11 +330,9 @@
"Who can read history?": "ใครสามารถอ่านประวัติแชทได้?",
"Who would you like to add to this room?": "คุณต้องการเพิ่มใครเข้าห้องนี้?",
"Who would you like to communicate with?": "คุณต้องการคุยกับใคร?",
- "You're not in any rooms yet! Press": "คุณยังไม่ได้อยู่ในห้องใดเลย! กด",
"You are trying to access %(roomName)s.": "คุณกำลังพยายามเข้าสู่ %(roomName)s",
"You have disabled URL previews by default.": "ค่าเริ่มต้นของคุณปิดใช้งานตัวอย่าง URL เอาไว้",
"You have enabled URL previews by default.": "ค่าเริ่มต้นของคุณเปิดใช้งานตัวอย่าง URL เอาไว้",
- "you must be a": "คุณต้องเป็น",
"You must register to use this functionality": "คุณต้องลงทะเบียนเพื่อใช้ฟังก์ชันนี้",
"You need to be logged in.": "คุณต้องเข้าสู่ระบบก่อน",
"You need to enter a user name.": "คุณต้องกรอกชื่อผู้ใช้ก่อน",
@@ -418,20 +361,16 @@
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s %(day)s %(monthName)s %(fullYear)s %(time)s",
"%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
"Set a display name:": "ตั้งชื่อที่แสดง:",
- "Set a Display Name": "ตั้งชื่อที่แสดง",
"Passwords don't match.": "รหัสผ่านไม่ตรงกัน",
"Password too short (min %(MIN_PASSWORD_LENGTH)s).": "รหัสผ่านสั้นเกินไป (ขึ้นต่ำ %(MIN_PASSWORD_LENGTH)s ตัวอักษร)",
"An unknown error occurred.": "เกิดข้อผิดพลาดที่ไม่รู้จัก",
"I already have an account": "ฉันมีบัญชีอยู่แล้ว",
- "An error occured: %(error_string)s": "เกิดข้อผิดพลาด: %(error_string)s",
"Topic": "หัวข้อ",
"Make Moderator": "เลื่อนขั้นเป็นผู้ช่วยดูแล",
"Make this room private": "ทำให้ห้องนี้เป็นส่วนตัว",
"Share message history with new users": "แบ่งประวัติแชทให้ผู้ใช้ใหม่",
"Encrypt room": "เข้ารหัสห้อง",
"Room": "ห้อง",
- "(~%(searchCount)s results)": "(~%(searchCount)s ผลลัพธ์)",
- "or": "หรือ",
"bold": "หนา",
"italic": "เอียง",
"strike": "ขีดทับ",
@@ -469,122 +408,14 @@
"This allows you to use this app with an existing Matrix account on a different home server.": "ทั้งนี่เพื่อให้คุณสามารถใช้ Riot กับบัญชี Matrix ที่มีอยู่แล้วบนเซิร์ฟเวอร์บ้านอื่น ๆ ได้",
"You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "คุณอาจเลือกเซิร์ฟเวอร์ระบุตัวตนเองด้วยก็ได้ แต่คุณจะไม่สามารถเชิญผู้ใช้อื่นด้วยที่อยู่อีเมล หรือรับคำเชิญจากผู้ใช้อื่นทางที่อยู่อีเมลได้",
"Default server": "เซิร์ฟเวอร์เริ่มต้น",
- "Custom server": "เซิร์ฟเวอร์ที่กำหนดเอง",
+ "Custom server": "กำหนดเซิร์ฟเวอร์เอง",
"Home server URL": "URL เซิร์ฟเวอร์บ้าน",
"Identity server URL": "URL เซิร์ฟเวอร์ระบุตัวตน",
"%(severalUsers)sleft %(repeats)s times": "%(severalUsers)sออกจากห้อง %(repeats)s ครั้ง",
"%(oneUser)sleft %(repeats)s times": "%(oneUser)sออกจากห้อง %(repeats)s ครั้ง",
"%(severalUsers)sleft": "%(severalUsers)sออกจากห้องแล้ว",
"%(oneUser)sleft": "%(oneUser)sออกจากห้องแล้ว",
- "el": "กรีก",
- "en-au": "อังกฤษ (ออสเตรเลีย)",
- "en-bz": "อังกฤษ (เบลีซ)",
- "en-gb": "อังกฤษ (สหราชอาณาจักร)",
- "en-nz": "อังกฤษ (นิวซีแลนด์)",
- "en-jm": "อังกฤษ (จาเมกา)",
- "en-ie": "อังกฤษ (ไอร์แลนด์)",
- "en-tt": "อังกฤษ (ตรินิแดด)",
- "af": "แอฟริกาใต้",
- "ar-ae": "อาหรับ (สหรัฐอาหรับเอมิเรตส์)",
- "ar-bh": "อาหรับ (บาห์เรน)",
- "ar-dz": "อาหรับ (แอลจีเรีย)",
- "ar-eg": "อาหรับ (อียิปต์)",
- "ar-iq": "อาหรับ (อิรัก)",
- "ar-jo": "อาหรับ (จอร์แดน)",
- "ar-kw": "อาหรับ (คูเวต)",
- "ar-lb": "อาหรับ (เลบานอน)",
- "ar-ly": "อาหรับ (ลิเบีย)",
- "ar-ma": "อาหรับ (โมร็อกโก)",
- "ar-om": "อาหรับ (โอมาน)",
- "ar-qa": "อาหรับ (กาตาร์)",
- "ar-sa": "อาหรับ (ซาอุดีอาระเบีย)",
- "ar-sy": "อาหรับ (ซีเรีย)",
- "ar-tn": "อาหรับ (ตูนิเซีย)",
- "ar-ye": "อาหรับ (เยเมน)",
- "be": "เบลารุส",
- "bg": "บัลแกเรีย",
- "ca": "คาตาลัน",
- "cs": "สาธารณรัฐเช็ก",
- "da": "เดนมาร์ก",
- "de-at": "เยอรมัน (ออสเตรีย)",
- "de-ch": "เยอรมัน (สวิสเซอร์แลนด์)",
- "de-lu": "เยอรมัน (ลักเซมเบิร์ก)",
- "en-za": "อังกฤษ (แอฟริกาใต้)",
- "es-ar": "สเปน (อาร์เจนตินา)",
- "es-bo": "สเปน (โบลิเวีย)",
- "es-cl": "สเปน (ชิลี)",
- "es-co": "สเปน (โคลัมเบีย)",
- "es-cr": "สเปน (คอสตาริกา)",
- "es-do": "สเปน (สาธารณรัฐโดมินิกัน)",
- "zu": "สูลู",
- "zh-tw": "จีน (ไต้หวัน)",
- "zh-sg": "จีน (สิงคโปร์)",
- "zh-hk": "จีน (ฮ่องกง)",
- "xh": "โซซา",
- "ve": "เวนดา",
- "ur": "อูรดู",
- "uk": "ยูเครน",
- "ts": "ซองก้า",
- "tr": "ตุรกี",
- "tn": "ซวานา",
- "sv": "สวีเดน",
- "sv-fi": "สวีเดน (ฟินแลนด์)",
- "sr": "เซอร์เบีย",
- "sq": "แอลเบเนีย",
- "sl": "สโลเวเนีย",
- "sk": "สโลวาเกีย",
- "sb": "ซอร์เบีย",
- "ru": "รัสเซีย",
- "ru-mo": "รัสเซีย (สาธารณรัฐมอลโดวา)",
- "ro": "โรมาเนีย",
- "ro-mo": "โรมาเนีย (สาธารณรัฐมอลโดวา)",
- "pt": "โปรตุเกส",
- "pt-br": "โปรตุเกส (บราซิล)",
- "pl": "โปแลนด์",
- "no": "นอร์เวย์",
- "nl": "ดัตช์",
- "nl-be": "ดัตช์ (เบลเยียม)",
- "mt": "มอลตา",
- "ms": "มาเลเซีย",
- "lv": "ลัตเวีย",
- "lt": "ลิธัวเนีย",
- "ji": "ยิดดิช",
- "it": "อิตาลี",
- "it-ch": "อิตาลี (สวิสเซอร์แลนด์)",
- "is": "ไอซ์แลนด์",
- "id": "อินโดนีเซีย",
- "hu": "ฮังการี",
- "hr": "โครเอเชีย",
- "hi": "ฮินดู",
- "he": "อิสราเอล",
- "gd": "เกลิค (สกอตแลนด์)",
- "fr-lu": "ฝรั่งเศส (ลักเซมเบิร์ก)",
- "fr-ca": "ฝรั่งเศส (แคนาดา)",
- "fr-ch": "ฝรั่งเศส (สวิสเซอร์แลนด์)",
- "fr-be": "ฝรั่งเศส (เบลเยี่ยม)",
- "fo": "แฟโร",
- "fi": "ฟินแลนด์",
- "fa": "ฟาร์ซิ",
- "et": "เอสโตเนีย",
- "es-ve": "สเปน (เวเนซุเอลา)",
- "es-uy": "สเปน (อุรุกวัย)",
- "es-sv": "สเปน (เอลซัลวาดอร์)",
- "es": "สเปน (สเปน)",
- "es-py": "สเปน (ปารากวัย)",
- "es-pr": "สเปน (เปอร์โตริโก)",
- "es-pe": "สเปน (เปรู)",
- "es-pa": "สเปน (ปานามา)",
- "es-ni": "สเปน (นิการากัว)",
- "es-mx": "สเปน (เม็กซิโก)",
- "es-hn": "สเปน (ฮอนดูรัส)",
- "es-gt": "สเปน (กัวเตมาลา)",
- "es-ec": "สเปน (เอกวาดอร์)",
"Add": "เพิ่ม",
- "de-li": "เยอรมัน (ลิกเตนสไตน์)",
- "eu": "บาสก์ (บาสก์)",
- "ga": "ไอร์แลนด์",
- "zh-cn": "จีน (สาธารณรัฐประชาชนจีน)",
- "mk": "มาซิโดเนีย (อดีตสาธารณรัฐยูโกสลาฟมาซิโดเนีย)",
"a room": "ห้อง",
"Accept": "ยอมรับ",
"VoIP": "VoIP",
@@ -594,14 +425,11 @@
"Home": "เมนูหลัก",
"Last seen": "เห็นครั้งสุดท้าย",
"Rejoin": "กลับเข้าร่วม",
- "Set": "ตั้ง",
"This room": "ห้องนี้",
"Unnamed Room": "ห้องที่ยังไม่ได้ตั้งชื่อ",
"%(user)s is a": "%(user)s เป็น",
- "(~%(count)s results).one": "(~%(count)s ผลลัพท์)",
- "(~%(count)s results).other": "(~%(count)s ผลลัพท์)",
- "Admin tools": "เครื่องมือผู้ดูแล",
- "And %(count)s more...": "เพิ่มอีก %(count)s ชิ้น...",
+ "(~%(count)s results)|one": "(~%(count)s ผลลัพท์)",
+ "(~%(count)s results)|other": "(~%(count)s ผลลัพท์)",
"Missing Media Permissions, click here to request.": "ไม่มีสิทธิ์เข้าถึงสื่อ, คลิกที่นี่เพื่อขอสิทธิ์",
"Alias (optional)": "นามแฝง (ไม่ใส่ก็ได้)",
"An email has been sent to": "ส่งอีเมลไปแล้วถึง",
@@ -610,7 +438,6 @@
"Drop File Here": "วางไฟล์ที่นี่",
"Enable Notifications": "เปิดใฃ้งานการแจ้งเตือน",
"Level:": "ระดับ:",
- "Press": "คลิก",
"Press to start a chat with someone": "คลิก เพื่อเริ่มแชทกับผู้อื่น",
"Private Chat": "แชทส่วนตัว",
"Public Chat": "แชทสาธารณะ",
@@ -623,13 +450,7 @@
"Otherwise, click here to send a bug report.": "หรือคลิกที่นี่เพื่อรายงานจุดบกพร่อง",
"Power level must be positive integer.": "ระดับอำนาจต้องเป็นจำนวนเต็มบวก",
"%(roomName)s does not exist.": "ไม่มีห้อง %(roomName)s อยู่จริง",
- "To ban users": "จะแบนผู้ใช้ได้",
- "To configure the room": "จะตั้งค่าห้องนี้ได้",
- "to browse the directory": "เพื่อเรียกดูไดเรกทอรี",
- "To invite users into the room": "จะเชิญผู้ใช้เข้าห้องได้",
- "To kick users": "จะเตะผู้ใช้ได้",
"To link to a room it must have an address.": "ห้องต้องมีที่อยู่ก่อน ถึงจะลิงก์ได้",
- "To remove other users' messages": "จะลบข้อความของผู้ใช้อื่นได้",
"Enter passphrase": "กรอกรหัสผ่าน",
"Seen by %(userName)s at %(dateTime)s": "%(userName)s เห็นแล้วเมื่อเวลา %(dateTime)s",
"to restore": "เพื่อกู้คืน",
@@ -645,7 +466,7 @@
"Verified": "ตรวจสอบแล้ว",
"You are already in a call.": "คุณอยู่ในสายแล้ว",
"You cannot place a call with yourself.": "คุณไม่สามารถโทรหาตัวเองได้",
- "Unverify": "ถอนการตรวสอบ",
+ "Unverify": "ถอนการตรวจสอบ",
"Verify...": "ตรวจสอบ...",
"What does this mean?": "นี่แปลว่าอะไร?",
"Error decrypting audio": "เกิดข้อผิดพลาดในการถอดรหัสเสียง",
diff --git a/src/i18n/strings/tr.json b/src/i18n/strings/tr.json
index 2933e2433b..5f1e8256ac 100644
--- a/src/i18n/strings/tr.json
+++ b/src/i18n/strings/tr.json
@@ -1,124 +1,4 @@
{
- "af": "Afrikanca (Taal)",
- "ar-ae": "Arapça (B.A.E)",
- "ar-bh": "Arapça (Bahreyn)",
- "ar-dz": "Arapça (Cezayir)",
- "ar-eg": "Arapça (Mısır)",
- "ar-iq": "Arapça (Irak)",
- "ar-jo": "Arapça (Ürdün)",
- "ar-kw": "Arapça (Kuveyt)",
- "ar-lb": "Arapça (Lübnan)",
- "ar-ly": "Arapça (Libya)",
- "ar-ma": "Arapça (Fas)",
- "ar-om": "Arapça (Umman)",
- "ar-qa": "Arapça (Katar)",
- "ar-sa": "Arapça (Suudi Arabistan)",
- "ar-sy": "Arapça (Suriye)",
- "ar-tn": "Arapça (Tunus)",
- "ar-ye": "Arapça (Yemen)",
- "be": "Beyaz Rusça",
- "bg": "Bulgarca",
- "ca": "Katalanca",
- "cs": "Çek Dili",
- "da": "Danimarkaca",
- "de-at": "Almanca (Avusturya)",
- "de-ch": "Almanca (İsviçre)",
- "de": "Almanca",
- "de-li": "Almanca (Liechtenstein)",
- "de-lu": "Almanca (Lüksemburg)",
- "el": "Yunanca",
- "en-au": "İngilizce (Avustralya)",
- "en-bz": "İngilizce (Belize)",
- "en-ca": "İngilizce (Kanada)",
- "en": "İngilizce",
- "en-gb": "İngilizce (İngiltere)",
- "en-ie": "İngilizce (İrlanda)",
- "en-jm": "İngilizce (Jamaika)",
- "en-nz": "İngilizce (Yeni Zellanda)",
- "en-tt": "İngilizce (Trinidad)",
- "en-us": "İngilizce (Amerika)",
- "en-za": "İngilizce (Güney Afrika)",
- "es-ar": "İspanyolca (Arjantin)",
- "es-bo": "İspanyolca (Bolivya)",
- "es-cl": "İspanyolca (Şili)",
- "es-co": "İspanyolca (Kolombiya)",
- "es-cr": "İspanyolca (Kosta Rika)",
- "es-do": "İspanyolca (Dominik Cumhuriyeti)",
- "es-ec": "İspanyolca (Ekvador)",
- "es-gt": "İspanyolca (Guatemala)",
- "es-hn": "İspanyolca (Honduras)",
- "es-mx": "İspanyolca (Meksika)",
- "es-ni": "İspanyolca (Nikaragua)",
- "es-pa": "İspanyolca (Panama)",
- "es-pe": "İspanyolca (Peru)",
- "es-pr": "İspanyolca (Porto Riko)",
- "es-py": "İspanyolca (Paraguay)",
- "es": "İspanyolca (İspanya)",
- "es-sv": "İspanyolca (El Salvador)",
- "es-uy": "İspanyolca (Uruguay)",
- "es-ve": "İspanyolca (Venezuela)",
- "et": "Estonya Dili",
- "eu": "Baskça",
- "fa": "Farsça",
- "fi": "Fince",
- "fo": "Faroe",
- "fr-be": "Fransızca (Belçika)",
- "fr-ca": "Fransızca (Kanada)",
- "fr-ch": "Fransızca (İsviçre)",
- "fr": "Fransızca",
- "fr-lu": "Fransızca (Lüxemburg)",
- "ga": "İrlandaca",
- "gd": "Gaelik (İskoçya)",
- "he": "İbranice",
- "hi": "Hintçe",
- "hr": "Hırvatça",
- "hu": "Macarca",
- "id": "Endonezya Dili",
- "is": "İzlandaca",
- "it-ch": "İtalyanca (İsviçre)",
- "it": "İtalyanca",
- "ja": "Japonca",
- "ji": "Eskenazi Dili",
- "ko": "Korece",
- "lt": "Litvanya Dili",
- "lv": "Letonya Dili",
- "mk": "Makedonca (FYROM)",
- "ms": "Malezyanca",
- "mt": "Malta Dili",
- "nl-be": "Hollandaca (Belçika)",
- "nl": "Hollandaca",
- "no": "Norveççe",
- "pl": "Polonya Dili",
- "pt-br": "Brezilya Portekizcesi",
- "pt": "Portekizce",
- "rm": "Reto-Latince",
- "ro-mo": "Romence (Moldova Cumhuriyeti)",
- "ro": "Romence",
- "ru-mo": "Rusça (Moldova Cumhuriyeti)",
- "ru": "Rusça",
- "sb": "Sorbca",
- "sk": "Slovakça",
- "sl": "Slovence",
- "sq": "Arnavutça",
- "sr": "Sırpça",
- "sv-fi": "İsveççe (Finlandiya)",
- "sv": "İsveççe",
- "sx": "Sutu Dili",
- "sz": "Sami Dili",
- "th": "Tayland Dili",
- "tn": "Setsvana",
- "tr": "Türkçe",
- "ts": "Tsonga Dili",
- "uk": "Ukraynaca",
- "ur": "Urduca",
- "ve": "Venda Dili",
- "vi": "Vietnam Dili",
- "xh": "Xhosa Dili",
- "zh-cn": "Çince (PRC)",
- "zh-hk": "Çince (Hong Kong)",
- "zh-sg": "Çince (Singapur)",
- "zh-tw": "Çince (Tayvan)",
- "zu": "Zulu Dili",
"a room": "bir oda",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "+%(msisdn)s 'ye bir kısa mesaj gönderildi . Lütfen içerdiği doğrulama kodunu girin",
"Accept": "Kabul Et",
@@ -132,8 +12,7 @@
"Add email address": "E-posta adresi ekle",
"Add phone number": "Telefon numarası ekle",
"Admin": "Admin",
- "Admin tools": "Admin araçları",
- "And %(count)s more...": "Ve %(count)s fazlası...",
+ "Admin Tools": "Admin araçları",
"VoIP": "VoIP",
"Missing Media Permissions, click here to request.": "Medya İzinleri Yok , talep etmek için burayı tıklayın.",
"No Microphones detected": "Hiçbir Mikrofon bulunamadı",
@@ -149,24 +28,16 @@
"Always show message timestamps": "Her zaman mesaj zaman dalgalarını (timestamps) gösterin",
"Authentication": "Doğrulama",
"Alias (optional)": "Diğer ad (isteğe bağlı)",
- "all room members": "Tüm oda üyeleri",
- "all room members, from the point they are invited": "Tüm oda üyeleri , davet edildiği noktadan",
- "all room members, from the point they joined": "Tüm oda üyeleri , katıldıkları noktalardan",
- "and": "ve",
"%(items)s and %(remaining)s others": "%(items)s ve %(remaining)s diğerleri",
"%(items)s and one other": "%(items)s ve bir başkası",
"%(items)s and %(lastItem)s": "%(items)s ve %(lastItem)s",
- "and %(count)s others...": {
- "other": "ve %(count)s diğerleri...",
- "one": "ve bir diğeri..."
- },
+ "and %(count)s others...|one": "ve bir diğeri...",
+ "and %(count)s others...|other": "ve %(count)s diğerleri...",
"%(names)s and %(lastPerson)s are typing": "%(names)s ve %(lastPerson)s yazıyorlar",
"%(names)s and one other are typing": "%(names)s ve birisi yazıyor",
- "%(names)s and %(count)s others are typing": "%(names)s ve %(count)s diğeri yazıyor",
"An email has been sent to": "Bir e-posta gönderildi",
"A new password must be entered.": "Yeni bir şifre girilmelidir.",
"%(senderName)s answered the call.": "%(senderName)s aramayı cevapladı.",
- "anyone": "herhangi biri",
"An error has occurred.": "Bir hata oluştu.",
"Anyone": "Kimse",
"Anyone who knows the room's link, apart from guests": "Misafirler dışında odanın bağlantısını bilen herkes",
@@ -197,7 +68,6 @@
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s konuyu \"%(topic)s\" olarak değiştirdi.",
"Changes to who can read history will only apply to future messages in this room": "Geçmişi kimlerin okuyabileceğine ait değişiklikler yalnızca bu odada gelecekteki iletiler için geçerli olur",
"Changes your display nickname": "Görünen takma adınızı değiştirir",
- "changing room on a RoomView is not supported": "Oda Ekranında oda değiştirme desteklenmiyor",
"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.": "Şifre değiştirme eğer oda anahtarlarınızı dışa aktarmaz ve daha sonra tekrar içe aktarmazsanız , şu anda tüm cihazlarda uçtan uca şifreleme anahtarlarını sıfırlayacak ve geçmişi okunamaz hale getirecek . Gelecekte bu geliştirilecek.",
"Claimed Ed25519 fingerprint key": "Ed25519 parmak izi anahtarı istendi",
"Clear Cache and Reload": "Önbelleği Temizle ve Yeniden Yükle",
@@ -220,8 +90,8 @@
"Confirm your new password": "Yeni Şifrenizi Onaylayın",
"Continue": "Devam Et",
"Could not connect to the integration server": "Bütünleştirme (Integration) Sunucusuna bağlanamadı",
- "%(count)s new messages.one": "%(count)s yeni mesaj",
- "%(count)s new messages.other": "%(count)s yeni mesajlar",
+ "%(count)s new messages|one": "%(count)s yeni mesaj",
+ "%(count)s new messages|other": "%(count)s yeni mesajlar",
"Create a new chat or reuse an existing one": "Yeni sohbet oluştur veya mevcut sohbetinizi tekrar kullanın",
"Create an account": "Hesap Oluştur",
"Create Room": "Oda Oluştur",
@@ -237,7 +107,6 @@
"Decrypt %(text)s": "%(text)s metninin şifresini çöz",
"Decryption error": "Şifre çözme hatası",
"Delete": "Sil",
- "demote": "Terfiyi Geri Al",
"Deops user with given id": "ID'leriyle birlikte , düşürülmüş kullanıcılar",
"Default": "Varsayılan",
"Device already verified!": "Cihaz zaten doğrulandı!",
@@ -247,12 +116,10 @@
"Device key:": "Cihaz anahtarı:",
"Devices": "Cihazlar",
"Devices will not yet be able to decrypt history from before they joined the room": "Cihazlar odaya girdiğinden önceki geçmişin şifresini çözemez",
- "Direct Chat": "Doğrudan Sohbet",
"Direct chats": "Doğrudan Sohbetler",
"Disable Notifications": "Bildirimleri Devre Dışı Bırak",
"disabled": "Devre Dışı Bırakıldı",
"Disable inline URL previews by default": "Satır için URL önizlemelerini varsayılan olarak devre dışı bırak",
- "Disable markdown formatting": "Markdown formatlamayı devre dışı bırak",
"Disinvite": "Daveti İptal Et",
"Display name": "Görünür İsim",
"Displays action": "Görünür eylem",
@@ -295,13 +162,11 @@
"Failed to fetch avatar URL": "Avatar URL'i alınamadı",
"Failed to forget room %(errCode)s": "Oda unutulması başarısız oldu %(errCode)s",
"Failed to join room": "Odaya girme hatası",
- "Failed to join the room": "Odaya girme başarısız oldu",
"Failed to kick": "Atma(Kick) işlemi başarısız oldu",
"Failed to leave room": "Odadan ayrılma başarısız oldu",
"Failed to load timeline position": "Zaman çizelgesi konumu yüklenemedi",
"Failed to lookup current room": "Geçerli odayı aramak başarısız oldu",
"Failed to mute user": "Kullanıcıyı sessize almak başarısız oldu",
- "Failed to register as guest:": "Misafir olarak kayıt yapılamadı :",
"Failed to reject invite": "Daveti reddetme başarısız oldu",
"Failed to reject invitation": "Davetiyeyi reddetme başarısız oldu",
"Failed to save settings": "Ayarlar kaydetme başarısız oldu",
@@ -317,7 +182,6 @@
"Failed to verify email address: make sure you clicked the link in the email": "E-posta adresini doğrulama başarısız : e-postadaki bağlantıya tıkladığınızdan emin olun",
"Failure to create room": "Oda oluşturulamadı",
"Favourite": "Favori",
- "favourite": "favori",
"Favourites": "Favoriler",
"Fill screen": "Ekranı Doldur",
"Filter room members": "Oda üyelerini Filtrele",
@@ -328,12 +192,7 @@
"Found a bug?": "Hata buldunuz mu ?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s %(fromPowerLevel)s den %(toPowerLevel)s ' ye",
"Guest access is disabled on this Home Server.": "Misafir erişimi bu Ana Sunucu için devre dışı.",
- "Guests can't set avatars. Please register.": "Misafirler Avatarlarını ayarlayamazlar . Lütfen kayıt olun.",
- "Guest users can't create new rooms. Please register to create room and start a chat.": "Misafir kullanıcılar yeni oda oluşturamazlar. Yeni oda oluşturmak ve sohbet başlatmak için lütfen kayıt olun.",
- "Guest users can't upload files. Please register to upload.": "Misafir kullanıcılar dosya yükleyemezler . Lütfen yüklemek için kayıt olun.",
- "Guests can't use labs features. Please register.": "Misafirler laboratuar özelliklerini kullanamazlar . Lütfen kayıt olun.",
"Guests cannot join this room even if explicitly invited.": "Misafirler açıkca davet edilseler bile bu odaya katılamazlar.",
- "had": "vardı",
"Hangup": "Sorun",
"Hide read receipts": "Okundu bilgilerini gizle",
"Hide Text Formatting Toolbar": "Metin Biçimlendirme Araç Çubuğunu Gizle",
@@ -365,8 +224,6 @@
"Sign in with": "Şununla giriş yap",
"Join as voice or video.": " ses veya video olarak katılın.",
"Join Room": "Odaya Katıl",
- "joined and left": "katıldı ve ayrıldı",
- "joined": "katıldı",
"%(targetName)s joined the room.": "%(targetName)s odaya katıldı.",
"Joins room with given alias": "Verilen takma ad (nick name) ile odaya katıl",
"Jump to first unread message.": "İlk okunmamış iletiye atla.",
@@ -376,8 +233,6 @@
"Labs": "Laboratuarlar",
"Last seen": "Son görülme",
"Leave room": "Odadan ayrıl",
- "left and rejoined": "ayrıldı ve yeniden katıldı",
- "left": "ayrıldı",
"%(targetName)s left the room.": "%(targetName)s odadan ayrıldı.",
"Level:": "Seviye :",
"Local addresses for this room:": "Bu oda için yerel adresler :",
@@ -385,7 +240,11 @@
"Login as guest": "Misafir olarak giriş yaptı",
"Logout": "Çıkış Yap",
"Low priority": "Düşük öncelikli",
- "%(senderName)s made future room history visible to": "%(senderName)s gelecekte oda geçmişini görünür yaptı",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s gelecekte oda geçmişini görünür yaptı Tüm oda üyeleri , davet edildiği noktadan.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s gelecekte oda geçmişini görünür yaptı Tüm oda üyeleri , katıldıkları noktalardan.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s gelecekte oda geçmişini görünür yaptı Tüm oda üyeleri.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s gelecekte oda geçmişini görünür yaptı herhangi biri.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s gelecekte oda geçmişini görünür yaptı bilinmeyen (%(visibility)s).",
"Manage Integrations": "Entegrasyonları Yönet",
"Markdown is disabled": "Markdown devre dışı",
"Markdown is enabled": "Markdown aktif",
@@ -399,13 +258,10 @@
"Moderator": "Moderatör",
"Must be viewing a room": "Bir oda görüntülemeli olmalı",
"Mute": "Sessiz",
- "my Matrix ID": "Benim Matrix ID'm",
"Name": "İsim",
"Never send encrypted messages to unverified devices from this device": "Bu cihazdan doğrulanmamış cihazlara asla şifrelenmiş mesajlar göndermeyin",
- "Never send encrypted messages to unverified devices in this room": "Bu odada doğrulanmamış cihazlara asla şifreli mesajlar göndermeyin",
"Never send encrypted messages to unverified devices in this room from this device": "Bu odada bu cihazdan doğrulanmamış cihazlara asla şifrelenmiş mesajlar göndermeyin",
"New address (e.g. #foo:%(localDomain)s)": "Yeni adres (e.g. #foo:%(localDomain)s)",
- "New Composer & Autocomplete": "Yeni Besteci & Otomatik Tamamlama",
"New password": "Yeni Şifre",
"New passwords don't match": "Yeni şifreler uyuşmuyor",
"New passwords must match each other.": "Yeni şifreler birbirleriyle eşleşmelidir.",
@@ -424,7 +280,7 @@
"OK": "Tamam",
"olm version:": "olm versiyon:",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "Bu oda için şifreleme etkinleştirildikten sonra tekrar kapatılamaz (şimdilik)",
- "Once you've followed the link it contains, click below": "Bir kere ' içerdiği bağlantıyı takip ettikten sonra , aşağıya tıklayın",
+ "Once you've followed the link it contains, click below": "Bir kere ' içerdiği bağlantıyı takip ettikten sonra , aşağıya tıklayın",
"Only people who have been invited": "Sadece davet edilmiş insanlar",
"Operation failed": "Operasyon başarısız oldu",
"Otherwise, click here to send a bug report.": "Aksi taktirde , bir hata raporu göndermek için buraya tıklayın .",
@@ -436,9 +292,7 @@
"Phone": "Telefon",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s bir %(callType)s çağrısı yerleştirdi.",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Lütfen e-postanızı kontrol edin ve içerdiği bağlantıya tıklayın . Bu işlem tamamlandıktan sonra , 'devam et' e tıklayın .",
- "Please Register": "Lütfen Kaydolun",
"Power level must be positive integer.": "Güç seviyesi pozitif tamsayı olmalıdır.",
- "Press": "Basın",
"Press to start a chat with someone": "Birisiyle sohbet başlatmak için tuşuna basın",
"Privacy warning": "Gizlilik uyarısı",
"Private Chat": "Özel Sohbet",
@@ -450,7 +304,6 @@
"Revoke Moderator": "Moderatörü İptal Et",
"Refer a friend to Riot:": "Riot'tan bir arkadaşa bakın :",
"Register": "Kaydolun",
- "rejected": "reddedildi",
"%(targetName)s rejected the invitation.": "%(targetName)s daveti reddetti.",
"Reject invitation": "Daveti Reddet",
"Rejoin": "Yeniden Katıl",
@@ -463,7 +316,6 @@
"%(senderName)s requested a VoIP conference.": "%(senderName)s bir VoIP konferansı talep etti.",
"Report it": "Bunu rapor et",
"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.": "Şifrenizi sıfırlamak , eğer Oda Anahtarlarınızı dışa aktarmaz ve daha sonra içe aktarmaz iseniz , şu anda tüm cihazlarda uçtan uca şifreleme anahtarlarını sıfırlayarak şifreli sohbetleri okunamaz hale getirecek . Gelecekte bu iyileştirilecek.",
- "restore": "geri yükle",
"Results from DuckDuckGo": "DuckDuckGo Sonuçları",
"Return to app": "Uygulamaya dön",
"Return to login screen": "Giriş ekranına dön",
@@ -483,7 +335,6 @@
"Search": "Ara",
"Search failed": "Arama başarısız",
"Searches DuckDuckGo for results": "Sonuçlar için DuckDuckGo'yu arar",
- "Searching known users": "Bilinen kullanıcıları arama",
"Seen by %(userName)s at %(dateTime)s": "%(dateTime)s ' de %(userName)s tarafından görüldü",
"Send a message (unencrypted)": "Bir mesaj gönder (Şifrelenmemiş)",
"Send an encrypted message": "Şifrelenmiş bir mesaj gönder",
@@ -504,7 +355,6 @@
"Session ID": "Oturum ID",
"%(senderName)s set a profile picture.": "%(senderName)s bir profil resmi ayarladı.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s görünür ismini %(displayName)s ' a ayarladı.",
- "Set": "Ayarla",
"Settings": "Ayarlar",
"Show panel": "Paneli göster",
"Show Text Formatting Toolbar": "Metin Biçimlendirme Araç Çubuğunu Göster",
@@ -523,14 +373,11 @@
"Start Chat": "Sohbet Başlat",
"Submit": "Gönder",
"Success": "Başarı",
- "tag as %(tagName)s": "%(tagName)s olarak etiketle",
- "tag direct chat": "Doğrudan sohbeti etiketle",
"Tagged as: ": "Olarak etiketlendi : ",
"The default role for new room members is": "Yeni oda üyelerinin varsayılan rolü",
"The main address for this room is": "Bu oda için ana adres",
"The phone number entered looks invalid": "Girilen telefon numarası geçersiz görünüyor",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Sağladığınız imza anahtarı %(userId)s aygıtından %(deviceId)s ile eşleşiyor . Aygıt doğrulanmış olarak işaretlendi.",
- "This action cannot be performed by a guest user. Please register to be able to do this.": "Bu eylem bir Misafir Kullanıcı tarafından yapılamaz . Lütfen bunu yapabilmek için Kaydolun .",
"This email address is already in use": "Bu e-posta adresi zaten kullanımda",
"This email address was not found": "Bu e-posta adresi bulunamadı",
"%(actionVerb)s this person?": "Bu kişi %(actionVerb)s yapılsın mı ?",
@@ -540,7 +387,6 @@
"The remote side failed to pick up": "Uzak taraf toplanamadı(alınamadı)",
"This Home Server does not support login using email address.": "Bu Ana Sunucu E-posta adresi kullanarak giriş yapmayı desteklemiyor.",
"This invitation was sent to an email address which is not associated with this account:": "Bu davet bu hesapla ilişkili olmayan bir e-posta adresine gönderildi :",
- "There was a problem logging in.": "Oturum açarken bir sorun oluştu.",
"This room has no local addresses": "Bu oda hiçbir yerel adrese sahip değil",
"This room is not recognised.": "Bu oda tanınmıyor.",
"These are experimental features that may break in unexpected ways": "Bunlar beklenmedik yollarla bozulabilecek deneysel özellikler",
@@ -551,23 +397,11 @@
"This room": "Bu oda",
"This room is not accessible by remote Matrix servers": "Bu oda uzak Matrix Sunucuları tarafından erişilebilir değil",
"This room's internal ID is": "Bu odanın Dahili ID'si",
- "times": "kere",
- "To ban users": "Kullanıcıları yasaklamak(Ban) için",
- "to browse the directory": "Dizine göz atmak için",
- "To configure the room": "Odayı yapılandırmak için",
"to demote": "indirgemek için",
"to favourite": "favorilemek",
- "To invite users into the room": "Kullanıcıları odaya davet etmek",
- "To kick users": "Kullanıcıları atmak",
"To link to a room it must have an address.": "Bir odaya bağlanmak için oda bir adrese sahip olmalı.",
- "to make a room or": "bir oda oluşturmak için ya da",
- "To remove other users' messages": "Diğer kullanıcıların mesajlarını silmek için",
"To reset your password, enter the email address linked to your account": "Parolanızı sıfırlamak için hesabınıza bağlı e-posta adresinizi girin",
"to restore": "yenilemek için",
- "To send events of type": "Tip olayını göndermek için",
- "To send messages": "Mesaj göndermek için",
- "to start a chat with someone": "birisiyle sohbet başlatmak için",
- "to tag as %(tagName)s": "%(tagName)s olarak etiketlemek için",
"to tag direct chat": "doğrudan sohbeti etiketlemek için",
"To use it, just wait for autocomplete results to load and tab through them.": "Kullanmak için , otomatik tamamlama sonuçlarının yüklenmesini ve bitmesini bekleyin.",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Bu odanın zaman çizelgesinde belirli bir nokta yüklemeye çalışıldı , ama geçerli mesajı görüntülemeye izniniz yok.",
@@ -577,7 +411,6 @@
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s uçtanuca şifrelemeyi açtı (algoritma -> %(algorithm)s).",
"Unable to add email address": "E-posta adresi eklenemiyor",
"Unable to remove contact information": "Kişi bilgileri kaldırılamıyor",
- "Unable to restore previous session": "Önceki oturumlar geri yüklenemiyor",
"Unable to verify email address.": "E-posta adresi doğrulanamıyor.",
"Unban": "Yasağı Kaldır",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s %(targetName)s 'in yasağını kaldırdı.",
@@ -594,15 +427,14 @@
"unknown error code": "bilinmeyen hata kodu",
"Unknown room %(roomId)s": "Bilinmeyen oda %(roomId)s",
"Unknown (user, device) pair:": "Bilinmeyen (kullanıcı , cihaz) çifti :",
- "unknown": "bilinmeyen",
"Unmute": "Sesi aç",
"Unnamed Room": "İsimsiz Oda",
"Unrecognised command:": "Tanınmayan komut :",
"Unrecognised room alias:": "Tanınmayan oda isimleri :",
"Unverified": "Doğrulanmamış",
- "Uploading %(filename)s and %(count)s others.zero": "%(filename)s yükleniyor",
- "Uploading %(filename)s and %(count)s others.one": "%(filename)s ve %(count)s kadarı yükleniyor",
- "Uploading %(filename)s and %(count)s others.other": "%(filename)s ve %(count)s kadarları yükleniyor",
+ "Uploading %(filename)s and %(count)s others|zero": "%(filename)s yükleniyor",
+ "Uploading %(filename)s and %(count)s others|one": "%(filename)s ve %(count)s kadarı yükleniyor",
+ "Uploading %(filename)s and %(count)s others|other": "%(filename)s ve %(count)s kadarları yükleniyor",
"uploaded a file": "bir dosya yüklendi",
"Upload avatar": "Avatar yükle",
"Upload Failed": "Yükleme Başarısız",
@@ -656,15 +488,12 @@
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Tüm cihazlardan çıkış yaptınız ve artık bildirimler almayacaksınız . Bildirimleri yeniden etkinleştirmek için , her cihazda tekrar giriş yapın",
"You have disabled URL previews by default.": "URL önizlemelerini varsayılan olarak devre dışı bıraktınız.",
"You have enabled URL previews by default.": "URL önizlemelerini varsayılan olarak etkinleştirdiniz .",
- "You have entered an invalid contact. Try using their Matrix ID or email address.": "Geçersiz bir kişi girdiniz . Matrix ID veya e-posta adresini kullanarak tekrar deneyin.",
"You have no visible notifications": "Hiçbir görünür bildiriminiz yok",
"You may wish to login with a different account, or add this email to this account.": "Farklı bir hesap ile giriş yapmak veya bu e-postayı bu hesaba eklemek istemiş olabilirsiniz.",
- "you must be a": "olabilirsiniz",
"You must register to use this functionality": "Bu işlevi kullanmak için Kayıt Olun ",
"You need to be able to invite users to do that.": "Bunu yapmak için kullanıcıları davet etmeye ihtiyacınız var.",
"You need to be logged in.": "Oturum açmanız gerekiyor.",
"You need to enter a user name.": "Bir kullanıcı ismi girmeniz gerekiyor.",
- "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.": "Bu cihaz için uçtan uca şifreleme anahtarları oluşturmak için yeniden giriş yapmanız ve genel anahtarı Ana Sunucu'nuza göndermeniz gerekir . Bu bir kez kapalı ; rahatsızlıktan dolayı özür dileriz.",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "E-posta adresiniz bu Ana Sunucu'da ki Matrix ID'si ile ilişkili gözükmüyor.",
"Your password has been reset": "Şifreniz sıfırlandı",
"Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Şifreniz başarıyla değiştirildi . Diğer cihazlara girene kadar onlara bildirim almayacaksınız",
@@ -696,7 +525,6 @@
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "Hafta - %(weekDayName)s , %(day)s -%(monthName)s -%(fullYear)s , %(time)s",
"%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
"Set a display name:": "Görünür isim ayarla :",
- "Set a Display Name": "Görünür bir isim Ayarla",
"Upload an avatar:": "Bir Avatar yükle :",
"This server does not support authentication with a phone number.": "Bu sunucu bir telefon numarası ile kimlik doğrulamayı desteklemez.",
"Missing password.": "Şifre eksik.",
@@ -717,20 +545,11 @@
"Room": "Oda",
"Connectivity to the server has been lost.": "Sunucuyla olan bağlantı kesildi.",
"Sent messages will be stored until your connection has returned.": "Gönderilen iletiler bağlantınız geri gelene kadar saklanacak.",
- "Auto-complete": "Otomatik tamamlama",
"Resend all or cancel all now. You can also select individual messages to resend or cancel.": " Hepsini yeniden gönderin veya Hepsini iptal edin şimdi . Ayrıca yeniden göndermek veya iptal etmek için özel iletiler seçebilirsin.",
- "(~%(count)s results).one": "(~%(count)s sonuç)",
- "(~%(count)s results).other": "(~%(count)s sonuçlar)",
+ "(~%(count)s results)|one": "(~%(count)s sonuç)",
+ "(~%(count)s results)|other": "(~%(count)s sonuçlar)",
"Cancel": "İptal Et",
- "or": "veya",
"Active call": "Aktif çağrı",
- "Monday": "Pazartesi",
- "Tuesday": "Salı",
- "Wednesday": "Çarşamba",
- "Thursday": "Perşembe",
- "Friday": "Cuma",
- "Saturday": "Cumartesi",
- "Sunday": "Pazar",
"bold": "kalın",
"italic": "italik",
"strike": "vurgulu",
@@ -789,7 +608,6 @@
"%(oneUser)schanged their avatar": "%(oneUser)s Avatarını değiştirdi",
"Please select the destination room for this message": "Bu ileti için lütfen hedef oda seçin",
"Create new room": "Yeni Oda Oluştur",
- "Welcome page": "Karşılama sayfası",
"Room directory": "Oda Rehberi",
"Start chat": "Sohbet Başlat",
"New Password": "Yeni Şifre",
@@ -812,7 +630,6 @@
"You must join the room to see its files": "Dosyalarını görmek için odaya katılmalısınız",
"Reject all %(invitedRooms)s invites": "Tüm %(invitedRooms)s davetlerini reddet",
"Start new chat": "Yeni sohbet başlat",
- "Guest users can't invite users. Please register.": "Misafir Kullanıcılar kullanıcıları davet edemez . Lütfen kaydolun .",
"Failed to invite": "Davet edilemedi",
"Failed to invite user": "Kullanıcı davet edilemedi",
"Failed to invite the following users to the %(roomName)s room:": "Aşağıdaki kullanıcılar %(roomName)s odasına davet edilemedi :",
@@ -835,7 +652,6 @@
"Unable to restore session": "Oturum geri yüklenemiyor",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Eğer daha önce Riot'un daha yeni bir versiyonunu kullandıysanız , oturumunuz bu sürümle uyumsuz olabilir . Bu pencereyi kapatın ve daha yeni sürüme geri dönün.",
"Continue anyway": "Her halükarda devam et",
- "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Görünür isminiz , odalarda konuşurken başkalarına nasıl görüneceğinizdir . İsminizin ne olmasını istersiniz ?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Şu anda doğrulanmamış cihazları kara listeye alıyorsunuz , bu cihazlara mesaj göndermek için onları doğrulamanız gerekir.",
"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.": "Her cihazın yasal sahiplerine ait olduklarını doğrulamak için doğrulama işlemini gerçekleştirmenizi öneririz, ancak tercih edip onaylamadan iletiyi tekrar gönderebilirsiniz.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" daha önce görmediğiniz cihazları içeriyor.",
@@ -892,7 +708,7 @@
"Start chatting": "Sohbeti başlat",
"Start Chatting": "Sohbeti Başlat",
"Click on the button below to start chatting!": "Sohbeti başlatmak için aşağıdaki butona tıklayın!",
- "$senderDisplayName changed the room avatar to
": "$senderDisplayName odanın avatarını
olarak çevirdi",
+ "%(senderDisplayName)s changed the room avatar to
": "%(senderDisplayName)s odanın avatarını
olarak çevirdi",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s odanın avatarını kaldırdı.",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s %(roomName)s için avatarı değiştirdi",
"Username available": "Kullanıcı ismi uygun",
diff --git a/src/i18n/strings/uk.json b/src/i18n/strings/uk.json
index ae538d76bf..078147640a 100644
--- a/src/i18n/strings/uk.json
+++ b/src/i18n/strings/uk.json
@@ -1,82 +1,16 @@
{
- "af": "афрікаанс",
- "ar-ae": "арабська (ОАЕ)",
- "ar-bh": "арабська (Бахрейн)",
- "ar-dz": "арабська (Алжир)",
- "ar-eg": "арабська (Єгипет)",
- "ar-iq": "арабська (Ірак)",
- "ar-jo": "арабська (Йорданія)",
- "ar-kw": "арабська (Кувейт)",
- "ar-lb": "арабська (Ліван)",
- "ar-ly": "арабська (Лівія)",
- "ar-ma": "арабська (Марокко)",
- "ar-om": "арабська (Оман)",
- "ar-qa": "арабська (Катар)",
- "ar-sa": "арабська (Саудівська Аравія)",
- "ar-sy": "арабська (Сирія)",
- "ar-tn": "арабська (Туніс)",
- "ar-ye": "арабська (Йемен)",
- "be": "білоруська",
- "bg": "болгарська",
- "ca": "каталонська",
- "cs": "чеська",
- "da": "данська",
- "de-at": "німецька (Австрія)",
- "de-ch": "німецька (Швейцарія)",
- "de": "німецька",
- "de-li": "німецька (Ліхтенштейн)",
- "de-lu": "німецька (Люксембург)",
- "el": "грецька",
- "en-au": "англійська (Австралія)",
- "en-bz": "англійська (Беліз)",
- "en-ca": "англійська (Канада)",
- "en": "англійська",
- "en-gb": "англійська (Великобританія)",
- "en-ie": "англійська (Ірландія)",
- "en-jm": "англійська (Ямайка)",
- "en-nz": "англійська (Нова Зеландія)",
- "en-tt": "англійська (Тринідад)",
- "en-us": "англійська (Сполучені Штати)",
- "en-za": "англійська (ПАР)",
- "es-ar": "іспанська (Аргентина)",
- "es-bo": "іспанська (Болівія)",
- "es-cl": "іспанська (Чилі)",
- "es-co": "іспанська (Колумбія)",
- "es-cr": "іспанська (Коста Ріка)",
- "es-do": "іспанська (Домініканська Республіка)",
- "es-ec": "іспанська (Еквадор)",
- "es-gt": "іспанська (Гватемала)",
- "es-hn": "іспанська (Гондурас)",
- "es-mx": "іспанська (Мексика)",
- "es-ni": "іспанська (Нікарагуа)",
- "es-pa": "іспанська (Панама)",
- "es-pe": "іспанська (Перу)",
- "es-pr": "іспанська (Пуерто Ріко)",
- "es-py": "іспанська (Парагвай)",
- "es": "іспанська (Іспанія)",
- "es-sv": "іспанська (Сальвадор)",
- "es-uy": "іспанська (Уругвай)",
- "es-ve": "іспанська (Венесуела)",
- "et": "естонська",
- "eu": "баскійська",
- "fa": "перська",
- "fi": "фінська",
- "fo": "фарерська",
"Cancel": "Скасувати",
"Close": "Закрити",
"Create new room": "Створити нову кімнату",
"Custom Server Options": "Нетипові параметри сервера",
- "Direct Chat": "Прямий чат",
"Dismiss": "Відхилити",
"Drop here %(toAction)s": "Кидайте сюди %(toAction)s",
"Error": "Помилка",
- "Failed to forget room %(errCode)s": "Не вдалось забути кімнату %(errCode)s",
- "Failed to join the room": "Не вдалося приєднатись до кімнати",
+ "Failed to forget room %(errCode)s": "Не вдалось видалити кімнату %(errCode)s",
"Favourite": "Вибране",
"Mute": "Стишити",
"Notifications": "Сповіщення",
"Operation failed": "Не вдалося виконати дію",
- "Please Register": "Зареєструйтеся, будь ласка",
"powered by Matrix": "працює на Matrix",
"Remove": "Прибрати",
"Room directory": "Каталог кімнат",
@@ -84,74 +18,9 @@
"Settings": "Налаштування",
"Start chat": "Почати розмову",
"unknown error code": "невідомий код помилки",
- "Sunday": "Неділя",
- "Monday": "Понеділок",
- "Tuesday": "Вівторок",
- "Wednesday": "Середа",
- "Thursday": "Четвер",
- "Friday": "П'ятниця",
- "Saturday": "Субота",
"OK": "Гаразд",
- "Welcome page": "Ласкаво просимо",
"Failed to change password. Is your password correct?": "Не вдалось змінити пароль. Ви впевнені, що пароль введено правильно?",
"Continue": "Продовжити",
- "fr-be": "французька (Бельгія)",
- "fr-ca": "французька (Канада)",
- "fr-ch": "французька (Швейцарія)",
- "fr": "французька",
- "fr-lu": "французька (Люксембург)",
- "ga": "ірландська",
- "gd": "гельська (Шотландія)",
- "he": "іврит",
- "hi": "гінді",
- "hr": "хорватська",
- "hu": "угорська",
- "id": "індонезійська",
- "is": "ісландська",
- "it-ch": "італійська (Швейцарія)",
- "it": "італійська",
- "ja": "японська",
- "ji": "ідиш",
- "ko": "корейська",
- "lt": "литовська",
- "lv": "латвійська",
- "mk": "македонська (КЮРМ)",
- "ms": "малайська",
- "mt": "мальтійська",
- "nl-be": "нідерландська (Бельгія)",
- "nl": "нідерландська",
- "no": "норвезька",
- "pl": "польська",
- "pt-br": "бразильська португальська",
- "pt": "португальська",
- "rm": "ретороманська",
- "ro-mo": "румунська (Молдова)",
- "ro": "румунська",
- "ru-mo": "російська (Молдова)",
- "ru": "російська",
- "sb": "лужицька",
- "sk": "словацька",
- "sl": "словенська",
- "sq": "албанська",
- "sr": "сербська",
- "sv-fi": "шведська (Фінляндія)",
- "sv": "шведська",
- "sx": "сесото",
- "sz": "північносаамська",
- "th": "тайська",
- "tn": "свана",
- "tr": "турецька",
- "ts": "тсонга",
- "uk": "українська",
- "ur": "урду",
- "ve": "венда",
- "vi": "в’єтнамська",
- "xh": "коса",
- "zh-cn": "спрощена китайська (КНР)",
- "zh-hk": "традиційна китайська (Гонконг)",
- "zh-sg": "спрощена китайська (Сингапур)",
- "zh-tw": "традиційна китайська (Тайвань)",
- "zu": "зулу",
"a room": "кімната",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Текстове повідомлення було надіслано +%(msisdn)s. Введіть, будь ласка, код підтвердження з цього повідомлення",
"Accept": "Прийняти",
@@ -165,14 +34,12 @@
"Add email address": "Додати адресу е-пошти",
"Add phone number": "Додати номер телефону",
"Admin": "Адміністратор",
- "Admin tools": "Засоби адміністрування",
- "And %(count)s more...": "І %(count)s більше...",
+ "Admin Tools": "Засоби адміністрування",
"VoIP": "VoIP",
"Missing Media Permissions, click here to request.": "Відсутні дозволи, натисніть для запиту.",
"No Microphones detected": "Мікрофон не виявлено",
"No Webcams detected": "Веб-камеру не виявлено",
"Favourites": "Вибрані",
- "favourite": "вибране",
"Fill screen": "На весь екран",
"No media permissions": "Нема дозволів на відео/аудіо",
"You may need to manually permit Riot to access your microphone/webcam": "Можливо, вам треба дозволити Riot використання мікрофону/камери вручну",
@@ -185,20 +52,56 @@
"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": "і інше..."
- },
+ "and %(count)s others...|one": "і інше...",
+ "and %(count)s others...|other": "та %(count)s інші...",
"%(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.": "Має бути введений новий пароль."
+ "A new password must be entered.": "Має бути введений новий пароль.",
+ "Add a widget": "Добавити віджет",
+ "Allow": "Принюти",
+ "%(senderName)s answered the call.": "%(senderName)s відповіла на дзвінок.",
+ "An error has occurred.": "Трапилась помилка.",
+ "Anyone": "Кожний",
+ "Anyone who knows the room's link, apart from guests": "Кожний, хто знає посилання на кімнату, окрім гостей",
+ "Anyone who knows the room's link, including guests": "Кожний, хто знає посилання на кімнату, включно гостей",
+ "Are you sure?": "Ви впевнені?",
+ "Are you sure you want to leave the room '%(roomName)s'?": "Ви впевнені, що хочете покинути '%(roomName)s'?",
+ "Are you sure you want to reject the invitation?": "Ви впевнені, що ви хочете відхилити запрошення?",
+ "Are you sure you want to upload the following files?": "Ви впевнені, що ви хочете відправити наступний файл?",
+ "Attachment": "Прикріплення",
+ "Autoplay GIFs and videos": "Автовідтворення GIF і відео",
+ "%(senderName)s banned %(targetName)s.": "%(senderName)s заблокував(ла) %(targetName)s.",
+ "Ban": "Заблокувати",
+ "Banned users": "Заблоковані користувачі",
+ "Bans user with given id": "Блокує користувача з заданим ID",
+ "Blacklisted": "В чорному списку",
+ "Bug Report": "Звіт про помилку",
+ "Bulk Options": "Групові параметри",
+ "Call Timeout": "Час очікування виклика",
+ "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Не вдається підключитись до домашнього серверу - перевірте підключення, переконайтесь, що ваш SSL-сертифікат домашнього сервера є довіреним і що розширення браузера не блокує запити.",
+ "Can't load user settings": "Неможливо завантажити настройки користувача",
+ "Cannot add any more widgets": "Неможливо додати більше віджетів",
+ "Change Password": "Поміняти пароль",
+ "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s змінено з %(oldDisplayName)s на %(displayName)s.",
+ "%(senderName)s changed their profile picture.": "%(senderName)s змінив зображення профіля.",
+ "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s змінив(ла) рівень доступу для %(powerLevelDiffText)s.",
+ "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s змінив(ла) назву кімнати на %(roomName)s.",
+ "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s видалив ім'я кімнати.",
+ "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s змінив тему на %(topic)s.",
+ "Email": "е-почта",
+ "Email address": "Адреса е-почти",
+ "Email address (optional)": "Адреса е-почти (не обов'язково)",
+ "Email, name or matrix ID": "Е-почта, ім'я або matrix ID",
+ "Failed to send email": "Помилка відправки е-почти",
+ "Edit": "Редактувати",
+ "Unpin Message": "Відкріпити повідомлення",
+ "Register": "Зарегіструватись",
+ "Rooms": "Кімнати",
+ "Add rooms to this community": "Добавити кімнати в це суспільство",
+ "This email address is already in use": "Ця адреса елект. почти вже використовується",
+ "This phone number is already in use": "Цей телефонний номер вже використовується"
}
diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json
index cee8f224c4..474233909f 100644
--- a/src/i18n/strings/zh_Hans.json
+++ b/src/i18n/strings/zh_Hans.json
@@ -6,7 +6,6 @@
"/ddg is not a command": "/ddg 不是一个命令",
"Deactivate Account": "销毁账号",
"Deactivate my account": "销毁我的账号",
- "decline": "拒绝",
"Decrypt %(text)s": "解密 %(text)s",
"Decryption error": "解密出错",
"Delete": "删除",
@@ -14,7 +13,6 @@
"Device ID": "设备识别码",
"Devices": "设备列表",
"Devices will not yet be able to decrypt history from before they joined the room": "新加入聊天室的设备不能解密加入之前的聊天记录",
- "Direct Chat": "私聊",
"Direct chats": "私聊",
"Disable inline URL previews by default": "默认禁用自动网址预览",
"Disinvite": "取消邀请",
@@ -26,13 +24,13 @@
"Email": "电子邮箱",
"Email address": "电子邮箱地址",
"Email, name or matrix ID": "电子邮箱,姓名或者matrix ID",
- "Emoji": "Emoji",
+ "Emoji": "表情",
"Enable encryption": "启用加密",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "不支持加密的客户端将看不到加密的消息",
"Encrypted room": "加密聊天室",
"%(senderName)s ended the call.": "%(senderName)s 结束了通话。.",
"End-to-end encryption information": "端到端加密信息",
- "End-to-end encryption is in beta and may not be reliable": "端到端加密现为测试版,不一定可靠",
+ "End-to-end encryption is in beta and may not be reliable": "端到端加密现为 beta 版,不一定可靠",
"Enter Code": "输入代码",
"Error": "错误",
"Error decrypting attachment": "解密附件时出错",
@@ -44,7 +42,6 @@
"Failed to delete device": "删除设备失败",
"Failed to forget room %(errCode)s": "无法忘记聊天室 %(errCode)s",
"Failed to join room": "无法加入聊天室",
- "Failed to join the room": "无法加入此聊天室",
"Failed to kick": "踢人失败",
"Failed to leave room": "无法离开聊天室",
"Failed to load timeline position": "无法加载时间轴位置",
@@ -64,7 +61,6 @@
"Failed to verify email address: make sure you clicked the link in the email": "邮箱验证失败: 请确保你已点击邮件中的链接",
"Failure to create room": "创建聊天室失败",
"Favourite": "收藏",
- "favourite": "收藏",
"Favourites": "收藏夹",
"Fill screen": "满屏显示",
"Filter room members": "过滤聊天室成员",
@@ -74,12 +70,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.": "出于安全考虑,用户注销时会清除浏览器里的端到端加密密钥。如果你想要下次登录 Riot 时能解密过去的聊天记录,请导出你的聊天室密钥。",
"Found a bug?": "发现漏洞?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s 从 %(fromPowerLevel)s 变为 %(toPowerLevel)s",
- "Guests can't set avatars. Please register.": "游客不能设置头像。请注册。.",
- "Guest users can't create new rooms. Please register to create room and start a chat.": "游客不能创建聊天室。请注册以创建聊天室和聊天.",
- "Guest users can't upload files. Please register to upload.": "游客不能上传文件。请注册以上传文件",
- "Guests can't use labs features. Please register.": "游客不能使用实验性功能。请注册。.",
"Guests cannot join this room even if explicitly invited.": "游客不能加入此聊天室,即使有人主动邀请。.",
- "had": "已经",
"Hangup": "挂断",
"Hide read receipts": "隐藏已读回执",
"Hide Text Formatting Toolbar": "隐藏格式工具栏",
@@ -87,7 +78,7 @@
"Homeserver is": "主服务器是",
"Identity Server is": "身份认证服务器是",
"I have verified my email address": "我已经验证了我的邮箱地址",
- "Import E2E room keys": "导入聊天室端对端加密密钥",
+ "Import E2E room keys": "导入聊天室端到端加密密钥",
"Incorrect verification code": "验证码错误",
"Interface Language": "界面语言",
"Invalid alias format": "别名格式错误",
@@ -96,7 +87,6 @@
"Invalid file%(extra)s": "非法文件%(extra)s",
"Report it": "报告",
"Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "重设密码会导致所有设备上的端到端加密密钥被重置,使得加密的聊天记录不可读,除非你事先导出密钥,修改密码后再导入。此问题将来会得到改善。.",
- "restore": "恢复",
"Return to app": "返回 App",
"Return to login screen": "返回登录页面",
"Riot does not have permission to send you notifications - please check your browser settings": "Riot 未被允许向你推送消息 - 请检查浏览器设置",
@@ -138,7 +128,7 @@
"since the point in time of selecting this option": "从选择此选项起",
"since they joined": "从他们加入时起",
"since they were invited": "从他们被邀请时起",
- "Some of your messages have not been sent.": "部分消息发送失败",
+ "Some of your messages have not been sent.": "部分消息未发送。",
"Someone": "某个用户",
"Sorry, this homeserver is using a login which is not recognised ": "很抱歉,无法识别此主服务器使用的登录方式 ",
"Start a chat": "创建聊天",
@@ -147,7 +137,6 @@
"Success": "成功",
"The default role for new room members is": "此聊天室新成员的默认角色是",
"The main address for this room is": "此聊天室的主要地址是",
- "This action cannot be performed by a guest user. Please register to be able to do this.": "游客不能进行此操作。请注册",
"This email address is already in use": "此邮箱地址已经被使用",
"This email address was not found": "未找到此邮箱地址",
"%(actionVerb)s this person?": "%(actionVerb)s 这个用户?",
@@ -155,33 +144,12 @@
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "文件 '%(fileName)s' 超过了此主服务器的上传大小限制",
"The file '%(fileName)s' failed to upload": "文件 '%(fileName)s' 上传失败",
"Disable URL previews for this room (affects only you)": "在这个房间禁止URL预览(只影响你)",
- "af": "南非荷兰语",
- "ca": "加泰罗尼亚语",
- "cs": "捷克语",
- "da": "丹麦语",
- "de-at": "德语(奥地利)",
- "de-ch": "德语(瑞士)",
- "de": "德语",
- "de-lu": "德语 (卢森堡)",
- "el": "希腊语",
- "en-au": "英语 (澳大利亚)",
- "en": "英语",
- "zh-cn": "中文(中国)",
- "zh-hk": "中文(香港)",
- "zh-sg": "中文(新加坡)",
- "zh-tw": "中国(台湾)",
"Add email address": "添加邮件地址",
"Add phone number": "添加电话号码",
"Advanced": "高级",
"Algorithm": "算法",
"Always show message timestamps": "总是显示消息时间戳",
- "all room members": "所有聊天室成员",
- "all room members, from the point they are invited": "所有聊天室成员,从他们被邀请开始",
- "all room members, from the point they joined": "所有聊天室成员,从他们加入开始",
- "an address": "一个地址",
- "and": "和",
"%(names)s and %(lastPerson)s are typing": "%(names)s 和 %(lastPerson)s 正在打字",
- "%(names)s and %(count)s others are typing": "%(names)s 和另外 %(count)s 个人正在打字",
"An email has been sent to": "一封邮件已经被发送到",
"A new password must be entered.": "一个新的密码必须被输入。.",
"%(senderName)s answered the call.": "%(senderName)s 接了通话。.",
@@ -191,7 +159,6 @@
"%(senderName)s banned %(targetName)s.": "%(senderName)s 封禁了 %(targetName)s.",
"Ban": "封禁",
"Banned users": "被封禁的用户",
- "Click here": "点击这里",
"Click here to fix": "点击这里修复",
"Confirm password": "确认密码",
"Confirm your new password": "确认你的新密码",
@@ -199,31 +166,15 @@
"Ed25519 fingerprint": "Ed25519指纹",
"Invite new room members": "邀请新的聊天室成员",
"Join Room": "加入聊天室",
- "joined": "已加入",
"%(targetName)s joined the room.": "%(targetName)s 已加入聊天室。",
"Jump to first unread message.": "跳到第一条未读消息。",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s 把 %(targetName)s 踢出了聊天室。.",
"Leave room": "离开聊天室",
"Login as guest": "以游客的身份登录",
"New password": "新密码",
- "ar-ae": "阿拉伯语 (阿联酋)",
- "ar-bh": "阿拉伯语 (巴林)",
- "ar-dz": "阿拉伯语 (阿尔及利亚)",
- "ar-eg": "阿拉伯语 (埃及)",
- "ar-iq": "阿拉伯语 (伊拉克)",
- "ar-jo": "阿拉伯语 (约旦)",
- "ar-kw": "阿拉伯语 (科威特)",
- "ar-lb": "阿拉伯语 (黎巴嫩)",
- "ar-ly": "阿拉伯语 (利比亚)",
- "ar-ma": "阿拉伯语 (摩洛哥)",
- "ar-ye": "阿拉伯语 (也门)",
- "en-ca": "英语 (加拿大)",
- "en-gb": "英语 (英国)",
- "en-ie": "英语 (爱尔兰)",
- "en-nz": "英语 (新西兰)",
- "Add a topic": "新话题",
+ "Add a topic": "添加一个主题",
"Admin": "管理员",
- "Admin tools": "管理工具",
+ "Admin Tools": "管理工具",
"VoIP": "IP 电话",
"Missing Media Permissions, click here to request.": "没有媒体存储权限,点此获取。",
"No Microphones detected": "未检测到麦克风",
@@ -236,15 +187,12 @@
"Hide removed messages": "隐藏被删除的消息",
"Authentication": "认证",
"Alias (optional)": "别名 (可选)",
- "%(items)s and %(remaining)s others": "%(items)s 和其它 %(remaining)s 个",
- "%(items)s and one other": "%(items)s 和其它一个",
+ "%(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": "和其它一个..."
- },
+ "and %(count)s others...|other": "和其它 %(count)s 个...",
+ "and %(count)s others...|one": "和其它一个...",
"%(names)s and one other are typing": "%(names)s 和另一个人正在打字",
- "anyone": "任何人",
"Anyone": "任何人",
"Anyone who knows the room's link, apart from guests": "任何知道聊天室链接的人,游客除外",
"Anyone who knows the room's link, including guests": "任何知道聊天室链接的人,包括游客",
@@ -268,7 +216,7 @@
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s 把话题修改为 “%(topic)s”。",
"Changes to who can read history will only apply to future messages in this room": "修改阅读历史的权限仅对此聊天室以后的消息有效",
"Changes your display nickname": "修改昵称",
- "Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "目前,修改密码会导致所有设备上的端对端密钥被重置,使得加密的聊天记录不再可读。除非你事先导出聊天室密钥,修改密码后再导入。这个问题未来会改善。",
+ "Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "目前,修改密码会导致所有设备上的端到端密钥被重置,使得加密的聊天记录不再可读。除非你事先导出聊天室密钥,修改密码后再导入。这个问题未来会改善。",
"Clear Cache and Reload": "清除缓存并刷新",
"Clear Cache": "清除缓存",
"Click here to join the discussion!": "点此 加入讨论!",
@@ -284,8 +232,8 @@
"Conference calling is in development and may not be reliable.": "视频会议功能还在开发状态,可能不稳定。",
"Conference calls are not supported in encrypted rooms": "加密聊天室不支持视频会议",
"Conference calls are not supported in this client": "此客户端不支持视频会议",
- "%(count)s new messages.one": "%(count)s 条新消息",
- "%(count)s new messages.other": "%(count)s 新消息",
+ "%(count)s new messages|one": "%(count)s 条新消息",
+ "%(count)s new messages|other": "%(count)s 新消息",
"Create a new chat or reuse an existing one": "创建新聊天或使用已有的聊天",
"Custom": "自定义",
"Custom level": "自定义级别",
@@ -296,7 +244,6 @@
"Device key:": "设备密钥 :",
"Disable Notifications": "关闭消息通知",
"disabled": "已禁用",
- "Disable markdown formatting": "禁用 Markdown 格式",
"Drop File Here": "把文件拖拽到这里",
"Email address (optional)": "电子邮件地址 (可选)",
"Enable Notifications": "启用消息通知",
@@ -309,7 +256,6 @@
"Error: Problem communicating with the given homeserver.": "错误: 与指定的主服务器通信时出错。",
"Export": "导出",
"Failed to fetch avatar URL": "获取 Avatar URL 失败",
- "Failed to register as guest:": "无法注册为游客:",
"Failed to upload profile picture!": "无法上传头像!",
"Guest access is disabled on this Home Server.": "此服务器禁用了游客访问。",
"Home": "主页面",
@@ -324,7 +270,7 @@
"Invites user with given id to current room": "邀请指定 ID 的用户加入当前聊天室",
"'%(alias)s' is not a valid format for an address": "'%(alias)s' 不是一个合法的电子邮件地址格式",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' 不是一个合法的昵称格式",
- "%(displayName)s is typing": "%(displayName)s 正在输入",
+ "%(displayName)s is typing": "%(displayName)s 正在打字",
"Sign in with": "第三方登录",
"Message not sent due to unknown devices being present": "消息未发送,因为有未知的设备存在",
"Missing room_id in request": "请求中没有 room_id",
@@ -333,10 +279,8 @@
"Mobile phone number (optional)": "手机号码 (可选)",
"Moderator": "管理员",
"Mute": "静音",
- "my Matrix ID": "我的 Matrix ID",
"Name": "姓名",
"Never send encrypted messages to unverified devices from this device": "不要从此设备向未验证的设备发送消息",
- "Never send encrypted messages to unverified devices in this room": "不要在此聊天室里向未验证的设备发送消息",
"New passwords don't match": "两次输入的新密码不符",
"none": "无",
"not set": "未设置",
@@ -359,21 +303,412 @@
"Create new room": "创建新聊天室",
"Custom Server Options": "自定义服务器选项",
"Dismiss": "设为已读",
- "Please Register": "请注册",
"powered by Matrix": "由 Matrix 提供",
"Remove": "移除",
"Room directory": "聊天室目录",
"Start chat": "开始聊天",
"unknown error code": "未知错误代码",
- "Sunday": "星期日",
- "Monday": "星期一",
- "Tuesday": "星期二",
- "Wednesday": "星期三",
- "Thursday": "星期四",
- "Friday": "星期五",
- "Saturday": "星期六",
- "Welcome page": "欢迎页面",
- "ar-om": "阿拉伯语(阿曼)",
- "ar-qa": "阿拉伯语(卡塔尔)",
- "ar-sa": "阿拉伯语(沙特阿拉伯)"
+ "Account": "账户",
+ "Add": "添加",
+ "Allow": "允许",
+ "Claimed Ed25519 fingerprint key": "声称的 Ed25519 指纹密钥",
+ "Could not connect to the integration server": "无法连接集成服务器",
+ "Curve25519 identity key": "Curve25519 认证密钥",
+ "Edit": "编辑",
+ "Hide Apps": "隐藏应用",
+ "Joins room with given alias": "以指定的别名加入聊天室",
+ "Labs": "实验室",
+ "%(targetName)s left the room.": "%(targetName)s 离开了聊天室。",
+ "Logged in as:": "登录为:",
+ "Logout": "登出",
+ "Low priority": "低优先级",
+ "Markdown is disabled": "Markdown 已禁用",
+ "Markdown is enabled": "Markdown 已启用",
+ "matrix-react-sdk version:": "matrix-react-sdk 版本:",
+ "No more results": "没有更多结果",
+ "olm version:": "olm 版本:",
+ "Only people who have been invited": "只有被邀请的人",
+ "Otherwise, click here to send a bug report.": "否则,点击这里发送一个错误报告。",
+ "Privacy warning": "隐私警告",
+ "Private Chat": "私聊",
+ "Privileged Users": "特权用户",
+ "Reason": "原因",
+ "Register": "注册",
+ "%(targetName)s rejected the invitation.": "%(targetName)s 拒绝了邀请。",
+ "Reject invitation": "拒绝邀请",
+ "Rejoin": "重新加入",
+ "Users": "用户",
+ "User": "用户",
+ "Verification": "验证",
+ "verified": "已验证",
+ "Verified": "已验证",
+ "Verified key": "已验证的密钥",
+ "Video call": "视频通话",
+ "Voice call": "音频通话",
+ "VoIP conference finished.": "VoIP 会议结束。",
+ "VoIP conference started.": "VoIP 会议开始。",
+ "VoIP is unsupported": "不支持 VoIP",
+ "Warning!": "警告!",
+ "You must register to use this functionality": "你必须注册以使用这个功能",
+ "You need to be logged in.": "你需要登录。",
+ "You need to enter a user name.": "你需要输入一个用户名。",
+ "Your password has been reset": "你的密码已被重置",
+ "Topic": "主题",
+ "Make Moderator": "使成为主持人",
+ "Room": "聊天室",
+ "Connectivity to the server has been lost.": "到服务器的连接已经丢失。",
+ "bold": "加粗",
+ "italic": "斜体",
+ "strike": "删除线",
+ "underline": "下划线",
+ "code": "代码",
+ "quote": "引用",
+ "bullet": "项目符号",
+ "numbullet": "数字项目符号",
+ "were invited": "被邀请",
+ "was invited": "被邀请",
+ "were banned %(repeats)s times": "被封禁 %(repeats)s 次",
+ "was banned %(repeats)s times": "被封禁 %(repeats)s 次",
+ "were banned": "被封禁",
+ "was banned": "被封禁",
+ "New Password": "新密码",
+ "Options": "选项",
+ "Passphrases must match": "密码必须匹配",
+ "Passphrase must not be empty": "密码不能为空",
+ "Export room keys": "导出聊天室密钥",
+ "Confirm passphrase": "确认密码",
+ "Import room keys": "导入聊天室密钥",
+ "File to import": "要导入的文件",
+ "Start new chat": "开始新的聊天",
+ "Failed to invite": "邀请失败",
+ "Failed to invite user": "邀请用户失败",
+ "Unknown error": "未知错误",
+ "Incorrect password": "密码错误",
+ "This action is irreversible.": "此操作不可逆。",
+ "To continue, please enter your password.": "请输入你的密码继续。",
+ "Device name": "设备名",
+ "Device Name": "设备名",
+ "Device key": "设备密钥",
+ "Verify device": "验证设备",
+ "I verify that the keys match": "我验证密钥匹配",
+ "Unable to restore session": "无法恢复会话",
+ "Continue anyway": "无论如何都继续",
+ "Blacklist": "列入黑名单",
+ "Unverify": "取消验证",
+ "ex. @bob:example.com": "例如 @bob:example.com",
+ "Add User": "添加用户",
+ "This Home Server would like to make sure you are not a robot": "这个Home Server想要确认你不是一个机器人",
+ "Token incorrect": "令牌错误",
+ "Default server": "默认服务器",
+ "Custom server": "自定义服务器",
+ "URL Previews": "URL 预览",
+ "Drop file here to upload": "把文件拖到这里以上传",
+ "Online": "在线",
+ "Idle": "空闲",
+ "Offline": "离线",
+ "Start chatting": "开始聊天",
+ "Start Chatting": "开始聊天",
+ "Click on the button below to start chatting!": "点击下面的按钮开始聊天!",
+ "Username available": "用户名可用",
+ "Username not available": "用户名不可用",
+ "Skip": "跳过",
+ "Start verification": "开始验证",
+ "Ignore request": "忽略请求",
+ "Loading device info...": "正在加载设备信息...",
+ "Example": "例子",
+ "Create": "创建",
+ "Failed to upload image": "上传图像失败",
+ "Add a widget": "添加一个小部件",
+ "a room": "一个聊天室",
+ "Accept": "接受",
+ "Access Token:": "访问令牌:",
+ "Cannot add any more widgets": "无法添加更多小组件",
+ "Delete widget": "删除小组件",
+ "Define the power level of a user": "定义一个用户的特权级",
+ "Drop here to tag %(section)s": "拖拽到这里标记 %(section)s",
+ "Enable automatic language detection for syntax highlighting": "启用自动语言检测用于语法高亮",
+ "Failed to change power level": "修改特权级别失败",
+ "Hide avatar and display name changes": "隐藏头像和显示名称的修改",
+ "Kick": "踢出",
+ "Kicks user with given id": "踢出指定 ID 的用户",
+ "Last seen": "上次看见",
+ "Level:": "级别:",
+ "Local addresses for this room:": "这个聊天室的本地地址:",
+ "New passwords must match each other.": "新密码必须互相匹配。",
+ "Power level must be positive integer.": "特权级别必须是正整数。",
+ "Reason: %(reasonText)s": "原因: %(reasonText)s",
+ "Revoke Moderator": "撤销主持人",
+ "Revoke widget access": "撤销小部件的访问",
+ "Remote addresses for this room:": "这个聊天室的远程地址:",
+ "Remove Contact Information?": "移除联系人信息?",
+ "Remove %(threePid)s?": "移除 %(threePid)s?",
+ "Results from DuckDuckGo": "来自 DuckDuckGo 的结果",
+ "Room contains unknown devices": "聊天室有未知设备",
+ "%(roomName)s does not exist.": "%(roomName)s 不存在。",
+ "Save": "保存",
+ "Send anyway": "无论任何都发送",
+ "Sets the room topic": "设置聊天室主题",
+ "Show Text Formatting Toolbar": "显示文字格式工具栏",
+ "This room has no local addresses": "这个聊天室没有本地地址",
+ "This doesn't appear to be a valid email address": "这看起来不是一个合法的电子邮件地址",
+ "This is a preview of this room. Room interactions have been disabled": "这是这个聊天室的一个预览。聊天室交互已禁用",
+ "This phone number is already in use": "此电话号码已经被使用",
+ "This room": "这个聊天室",
+ "This room is not accessible by remote Matrix servers": "这个聊天室无法被远程 Matrix 服务器访问",
+ "This room's internal ID is": "这个聊天室的内部 ID 是",
+ "Turn Markdown off": "关闭 Markdown",
+ "Turn Markdown on": "打开 Markdown",
+ "Unable to create widget.": "无法创建小部件。",
+ "Unban": "解除封禁",
+ "Unable to capture screen": "无法录制屏幕",
+ "Unable to enable Notifications": "无法启用通知",
+ "Unable to load device list": "无法加载设备列表",
+ "Undecryptable": "无法解密的",
+ "Unencrypted room": "未加密的聊天室",
+ "unencrypted": "未加密的",
+ "Unencrypted message": "未加密的消息",
+ "unknown caller": "未知的呼叫者",
+ "unknown device": "未知设备",
+ "Unnamed Room": "未命名的聊天室",
+ "Unverified": "未验证",
+ "uploaded a file": "上传一个文件",
+ "Upload avatar": "上传头像",
+ "Upload Failed": "上传失败",
+ "Upload Files": "上传文件",
+ "Upload file": "上传文件",
+ "Usage": "用法",
+ "Who can read history?": "谁可以阅读历史消息?",
+ "You are not in this room.": "你不在这个聊天室。",
+ "You have no visible notifications": "你没有可见的通知",
+ "Missing password.": "缺少密码。",
+ "Passwords don't match.": "密码不匹配。",
+ "I already have an account": "我已经有一个帐号",
+ "Unblacklist": "移出黑名单",
+ "Not a valid Riot keyfile": "不是一个合法的 Riot 密钥文件",
+ "%(targetName)s accepted an invitation.": "%(targetName)s 接受了一个邀请。",
+ "Do you want to load widget from URL:": "你想从此 URL 加载小组件吗:",
+ "Hide join/leave messages (invites/kicks/bans unaffected)": "隐藏加入/离开消息(邀请/踢出/封禁不受影响)",
+ "Integrations Error": "集成错误",
+ "Publish this room to the public in %(domain)s's room directory?": "把这个聊天室发布到 %(domain)s 的聊天室目录吗?",
+ "Manage Integrations": "管理集成",
+ "Members only": "只有成员",
+ "No users have specific privileges in this room": "没有用户在这个聊天室有特殊权限",
+ "%(senderName)s placed a %(callType)s call.": "%(senderName)s 发起了一个 %(callType)s 通话。",
+ "Please check your email and click on the link it contains. Once this is done, click continue.": "请检查你的电子邮箱并点击里面包含的链接。完成时请点击继续。",
+ "Press to start a chat with someone": "按下 来开始和某个人聊天",
+ "%(senderName)s removed their profile picture.": "%(senderName)s 移除了他们的头像。",
+ "%(senderName)s requested a VoIP conference.": "%(senderName)s 请求一个 VoIP 会议。",
+ "Seen by %(userName)s at %(dateTime)s": "在 %(dateTime)s 被 %(userName)s 看到",
+ "Show Apps": "显示应用",
+ "Tagged as: ": "标记为:",
+ "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "验证码将发送到+%(msisdn)s,请输入接收到的验证码",
+ "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s 接受了 %(displayName)s 的邀请。",
+ "Active call (%(roomName)s)": "%(roomName)s 的呼叫",
+ "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s 将级别调整到%(powerLevelDiffText)s 。",
+ "Changes colour scheme of current room": "修改了样式",
+ "Deops user with given id": "Deops user",
+ "Join as voice or video.": "通过 语言 或者 视频加入.",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s 设定历史浏览功能为 所有聊天室成员,从他们被邀请开始.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s 设定历史浏览功能为 所有聊天室成员,从他们加入开始.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s 设定历史浏览功能为 所有聊天室成员.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s 设定历史浏览功能为 任何人.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s 设定历史浏览功能为 未知的 (%(visibility)s).",
+ "AM": "上午",
+ "PM": "下午",
+ "NOTE: Apps are not end-to-end encrypted": "提示:APP不支持端到端加密",
+ "People": "联系人",
+ "Profile": "个人配置",
+ "Public Chat": "公开的",
+ "Refer a friend to Riot:": "介绍朋友加入Riot:",
+ "%(roomName)s is not accessible at this time.": "%(roomName)s 此时无法访问。",
+ "Start authentication": "开始认证",
+ "The maximum permitted number of widgets have already been added to this room.": "小部件的最大允许数量已经添加到这个房间了。",
+ "The phone number entered looks invalid": "输入的电话号码看起来无效",
+ "The remote side failed to pick up": "远端未能接收到",
+ "This Home Server does not support login using email address.": "HS不支持使用电子邮件地址登陆。",
+ "This invitation was sent to an email address which is not associated with this account:": "此邀请被发送到与此帐户不相关的电子邮件地址:",
+ "This room is not recognised.": "这个房间未匹配。",
+ "To get started, please pick a username!": "请点击用户名!",
+ "Unable to add email address": "无法添加电子邮件地址",
+ "Automatically replace plain text Emoji": "文字、表情自动转换",
+ "To reset your password, enter the email address linked to your account": "要重置你的密码,请输入关联你的帐号的电子邮箱地址",
+ "Unable to verify email address.": "无法验证电子邮箱地址。",
+ "Unknown room %(roomId)s": "未知聊天室 %(roomId)s",
+ "Unknown (user, device) pair:": "未知(用户,设备)对:",
+ "Unrecognised command:": "无法识别的命令:",
+ "Unrecognised room alias:": "无法识别的聊天室别名:",
+ "Use with caution": "谨慎使用",
+ "User Interface": "用户界面",
+ "%(user)s is a": "%(user)s 是一个",
+ "User name": "用户名",
+ "(no answer)": "(没有回答)",
+ "(warning: cannot be disabled again!)": "(警告:无法再被禁用!)",
+ "WARNING: Device already verified, but keys do NOT MATCH!": "警告:设备已经验证,但密钥不匹配!",
+ "Who can access this room?": "谁可以访问这个聊天室?",
+ "Who would you like to add to this room?": "你想把谁加入这个聊天室?",
+ "Who would you like to communicate with?": "你想和谁交流?",
+ "You are already in a call.": "你已经在一个通话之中。",
+ "You do not have permission to do that in this room.": "你没有权限在这个聊天室里面做那件事。",
+ "You are trying to access %(roomName)s.": "你正在尝试访问 %(roomName)s.",
+ "You cannot place VoIP calls in this browser.": "你不能在这个浏览器中发起 VoIP 通话。",
+ "You do not have permission to post to this room": "你没有发送到这个聊天室的权限",
+ "You have been invited to join this room by %(inviterName)s": "你已经被 %(inviterName)s 邀请加入这个聊天室",
+ "You seem to be in a call, are you sure you want to quit?": "你好像在一个通话中,你确定要退出吗?",
+ "You seem to be uploading files, are you sure you want to quit?": "你好像正在上传文件,你确定要退出吗?",
+ "You should not yet trust it to secure data": "你不应该相信它来保护你的数据",
+ "Upload an avatar:": "上传一个头像:",
+ "This doesn't look like a valid email address.": "这看起来不是一个合法的电子邮件地址。",
+ "This doesn't look like a valid phone number.": "这看起来不是一个合法的电话号码。",
+ "User names may only contain letters, numbers, dots, hyphens and underscores.": "用户名只可以包含字母、数字、点、连字号和下划线。",
+ "An unknown error occurred.": "一个未知错误出现了。",
+ "An error occurred: %(error_string)s": "一个错误出现了: %(error_string)s",
+ "Encrypt room": "加密聊天室",
+ "There are no visible files in this room": "这个聊天室里面没有可见的文件",
+ "Active call": "活跃的通话",
+ "Verify...": "验证...",
+ "Error decrypting audio": "解密音频时出错",
+ "Error decrypting image": "解密图像时出错",
+ "Error decrypting video": "解密视频时出错",
+ " (unsupported)": "(不支持)",
+ "Updates": "更新",
+ "Check for update": "检查更新",
+ "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s 移除了聊天室头像。",
+ "Something went wrong!": "出了点问题!",
+ "If you already have a Matrix account you can log in instead.": "如果你已经有一个 Matrix 帐号,你可以登录。",
+ "Do you want to set an email address?": "你要设置一个电子邮箱地址吗?",
+ "Room creation failed": "创建聊天室失败",
+ "New address (e.g. #foo:%(localDomain)s)": "新的地址(例如 #foo:%(localDomain)s)",
+ "Upload new:": "上传新的:",
+ "User ID": "用户 ID",
+ "Username invalid: %(errMessage)s": "用户名无效: %(errMessage)s",
+ "Verification Pending": "验证等待中",
+ "(unknown failure: %(reason)s)": "(未知错误:%(reason)s)",
+ "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!": "警告:密钥验证失败!%(userId)s 和 device %(deviceId)s 的签名密钥是 \"%(fprint)s\",和提供的咪呀 \"%(fingerprint)s\" 不匹配。这可能意味着你的通信正在被窃听!",
+ "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s 收回了 %(targetName)s 的邀请。",
+ "Would you like to accept or decline this invitation?": "你想要 接受 还是 拒绝 这个邀请?",
+ "You already have existing direct chats with this user:": "你已经有和这个用户的直接聊天:",
+ "You're not in any rooms yet! Press to make a room or to browse the directory": "你现在还不再任何聊天室!按下 来创建一个聊天室或者 来浏览目录",
+ "You cannot place a call with yourself.": "你不能和你自己发起一个通话。",
+ "You have been kicked from %(roomName)s by %(userName)s.": "你已经被 %(userName)s 踢出了 %(roomName)s.",
+ "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "你已经登出了所有的设备并不再接收推送通知。要重新启用通知,请再在每个设备上登录",
+ "You have disabled URL previews by default.": "你已经默认 禁用 URL 预览。",
+ "You have enabled URL previews by default.": "你已经默认 启用 URL 预览。",
+ "Your home server does not support device management.": "你的 home server 不支持设备管理。",
+ "Set a display name:": "设置一个昵称:",
+ "This server does not support authentication with a phone number.": "这个服务器不支持用电话号码认证。",
+ "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "密码过短(最短为 %(MIN_PASSWORD_LENGTH)s)。",
+ "Make this room private": "使这个聊天室私密",
+ "Share message history with new users": "和新用户共享消息历史",
+ "Copied!": "已复制!",
+ "Failed to copy": "复制失败",
+ "Sent messages will be stored until your connection has returned.": "已发送的消息会被保存直到你的连接回来。",
+ "(~%(count)s results)|one": "(~%(count)s 个结果)",
+ "(~%(count)s results)|other": "(~%(count)s 个结果)",
+ "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)s 加入了 %(repeats)s 次",
+ "%(oneUser)sjoined %(repeats)s times": "%(oneUser)s 加入了 %(repeats)s 次",
+ "%(severalUsers)sjoined": "%(severalUsers)s 加入了",
+ "%(oneUser)sjoined": "%(oneUser)s 加入了",
+ "%(severalUsers)sleft %(repeats)s times": "%(severalUsers)s 离开了 %(repeats)s 次",
+ "%(oneUser)sleft %(repeats)s times": "%(oneUser)s 离开了 %(repeats)s 次",
+ "%(severalUsers)sleft": "%(severalUsers)s 离开了",
+ "%(oneUser)sleft": "%(oneUser)s 离开了",
+ "%(oneUser)sjoined and left %(repeats)s times": "%(oneUser)s 加入并离开了 %(repeats)s 次",
+ "%(severalUsers)sjoined and left": "%(severalUsers)s 加入并离开了",
+ "%(oneUser)sjoined and left": "%(oneUser)s 加入并离开了",
+ "%(severalUsers)sleft and rejoined %(repeats)s times": "%(severalUsers)s 离开并重新加入了 %(repeats)s 次",
+ "%(oneUser)sleft and rejoined %(repeats)s times": "%(oneUser)s 离开并重新加入了 %(repeats)s 次",
+ "%(severalUsers)sleft and rejoined": "%(severalUsers)s 离开并重新加入了",
+ "%(oneUser)sleft and rejoined": "%(oneUser)s 离开并重新加入了",
+ "%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)s 拒绝了他们的邀请 %(repeats)s 次",
+ "%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)s 拒绝了他们的邀请 %(repeats)s 次",
+ "%(severalUsers)srejected their invitations": "%(severalUsers)s 拒绝了他们的邀请",
+ "%(oneUser)srejected their invitation": "%(oneUser)s 拒绝了他们的邀请",
+ "%(severalUsers)schanged their name %(repeats)s times": "%(severalUsers)s 改了他们的名字 %(repeats)s 次",
+ "%(oneUser)schanged their name %(repeats)s times": "%(oneUser)s 改了他们的名字 %(repeats)s 次",
+ "%(severalUsers)schanged their name": "%(severalUsers)s 改了他们的名字",
+ "%(oneUser)schanged their name": "%(oneUser)s 改了他们的名字",
+ "%(severalUsers)schanged their avatar %(repeats)s times": "%(severalUsers)s 更换了他们的的头像 %(repeats)s 次",
+ "%(oneUser)schanged their avatar %(repeats)s times": "%(oneUser)s 更换了他们的头像 %(repeats)s 次",
+ "%(severalUsers)schanged their avatar": "%(severalUsers)s 更换了他们的头像",
+ "%(oneUser)schanged their avatar": "%(oneUser)s 更换了他们的头像",
+ "Please select the destination room for this message": "请选择这条消息的目标聊天室",
+ "Start automatically after system login": "在系统登录后自动启动",
+ "Analytics": "分析",
+ "Reject all %(invitedRooms)s invites": "拒绝所有 %(invitedRooms)s 邀请",
+ "You may wish to login with a different account, or add this email to this account.": "你可能希望用另外一个账户登录,或者添加这个电子邮件到这个账户上。",
+ "Sun": "星期日",
+ "Mon": "星期一",
+ "Tue": "星期二",
+ "Wed": "星期三",
+ "Thu": "星期四",
+ "Fri": "星期五",
+ "Sat": "星期六",
+ "Jan": "一月",
+ "Feb": "二月",
+ "Mar": "三月",
+ "Apr": "四月",
+ "May": "五月",
+ "Jun": "六月",
+ "Jul": "七月",
+ "Aug": "八月",
+ "Sep": "九月",
+ "Oct": "十月",
+ "Nov": "十一月",
+ "Dec": "十二月",
+ "%(severalUsers)sjoined and left %(repeats)s times": "%(severalUsers)s 加入并离开了 %(repeats)s 次",
+ "were unbanned %(repeats)s times": "被解封 %(repeats)s 次",
+ "was unbanned %(repeats)s times": "被解封 %(repeats)s 次",
+ "were unbanned": "被解封",
+ "was unbanned": "被解封",
+ "were kicked %(repeats)s times": "被踢出 %(repeats)s 次",
+ "was kicked %(repeats)s times": "被踢出 %(repeats)s 次",
+ "were kicked": "被踢出",
+ "was kicked": "被踢出",
+ "Desktop specific": "桌面特有的",
+ "You must join the room to see its files": "你必须加入聊天室以看到它的文件",
+ "Failed to invite the following users to the %(roomName)s room:": "邀请以下用户到 %(roomName)s 聊天室失败:",
+ "Confirm Removal": "确认移除",
+ "This will make your account permanently unusable. You will not be able to re-register the same user ID.": "这会让你的账户永远不可用。你无法重新注册同一个用户 ID.",
+ "Verifies a user, device, and pubkey tuple": "验证一个用户、设备和密钥元组",
+ "We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "我们在尝试恢复你之前的会话时遇到了一个错误。如果你继续,你将需要重新登录,加密的聊天历史将会不可读。",
+ "Unknown devices": "未知设备",
+ "Unknown Address": "未知地址",
+ "%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s 删除了他们的昵称 (%(oldDisplayName)s).",
+ "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "你提供的签名密钥和你从 %(userId)s 的设备 (deviceId)s 收到的签名密钥匹配。设备被标记为已验证。",
+ "These are experimental features that may break in unexpected ways": "这些是可能以意外的方式坏掉的实验性的特性",
+ "The visibility of existing history will be unchanged": "现有历史记录的可见性不会被改变",
+ "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s 打开了端到端加密 (算法 %(algorithm)s).",
+ "Unable to remove contact information": "无法移除联系人信息",
+ "Resend all or cancel all now. You can also select individual messages to resend or cancel.": "现在 重发全部 或者 取消全部。你也可以选择重发或取消单独的消息。",
+ "were invited %(repeats)s times": "被邀请 %(repeats)s 次",
+ "was invited %(repeats)s times": "被邀请 %(repeats)s 次",
+ "Riot collects anonymous analytics to allow us to improve the application.": "Riot 收集匿名的分析数据来允许我们改善这个应用。",
+ "\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" 包含你以前没见过的设备。",
+ "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "你可以使用自定义的服务器选项来通过指定一个不同的主服务器 URL 来登录其他 Matrix 服务器。",
+ "This allows you to use this app with an existing Matrix account on a different home server.": "这允许你用一个已有在不同主服务器的 Matrix 账户使用这个应用。",
+ "Please check your email to continue registration.": "请查看你的电子邮件以继续注册。",
+ "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "如果你不指定一个电子邮箱地址,你将不能重置你的密码。你确定吗?",
+ "Home server URL": "主服务器 URL",
+ "Identity server URL": "身份服务器 URL",
+ "What does this mean?": "这是什么意思?",
+ "Image '%(Body)s' cannot be displayed.": "图像 '%(Body)s' 无法显示。",
+ "This image cannot be displayed.": "图像无法显示。",
+ "Add an Integration": "添加一个集成",
+ "Removed or unknown message type": "被移除或未知的消息类型",
+ "Disable URL previews by default for participants in this room": "对这个聊天室的参与者默认禁用 URL 预览",
+ "Enable URL previews for this room (affects only you)": "在这个聊天室启用 URL 预览(只影响你)",
+ "Ongoing conference call%(supportedText)s.": "正在进行的会议通话 %(supportedText)s.",
+ "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s 修改了 %(roomName)s 的头像",
+ "This will be your account name on the homeserver, or you can pick a different server.": "这将会成为你在 主服务器上的账户名,或者你可以选择一个 不同的服务器。",
+ "Your browser does not support the required cryptography extensions": "你的浏览器不支持所需的密码学扩展",
+ "Authentication check failed: incorrect password?": "身份验证失败:密码错误?",
+ "This will allow you to reset your password and receive notifications.": "这将允许你重置你的密码和接收通知。",
+ "Share without verifying": "不验证就分享",
+ "You added a new device '%(displayName)s', which is requesting encryption keys.": "你添加了一个新的设备 '%(displayName)s',它正在请求加密密钥。",
+ "Your unverified device '%(displayName)s' is requesting encryption keys.": "你的未验证的设备 '%(displayName)s' 正在请求加密密钥。",
+ "Encryption key request": "加密密钥请求",
+ "Autocomplete Delay (ms):": "自动完成延迟(毫秒):",
+ "%(widgetName)s widget added by %(senderName)s": "%(widgetName)s 小组建被 %(senderName)s 添加",
+ "%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s 小组建被 %(senderName)s 移除",
+ "%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s 小组建被 %(senderName)s 修改"
}
diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json
index 93ac57330a..6e0cfd3892 100644
--- a/src/i18n/strings/zh_Hant.json
+++ b/src/i18n/strings/zh_Hant.json
@@ -1,7 +1,6 @@
{
"An email has been sent to": "一封郵件已經被發送到",
"A new password must be entered.": "一個新的密碼必須被輸入。.",
- "anyone": "任何人",
"An error has occurred.": "一個錯誤出現了。",
"Anyone who knows the room's link, apart from guests": "任何知道房間連結的人,但訪客除外",
"Anyone who knows the room's link, including guests": "任何知道房間連結的人,包括訪客",
@@ -9,86 +8,17 @@
"Are you sure you want to reject the invitation?": "您確認要謝絕邀請嗎?",
"Are you sure you want to upload the following files?": "您確認要上傳以下文件嗎?",
"Attachment": "附件",
- "Autoplay GIFs and videos": "自動播放GIF和視頻",
+ "Autoplay GIFs and videos": "自動播放 GIF 和影片",
"%(senderName)s banned %(targetName)s.": "%(senderName)s 封禁了 %(targetName)s.",
"Ban": "封禁",
"Banned users": "被封禁的用戶",
"Blacklisted": "已列入黑名單",
"Bug Report": "臭蟲回報",
"Call Timeout": "通話超時",
- "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "無法連結主伺服器 - 請檢查網路狀況並確保您的 主伺服器 SSL 證書 得到信任",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "當瀏覽器網址列裡有 HTTPS URL 時,不能使用 HTTP 連線到家伺服器。請採用 HTTPS 或者允許不安全的指令稿。",
"Can't load user settings": "無法載入使用者設定",
"Change Password": "變更密碼",
"%(targetName)s left the room.": "%(targetName)s 離開了聊天室。.",
- "af": "南非荷蘭語",
- "ar-ae": "阿拉伯語 (U.A.E.)",
- "ar-bh": "阿拉伯語 (巴林)",
- "ar-dz": "阿拉伯語 (阿爾吉利亞)",
- "ar-eg": "阿拉伯語 (埃及)",
- "ar-iq": "阿拉伯語 (伊拉克)",
- "ar-jo": "阿拉伯語 (約旦)",
- "ar-kw": "阿拉伯語 (科威特)",
- "ar-lb": "阿拉伯語 (黎巴嫩)",
- "ar-ly": "阿拉伯語 (利比亞)",
- "ar-ma": "阿拉伯語 (摩洛哥)",
- "ar-om": "阿拉伯語 (阿曼)",
- "ar-qa": "阿拉伯語 (卡達)",
- "ar-sa": "阿拉伯語 (沙烏地阿拉伯)",
- "ar-sy": "阿拉伯語 (敍利亞)",
- "ar-tn": "阿拉伯語 (突尼斯)",
- "ar-ye": "阿拉伯語 (葉門)",
- "be": "白俄羅斯語",
- "bg": "保加利亞",
- "ca": "加泰羅尼亞語",
- "cs": "捷克語",
- "da": "丹麥語",
- "de-at": "德語(奧地利)",
- "de-ch": "德語(瑞士)",
- "de": "德語",
- "de-lu": "德語(盧森堡)",
- "el": "希臘語",
- "en-au": "英語(澳大利亞)",
- "en-bz": "英語 (貝里茲)",
- "en-ca": "英語 (加拿大)",
- "en": "英語",
- "en-gb": "英語 (英國)",
- "en-ie": "英語 (愛爾蘭)",
- "en-jm": "英語 (牙買加)",
- "en-nz": "英語 (新西蘭)",
- "en-tt": "英語 (千里達)",
- "en-us": "英語 (美國)",
- "en-za": "英語 (南非)",
- "es-ar": "西班牙語 (阿根廷)",
- "es-bo": "西班牙語 (波利維亞)",
- "es-cl": "西班牙語 (智利)",
- "es-co": "西班牙語 (哥倫比亞)",
- "es-cr": "西班牙語 (哥斯大黎加)",
- "es-do": "西班牙語 (多明尼加共和國)",
- "es-ec": "西班牙語 (厄瓜多)",
- "es-gt": "西班牙語 (瓜地馬拉)",
- "es-hn": "西班牙語 (宏都拉斯)",
- "es-mx": "西班牙語 (墨西哥)",
- "es-ni": "西班牙語 (尼加拉瓜)",
- "es-pa": "西班牙語 (巴拿馬)",
- "es-pe": "西班牙語 (祕魯)",
- "es-pr": "西班牙語 (波多黎各)",
- "es-py": "西班牙語 (巴拉圭)",
- "es": "西班牙語 (西班牙)",
- "es-sv": "西班牙語 (薩爾瓦多)",
- "es-uy": "西班牙語 (烏拉圭)",
- "es-ve": "西班牙語 (委內瑞拉)",
- "fr-be": "法語 (比利時)",
- "fr-ca": "法語 (加拿大)",
- "fr-ch": "法語 (瑞士)",
- "fr": "法語 (法國)",
- "fr-lu": "法語 (慮森堡)",
- "zh-cn": "中文(中國)",
- "zh-hk": "中文(香港)",
- "zh-sg": "中文(新加坡)",
- "zh-tw": "中文(台灣)",
- "zu": "祖魯語",
- "accept": "接受",
"Account": "帳號",
"Access Token:": "取用令牌:",
"Add email address": "添加郵件地址",
@@ -96,22 +26,14 @@
"Admin": "管理者",
"Advanced": "高級",
"Algorithm": "算法",
- "Always show message timestamps": "總是顯示消息時間戳",
+ "Always show message timestamps": "總是顯示訊息時間戳",
"Authentication": "授權",
- "all room members": "所有聊天室成員",
- "all room members, from the point they are invited": "所有聊天室成員,從他們被邀請開始",
- "all room members, from the point they joined": "所有聊天室成員,從他們加入開始",
- "an address": "一個地址",
- "and": "和",
"%(items)s and %(remaining)s others": "%(items)s 和 %(remaining)s 其它",
"%(items)s and one other": "%(items)s 和其它",
"%(items)s and %(lastItem)s": "%(items)s 和 %(lastItem)s",
- "and one other...": "與另一個...",
"%(names)s and %(lastPerson)s are typing": "%(names)s 和 %(lastPerson)s 正在打字",
- "%(names)s and %(count)s others are typing": "%(names)s 和另外 %(count)s 個人正在打字",
"%(senderName)s answered the call.": "%(senderName)s 接了通話。.",
"Clear Cache": "清理緩存",
- "Click here": "點擊這里",
"Click here to fix": "點擊這里修復",
"Confirm password": "確認密碼",
"Confirm your new password": "確認你的新密碼",
@@ -123,17 +45,15 @@
"/ddg is not a command": "/ddg 不是一個命令",
"Deactivate Account": "銷毀賬號",
"Deactivate my account": "銷毀我的帳號",
- "decline": "拒絕",
"Decrypt %(text)s": "解密 %(text)s",
"Decryption error": "解密出錯",
"Delete": "刪除",
- "Default": "默認",
- "Device ID": "設備識別碼",
- "Devices": "設備列表",
- "Devices will not yet be able to decrypt history from before they joined the room": "新加入聊天室的設備不能解密加入之前的聊天記錄",
- "Direct Chat": "私人聊天",
+ "Default": "預設",
+ "Device ID": "裝置識別碼",
+ "Devices": "裝置列表",
+ "Devices will not yet be able to decrypt history from before they joined the room": "新加入聊天室的裝置不能解密加入之前的聊天記錄",
"Direct chats": "私聊",
- "Disable inline URL previews by default": "默認禁用自動網址預覽",
+ "Disable inline URL previews by default": "預設停用自動網址預覽",
"Disinvite": "取消邀請",
"Display name": "顯示名稱",
"Displays action": "顯示操作",
@@ -141,12 +61,12 @@
"Download %(text)s": "下載 %(text)s",
"Drop here %(toAction)s": "拖曳到這裡 %(toAction)s",
"Ed25519 fingerprint": "Ed25519指紋",
- "Email": "電子郵箱",
- "Email address": "電子郵箱地址",
- "Email, name or matrix ID": "電子郵箱,姓名或者matrix ID",
+ "Email": "電子郵件",
+ "Email address": "電子郵件地址",
+ "Email, name or matrix ID": "電子郵件、名稱或者matrix ID",
"Emoji": "顏文字",
"Enable encryption": "啟用加密",
- "Encrypted messages will not be visible on clients that do not yet implement encryption": "不支持加密的客戶端將看不到加密的消息",
+ "Encrypted messages will not be visible on clients that do not yet implement encryption": "不支援加密的客戶端將看不到加密的訊息",
"Encrypted room": "加密聊天室",
"%(senderName)s ended the call.": "%(senderName)s 結束了通話。.",
"End-to-end encryption information": "端到端加密信息",
@@ -159,10 +79,9 @@
"Export E2E room keys": "導出聊天室的端到端加密密鑰",
"Failed to ban user": "封禁用戶失敗",
"Failed to change password. Is your password correct?": "變更密碼失敗。您的密碼正確嗎?",
- "Failed to delete device": "刪除設備失敗",
+ "Failed to delete device": "刪除裝置失敗",
"Failed to forget room %(errCode)s": "無法忘記聊天室 %(errCode)s",
"Failed to join room": "無法加入聊天室",
- "Failed to join the room": "無法加入此聊天室",
"Failed to kick": "踢人失敗",
"Failed to leave room": "無法離開聊天室",
"Failed to load timeline position": "無法加載時間軸位置",
@@ -179,74 +98,66 @@
"Failed to toggle moderator status": "無法切換管理員權限",
"Failed to unban": "解除封禁失敗",
"Failed to upload file": "上傳文件失敗",
- "Failed to verify email address: make sure you clicked the link in the email": "郵箱驗證失敗: 請確保你已點擊郵件中的鏈接",
+ "Failed to verify email address: make sure you clicked the link in the email": "電子郵件地址驗證失敗: 請確保你已點擊郵件中的連結",
"Failure to create room": "創建聊天室失敗",
"Favourite": "我的最愛",
- "favourite": "收藏",
"Favourites": "收藏夾",
"Fill screen": "全螢幕顯示",
"Filter room members": "過濾聊天室成員",
"Forget room": "忘記聊天室",
"Forgot your password?": "忘記密碼?",
- "For security, this session has been signed out. Please sign in again.": "出於安全考慮,此會話已被注銷。請重新登錄。.",
- "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "出於安全考慮,用戶注銷時會清除瀏覽器里的端到端加密密鑰。如果你想要下次登錄 Riot 時能解密過去的聊天記錄,請導出你的聊天室密鑰。",
+ "For security, this session has been signed out. Please sign in again.": "因為安全因素,此工作階段已被登出。請重新登入。",
+ "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "因為安全因素,登出將會從此瀏覽器刪除任何端到端加密的金鑰。若您想要在未來的 Riot 工作階段中解密您的對話紀錄,請將您的聊天室金鑰匯出並好好存放。",
"Found a bug?": "發現漏洞?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s 從 %(fromPowerLevel)s 變為 %(toPowerLevel)s",
- "Guests can't set avatars. Please register.": "游客不能設置頭像。請注冊。.",
- "Guest users can't create new rooms. Please register to create room and start a chat.": "游客不能創建聊天室。請注冊以創建聊天室和聊天.",
- "Guest users can't upload files. Please register to upload.": "訪客不能上傳檔案。請註冊以上傳。",
- "Guests can't use labs features. Please register.": "游客不能使用實驗性功能。請注冊。.",
"Guests cannot join this room even if explicitly invited.": "游客不能加入此聊天室,即使有人主動邀請。.",
- "had": "已經",
"Hangup": "掛斷",
"Hide read receipts": "隱藏已讀回執",
"Hide Text Formatting Toolbar": "隱藏格式工具欄",
"Historical": "曆史",
"Homeserver is": "主服務器是",
"Identity Server is": "身份認證服務器是",
- "I have verified my email address": "我已經驗證了我的郵箱地址",
+ "I have verified my email address": "我已經驗證了我的電子郵件地址",
"Import E2E room keys": "導入聊天室端對端加密密鑰",
"Incorrect verification code": "驗證碼錯誤",
"Interface Language": "界面語言",
"Invalid alias format": "別名格式錯誤",
"Invalid address format": "地址格式錯誤",
- "Invalid Email Address": "郵箱地址格式錯誤",
+ "Invalid Email Address": "無效的電子郵件地址",
"Invalid file%(extra)s": "非法文件%(extra)s",
"Invite new room members": "邀請新的聊天室成員",
"Join Room": "加入聊天室",
- "joined": "加入了",
"%(targetName)s joined the room.": "%(targetName)s 加入了聊天室。.",
- "Jump to first unread message.": "跳到第一條未讀消息。",
+ "Jump to first unread message.": "跳到第一則未讀訊息。",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s 把 %(targetName)s 踢出了聊天室。.",
"Leave room": "離開聊天室",
"Login as guest": "以游客的身份登錄",
"New password": "新密碼",
"Report it": "報告",
- "Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "重設密碼會導致所有設備上的端到端加密密鑰被重置,使得加密的聊天記錄不可讀,除非你事先導出密鑰,修改密碼后再導入。此問題將來會得到改善。.",
- "restore": "恢復",
+ "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.": "重設密碼目前會把所有裝置上的端到端加密金鑰重設,讓已加密的聊天歷史不可讀,除非您先匯出您的聊天室金鑰並在稍後重新匯入。這會在未來改進。",
"Return to app": "返回 App",
"Return to login screen": "返回登錄頁面",
- "Riot does not have permission to send you notifications - please check your browser settings": "Riot 未被允許向你推送消息 - 請檢查瀏覽器設置",
- "Riot was not given permission to send notifications - please try again": "Riot 未被允許推送消息通知 - 請重試",
+ "Riot does not have permission to send you notifications - please check your browser settings": "Riot 未被允許向你推送通知 ── 請檢查您的瀏覽器設定",
+ "Riot was not given permission to send notifications - please try again": "Riot 未被允許向你推送通知 ── 請重試",
"riot-web version:": "riot-網頁版:",
"Room %(roomId)s not visible": "聊天室 %(roomId)s 已隱藏",
"Room Colour": "聊天室顏色",
"Room name (optional)": "聊天室名稱 (可選)",
"Rooms": "聊天室",
"Scroll to bottom of page": "滾動到頁面底部",
- "Scroll to unread messages": "滾動到未讀消息",
+ "Scroll to unread messages": "捲動到未讀訊息",
"Search": "搜尋",
"Search failed": "搜索失敗",
"Searches DuckDuckGo for results": "搜索 DuckDuckGo",
- "Send a message (unencrypted)": "發送消息 (非加密)",
- "Send an encrypted message": "發送加密消息",
- "Sender device information": "發送者的設備信息",
+ "Send a message (unencrypted)": "傳送訊息(未加密)",
+ "Send an encrypted message": "傳送加密訊息",
+ "Sender device information": "發送者的裝置信息",
"Send Invites": "發送邀請",
"Send Reset Email": "發送密碼重設郵件",
"sent an image": "發了一張圖片",
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s 發了一張圖片。.",
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s 向 %(targetDisplayName)s 發了加入聊天室的邀請。.",
- "sent a video": "發了一個視頻",
+ "sent a video": "影片已傳送",
"Server error": "伺服器錯誤",
"Server may be unavailable or overloaded": "服務器可能不可用或者超載",
"Server may be unavailable, overloaded, or search timed out :(": "服務器可能不可用、超載,或者搜索超時 :(",
@@ -261,7 +172,7 @@
"Show timestamps in 12 hour format (e.g. 2:30pm)": "用12小時制顯示時間戳 (如:下午 2:30)",
"Signed Out": "已退出登錄",
"Sign in": "登錄",
- "Sign out": "注銷",
+ "Sign out": "登出",
"since the point in time of selecting this option": "從選擇此選項起",
"since they joined": "從他們加入時起",
"since they were invited": "從他們被邀請時起",
@@ -272,13 +183,12 @@
"Start Chat": "開始聊天",
"Submit": "提交",
"Success": "成功",
- "The default role for new room members is": "此聊天室新成員的默認角色是",
+ "The default role for new room members is": "此聊天室新成員的預設角色是",
"The main address for this room is": "此聊天室的主要地址是",
- "This action cannot be performed by a guest user. Please register to be able to do this.": "訪客無法執行此動作。請註冊以執行此動作。",
- "This email address is already in use": "此郵箱地址已經被使用",
- "This email address was not found": "未找到此郵箱地址",
+ "This email address is already in use": "此電子郵件地址已經被使用",
+ "This email address was not found": "未找到此電子郵件地址",
"%(actionVerb)s this person?": "%(actionVerb)s 這個用戶?",
- "The email address linked to your account must be entered.": "必須輸入和你帳號關聯的郵箱地址。",
+ "The email address linked to your account must be entered.": "必須輸入和你帳號關聯的電子郵件地址。",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "文件 '%(fileName)s' 超過了此主伺服器的上傳大小限制",
"The file '%(fileName)s' failed to upload": "文件 '%(fileName)s' 上傳失敗",
"Turn Markdown off": "關閉Markdown 語法",
@@ -287,9 +197,7 @@
"Unable to add email address": "無法加入電郵地址",
"Unable to capture screen": "無法截取畫面",
"Unable to enable Notifications": "無法啟用通知功能",
- "Would you like to": "你要",
"You are already in a call.": "您正在通話中。",
- "You're not in any rooms yet! Press": "你尚未加入任何聊天室!請按",
"You are trying to access %(roomName)s.": "您將嘗試進入 %(roomName)s 聊天室。",
"You cannot place a call with yourself.": "你不能打電話給自已。",
"You cannot place VoIP calls in this browser.": "在此瀏覽器中您無法撥打 VoIP 通話。",
@@ -306,7 +214,7 @@
"Idle": "閒置",
"Offline": "下線",
"Disable URL previews for this room (affects only you)": "在這個房間禁止URL預覽(只影響你)",
- "$senderDisplayName changed the room avatar to
": "$senderDisplayName 更改了聊天室的圖像為
",
+ "%(senderDisplayName)s changed the room avatar to
": "%(senderDisplayName)s 更改了聊天室的圖像為
",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s 移除了聊天室圖片。",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s 更改了聊天室 %(roomName)s 圖像",
"Cancel": "取消",
@@ -318,18 +226,10 @@
"powered by Matrix": "由 Matrix 架設",
"Remove": "移除",
"unknown error code": "未知的錯誤代碼",
- "Sunday": "星期日",
- "Monday": "星期一",
- "Tuesday": "星期二",
- "Wednesday": "星期三",
- "Thursday": "星期四",
- "Friday": "星期五",
- "Saturday": "星期六",
"OK": "確定",
- "Please Register": "請註冊",
"Add a topic": "新增標題",
"VoIP": "VoIP",
- "Default Device": "默認裝置",
+ "Default Device": "預設裝置",
"Microphone": "麥克風",
"Camera": "攝影機",
"Anyone": "任何人",
@@ -339,9 +239,8 @@
"Device ID:": "裝置 ID:",
"device id: ": "裝置 ID: ",
"Reason": "原因",
- "Register": "注冊",
- "rejected": "拒絕",
- "Default server": "默認的伺服器",
+ "Register": "註冊",
+ "Default server": "預設伺服器",
"Custom server": "自定的伺服器",
"Home server URL": "自家伺服器網址",
"Identity server URL": "識別伺服器網址",
@@ -353,72 +252,18 @@
"Error decrypting video": "解密影片出錯",
"Add an Integration": "新增整合器",
"Ongoing conference call%(supportedText)s.": "%(supportedText)s 正在進行會議通話。",
- " (unsupported)": " (不支持)",
+ " (unsupported)": " (不支援)",
"URL Previews": "網址預覽",
"Enable URL previews for this room (affects only you)": "啟用此房間的網址預覽(僅影響您)",
"Drop file here to upload": "把文件放在這裡上傳",
- "Disable URL previews by default for participants in this room": "默認情況下,此房間的參與者禁用網址預覽",
- "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "默認情況下,這個房間的參與者的網址預覽是%(globalDisableUrlPreview)s。",
+ "Disable URL previews by default for participants in this room": "預設情況下,此房間的參與者停用網址預覽",
+ "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "預設情況下,這個房間的參與者的網址預覽是%(globalDisableUrlPreview)s。",
"Removed or unknown message type": "已刪除或未知的信息類型",
"You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "您即將被帶到第三方網站,以便您可以驗證您的帳戶以使用%(integrationsUrl)s。你想繼續嗎?",
"Close": "關閉",
"Create new room": "建立新聊天室",
"Room directory": "聊天室目錄",
"Start chat": "開始聊天",
- "Welcome page": "歡迎頁面",
- "de-li": "德語(列支敦斯登)",
- "et": "愛沙尼亞語",
- "eu": "巴斯克語(巴斯克)",
- "fa": "波斯語",
- "fi": "芬蘭語",
- "fo": "法羅語",
- "ga": "愛爾蘭語",
- "gd": "蓋爾語(蘇格蘭)",
- "he": "希伯來語",
- "hi": "印地語",
- "hr": "克羅埃西亞語",
- "hu": "匈牙利語",
- "id": "印尼語",
- "is": "冰島語",
- "it-ch": "義大利語(瑞士)",
- "it": "義大利語",
- "ja": "日語",
- "ji": "意第緒語",
- "ko": "韓語",
- "lt": "立陶宛語",
- "lv": "拉脫維亞語",
- "mk": "馬其頓語(前南斯拉夫馬其頓共和國)",
- "ms": "馬來西亞語",
- "mt": "馬爾他語",
- "nl-be": "荷蘭語(比利時)",
- "nl": "荷蘭語",
- "no": "挪威語",
- "pl": "波蘭語",
- "pt-br": "巴西葡萄牙語",
- "pt": "葡萄牙語",
- "rm": "羅曼拉丁語",
- "ro-mo": "羅馬尼亞語(摩爾多瓦共和國)",
- "ro": "羅馬尼亞語",
- "ru-mo": "俄語(摩爾多瓦共和國)",
- "ru": "俄語",
- "sb": "索布語",
- "sk": "斯洛伐克語",
- "sl": "斯洛維尼亞語",
- "sq": "阿爾巴尼亞語",
- "sr": "塞爾維亞語",
- "sv-fi": "瑞典語(芬蘭)",
- "sv": "瑞典語",
- "sx": "蘇圖語",
- "sz": "基爾丁-薩米語",
- "th": "泰語",
- "tn": "札那語",
- "tr": "土耳其語",
- "ts": "聰加語",
- "uk": "烏克蘭語",
- "ur": "烏爾都語",
- "ve": "文達語",
- "vi": "越南語",
- "xh": "科薩語",
"a room": "房間",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "文字訊息將會傳送到 +%(msisdn)s。請輸入其中包含的驗證碼",
"Accept": "接受",
@@ -426,8 +271,7 @@
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s 已接受 %(displayName)s 的邀請。",
"Active call (%(roomName)s)": "活躍的通話(%(roomName)s)",
"Add": "新增",
- "Admin tools": "管理員工具",
- "And %(count)s more...": "還有 %(count)s 個...",
+ "Admin Tools": "管理員工具",
"Missing Media Permissions, click here to request.": "遺失媒體權限,點選這裡來要求。",
"No Microphones detected": "未偵測到麥克風",
"No Webcams detected": "未偵測到網路攝影機",
@@ -435,7 +279,6 @@
"You may need to manually permit Riot to access your microphone/webcam": "您可能需要手動允許 Riot 存取您的麥克風/網路攝影機",
"Hide removed messages": "隱藏已移除的訊息",
"Alias (optional)": "別名(選擇性)",
- "and %(overflowCount)s others...": "和另外 %(overflowCount)s 個...",
"%(names)s and one other are typing": "%(names)s 與另外一個人正在輸入",
"Are you sure you want to leave the room '%(roomName)s'?": "您確定您要想要離開房間 '%(roomName)s' 嗎?",
"Bans user with given id": "禁止有指定 ID 的使用者",
@@ -448,7 +291,6 @@
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s 已經變更主題為「%(topic)s」。",
"Changes to who can read history will only apply to future messages in this room": "變更誰可以讀取歷史紀錄的設定僅套用於此房間未來的訊息",
"Changes your display nickname": "變更您的顯示暱稱",
- "changing room on a RoomView is not supported": "不支援在房間檢視時變更房間",
"Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "目前變更密碼將會重設在所有裝置上的端對端加密金鑰,讓加密的聊天歷史無法讀取,除非您先匯出您的房間金鑰,並在稍後重新匯入它們。這會在未來改進。",
"Claimed Ed25519 fingerprint key": "已索取 Ed25519 指紋金鑰",
"Clear Cache and Reload": "清除快取並重新載入",
@@ -463,8 +305,8 @@
"Conference calls are not supported in encrypted rooms": "不支援在加密房間的會議通話",
"Conference calls are not supported in this client": "這個客戶端不支援會議通話",
"Could not connect to the integration server": "無法連線到整合的伺服器",
- "%(count)s new messages.one": "%(count)s 個訊息",
- "%(count)s new messages.other": "%(count)s 個訊息",
+ "%(count)s new messages|one": "%(count)s 個訊息",
+ "%(count)s new messages|other": "%(count)s 個訊息",
"Create a new chat or reuse an existing one": "建立新聊天或重新使用既有的",
"Curve25519 identity key": "Curve25519 辨識金鑰",
"Custom": "自訂",
@@ -475,7 +317,6 @@
"Device key:": "裝置金鑰:",
"Disable Notifications": "停用通知",
"disabled": "已停用",
- "Disable markdown formatting": "停用 markdown 格式化",
"Drop File Here": "在此放置檔案",
"Drop here to tag %(section)s": "在此放置以標記 %(section)s",
"Email address (optional)": "電子郵件地址(選擇性)",
@@ -490,7 +331,6 @@
"Export": "匯出",
"Failed to change power level": "變更權限等級失敗",
"Failed to fetch avatar URL": "擷取大頭貼 URL 失敗",
- "Failed to register as guest:": "註冊為訪客失敗:",
"Failed to upload profile picture!": "上傳基本資料圖片失敗!",
"Guest access is disabled on this Home Server.": "此家伺服器的訪客存取已停用。",
"Home": "家",
@@ -508,20 +348,21 @@
"%(displayName)s is typing": "%(displayName)s 正在輸入",
"Sign in with": "登入使用",
"Join as voice or video.": "加入為語音或視訊。",
- "joined and left": "加入並離開",
"Joins room with given alias": "以指定的別名加入房間",
"Kick": "踢出",
"Kicks user with given id": "踢出指定 ID 的使用者",
"Labs": "實驗室",
"Last seen": "上次檢視",
- "left and rejoined": "離開並重新加入",
- "left": "離開",
"Level:": "等級:",
"Local addresses for this room:": "此房間的本機地址:",
"Logged in as:": "登入為:",
"Logout": "登出",
"Low priority": "低優先度",
- "%(senderName)s made future room history visible to": "%(senderName)s 讓未來的房間歷史紀錄可見於",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s 讓未來的房間歷史紀錄可見於 所有聊天室成員,從他們被邀請開始.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s 讓未來的房間歷史紀錄可見於 所有聊天室成員,從他們加入開始.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s 讓未來的房間歷史紀錄可見於 所有聊天室成員.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s 讓未來的房間歷史紀錄可見於 任何人.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s 讓未來的房間歷史紀錄可見於 未知 (%(visibility)s).",
"Manage Integrations": "管裡整合",
"Markdown is disabled": "Markdown 已停用",
"Markdown is enabled": "Markdown 已啟用",
@@ -534,13 +375,10 @@
"Mobile phone number (optional)": "行動電話號碼(選擇性)",
"Moderator": "仲裁者",
"Must be viewing a room": "必須檢視房間",
- "my Matrix ID": "我的 Matrix ID",
"Name": "名稱",
"Never send encrypted messages to unverified devices from this device": "從不自此裝置傳送加密的訊息到未驗證的裝置",
- "Never send encrypted messages to unverified devices in this room": "從不在此房間傳送加密的訊息到未驗證的裝置",
"Never send encrypted messages to unverified devices in this room from this device": "從不在此房間中從此裝置上傳送未加密的訊息到未驗證的裝置",
"New address (e.g. #foo:%(localDomain)s)": "新地址(例如:#foo:%(localDomain)s)",
- "New Composer & Autocomplete": "新 Composer 與自動完成",
"New passwords don't match": "新密碼不相符",
"New passwords must match each other.": "新密碼必須互相符合。",
"none": "無",
@@ -556,7 +394,7 @@
"No users have specific privileges in this room": "此房間中沒有使用者有指定的權限",
"olm version:": "olm 版本:",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "這個房間只要啟用加密就不能再關掉了(從現在開始)",
- "Once you've followed the link it contains, click below": "一旦您跟著它所包含的連結,點選下方",
+ "Once you've followed the link it contains, click below": "一旦您跟著它所包含的連結,點選下方",
"Only people who have been invited": "僅有被邀請的夥伴",
"Otherwise, click here to send a bug report.": "否則,請點選此處來傳送錯誤報告。",
"Password": "密碼",
@@ -566,10 +404,8 @@
"Permissions": "權限",
"Phone": "電話",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s 打了 %(callType)s 通話。",
- "demote": "降級",
"Please check your email and click on the link it contains. Once this is done, click continue.": "請檢查您的電子郵件並點選其中包含的連結。只要這個完成了,就點選選繼續。",
"Power level must be positive integer.": "權限等級必需為正整數。",
- "Press": "按下",
"Press to start a chat with someone": "按下 以開始與某人聊天",
"Privacy warning": "隱私警告",
"Private Chat": "私密聊天",
@@ -593,21 +429,16 @@
"%(roomName)s does not exist.": "%(roomName)s 不存在。",
"%(roomName)s is not accessible at this time.": "%(roomName)s 此時無法存取。",
"Save": "儲存",
- "Searching known users": "搜尋已知的使用者",
"Seen by %(userName)s at %(dateTime)s": "%(userName)s 在 %(dateTime)s 時看過",
"Send anyway": "無論如何都要傳送",
- "Set": "設定",
"Show Text Formatting Toolbar": "顯示文字格式化工具列",
"Start authentication": "開始認證",
- "tag as %(tagName)s": "標記為 %(tagName)s",
- "tag direct chat": "標記直接聊天",
"Tagged as: ": "標記為: ",
"The phone number entered looks invalid": "輸入的電話號碼看起來無效",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "您提供的簽署金鑰與您從 %(userId)s 的裝置 %(deviceId)s 收到的簽署金鑰相符。裝置被標記為已驗證。",
"The remote side failed to pick up": "遠端未能接聽",
"This Home Server does not support login using email address.": "這個家伺服器不支援使用電子郵件地址登入。",
"This invitation was sent to an email address which is not associated with this account:": "這份邀請被傳送給與此帳號無關的電子郵件地址:",
- "There was a problem logging in.": "登入時出現問題。",
"This room has no local addresses": "此房間沒有本機地址",
"This room is not recognised.": "此房間不被認可。",
"These are experimental features that may break in unexpected ways": "這些是可能會以非預期的方式故障的實驗性功能",
@@ -618,29 +449,16 @@
"This room": "此房間",
"This room is not accessible by remote Matrix servers": "此房間無法被遠端的 Matrix 伺服器存取",
"This room's internal ID is": "此房間的內部 ID 為",
- "times": "次數",
- "To ban users": "要禁止使用者",
- "to browse the directory": "要瀏覽目錄",
- "To configure the room": "要設定房間",
"to demote": "要降級",
"to favourite": "到喜歡",
- "To invite users into the room": "要邀請使用者進入此房間",
- "To kick users": "要踢出使用者",
"To link to a room it must have an address.": "要連結到房間,它必須有地址。",
- "to make a room or": "要開房間或",
- "To remove other users' messages": "要移除其他使用者的訊息",
"To reset your password, enter the email address linked to your account": "要重設您的密碼,輸入連結到您的帳號的電子郵件地址",
"to restore": "要復原",
- "To send events of type": "要傳送活動類型",
- "To send messages": "要傳送訊息",
- "to start a chat with someone": "要開始與某人聊天",
- "to tag as %(tagName)s": "要標記為 %(tagName)s",
"to tag direct chat": "要標記直接聊天",
"To use it, just wait for autocomplete results to load and tab through them.": "要使用它,只要等待自動完成的結果載入並在它們上面按 Tab。",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "嘗試載入此房間時間軸的特定時間點,但是問題是您沒有權限檢視相關的訊息。",
"Tried to load a specific point in this room's timeline, but was unable to find it.": "嘗試載入此房間時間軸的特定時間點,但是找不到。",
"Unable to remove contact information": "無法移除聯絡人資訊",
- "Unable to restore previous session": "無法復原先前的工作階段",
"Unable to verify email address.": "無法驗證電子郵件。",
"Unban": "解除禁止",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s 解除禁止 %(targetName)s。",
@@ -651,19 +469,17 @@
"unencrypted": "未加密",
"Unencrypted message": "未加密的訊息",
"unknown caller": "不明來電",
- "Unknown command": "未知的命令",
"unknown device": "未知的裝置",
"Unknown room %(roomId)s": "未知的房間 %(roomId)s",
"Unknown (user, device) pair:": "未知的(使用者,裝置)配對:",
- "unknown": "未知",
"Unmute": "解除靜音",
"Unnamed Room": "未命名的房間",
"Unrecognised command:": "無法識別的命令:",
"Unrecognised room alias:": "無法室別的房間別名:",
"Unverified": "未驗證",
- "Uploading %(filename)s and %(count)s others.zero": "正在上傳 %(filename)s",
- "Uploading %(filename)s and %(count)s others.one": "正在上傳 %(filename)s 與另外 %(count)s 個",
- "Uploading %(filename)s and %(count)s others.other": "正在上傳 %(filename)s 與另外 %(count)s 個",
+ "Uploading %(filename)s and %(count)s others|zero": "正在上傳 %(filename)s",
+ "Uploading %(filename)s and %(count)s others|one": "正在上傳 %(filename)s 與另外 %(count)s 個",
+ "Uploading %(filename)s and %(count)s others|other": "正在上傳 %(filename)s 與另外 %(count)s 個",
"uploaded a file": "已上傳檔案",
"Upload avatar": "上傳大頭貼",
"Upload Failed": "上傳失敗",
@@ -713,10 +529,8 @@
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "您已在所有裝置上登出,並且不會再收到推送通知。要重新啟用通知,再次於每個裝置上登入",
"You have disabled URL previews by default.": "您已預設停用 URL 預覽。",
"You have enabled URL previews by default.": "您已預設啟用 URL 預覽。",
- "You have entered an invalid contact. Try using their Matrix ID or email address.": "您輸入了無效的聯絡人。嘗試使用他們的 Matrix ID 或電子郵件地址。",
"You have no visible notifications": "您沒有可見的通知",
"You may wish to login with a different account, or add this email to this account.": "您可能會想要以不同的帳號登入,或是把這個電子郵件加入到此帳號中。",
- "you must be a": "您一定是",
"You must register to use this functionality": "您必須註冊以使用此功能",
"You need to be able to invite users to do that.": "您需要邀請使用者來做這件事。",
"You need to be logged in.": "您需要登入。",
@@ -749,7 +563,6 @@
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s",
"%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
"Set a display name:": "設定顯示名稱:",
- "Set a Display Name": "設定顯示名稱",
"Upload an avatar:": "上傳大頭貼:",
"This server does not support authentication with a phone number.": "這個伺服器不支援以電話號碼認證。",
"Missing password.": "密碼遺失。",
@@ -770,11 +583,9 @@
"Room": "房間",
"Connectivity to the server has been lost.": "至伺服器的連線已遺失。",
"Sent messages will be stored until your connection has returned.": "傳送的訊息會在您的連線恢復前先儲存起來。",
- "Auto-complete": "自動完成",
"Resend all or cancel all now. You can also select individual messages to resend or cancel.": "現在重新傳送全部或是取消全部。您也可以單獨選擇訊息來重新傳送或取消。",
- "(~%(count)s results).one": "(~%(count)s 結果)",
- "(~%(count)s results).other": "(~%(count)s 結果)",
- "or": "或",
+ "(~%(count)s results)|one": "(~%(count)s 結果)",
+ "(~%(count)s results)|other": "(~%(count)s 結果)",
"Active call": "活躍的通話",
"bold": "粗體",
"italic": "斜體",
@@ -849,7 +660,6 @@
"You must join the room to see its files": "您必須加入房間來檢視它的檔案",
"Reject all %(invitedRooms)s invites": "拒絕所有 %(invitedRooms)s 邀請",
"Start new chat": "開始新聊天",
- "Guest users can't invite users. Please register.": "訪客無法邀請使用者。請註冊。",
"Failed to invite": "邀請失敗",
"Failed to invite user": "邀請使用者失敗",
"Failed to invite the following users to the %(roomName)s room:": "邀請下列使用者到 %(roomName)s 房間失敗:",
@@ -872,7 +682,6 @@
"Unable to restore session": "無法復原工作階段",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "若您先前使用過較新版本的 Riot,您的工作階段可能與此版本不相容。關閉此視窗並回到較新的版本。",
"Continue anyway": "無論如何都繼續",
- "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "您的顯示名稱是您在房間裡說話是,別人會看到的名字。您想要怎麼做?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "您目前正把未驗證的裝置列入黑名單;要傳送訊息到這些裝置,您必須先驗證它們。",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "我們建議您對每一個裝置執行驗證過程以確認它們屬於其合法擁有者,但若您想要的話,您也可以重新傳送訊息而不必驗證它們。",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "「%(RoomName)s」包含了您先前沒看過的裝置。",
@@ -920,5 +729,51 @@
"Ignore request": "忽略請求",
"You added a new device '%(displayName)s', which is requesting encryption keys.": "您加入了新裝置 '%(displayName)s',其將會要求加密金鑰。",
"Your unverified device '%(displayName)s' is requesting encryption keys.": "您未驗證的裝置 '%(displayName)s' 正在請求加密金鑰。",
- "Encryption key request": "加密金鑰請求"
+ "Encryption key request": "加密金鑰請求",
+ "Add a widget": "新增小工具",
+ "Allow": "允許",
+ "and %(count)s others...|other": "與其他 %(count)s 個……",
+ "and %(count)s others...|one": "與其他 1 個……",
+ "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": "啟用語法突顯的自動語言偵測",
+ "Hide Apps": "隱藏應用程式",
+ "Hide join/leave messages (invites/kicks/bans unaffected)": "隱藏加入/離開訊息(邀請/踢出/封禁不受影響)",
+ "Hide avatar and display name changes": "隱藏大頭貼與顯示名稱變更",
+ "Integrations Error": "整合錯誤",
+ "Publish this room to the public in %(domain)s's room directory?": "將這個聊天室公開到 %(domain)s 的聊天室目錄中?",
+ "AM": "上午",
+ "PM": "下午",
+ "NOTE: Apps are not end-to-end encrypted": "注意:應用程式並未端到端加密",
+ "Revoke widget access": "撤銷小工具存取",
+ "Sets the room topic": "設定聊天室主題",
+ "Show Apps": "顯示應用程式",
+ "The maximum permitted number of widgets have already been added to this room.": "這個聊天室已經有可加入的最大量的小工具了。",
+ "To get started, please pick a username!": "要開始,請先取一個使用者名稱!",
+ "Unable to create widget.": "無法建立小工具。",
+ "Unbans user with given id": "取消封禁指定 ID 的使用者",
+ "You are not in this room.": "您不在這個聊天室內。",
+ "You do not have permission to do that in this room.": "您沒有在這個聊天室做這件事的權限。",
+ "Verifies a user, device, and pubkey tuple": "驗證使用者、裝置與公開金鑰變數組",
+ "Autocomplete Delay (ms):": "自動完成延遲(毫秒):",
+ "Loading device info...": "正在載入裝置資訊……",
+ "Example": "範例",
+ "Create": "建立",
+ "Room creation failed": "聊天室建立失敗",
+ "Featured Rooms:": "特色聊天室:",
+ "Featured Users:": "特色使用者:",
+ "Automatically replace plain text Emoji": "自動取代純文字為顏文字",
+ "Failed to upload image": "上傳圖片失敗",
+ "Hide avatars in user and room mentions": "在使用者與聊天室提及中隱藏大頭貼",
+ "%(widgetName)s widget added by %(senderName)s": "%(widgetName)s 由 %(senderName)s 所新增",
+ "%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s 由 %(senderName)s 所移除",
+ "Robot check is currently unavailable on desktop - please use a web browser": "機器人檢查目前在桌面端不可用 ── 請使用網路瀏覽器",
+ "%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s 小工具已被 %(senderName)s 修改",
+ "Copied!": "已複製!",
+ "Failed to copy": "複製失敗",
+ "Add rooms to this community": "新增聊天室到此社群"
}
diff --git a/src/languageHandler.js b/src/languageHandler.js
index a19c796f39..e732927a75 100644
--- a/src/languageHandler.js
+++ b/src/languageHandler.js
@@ -19,22 +19,28 @@ import request from 'browser-request';
import counterpart from 'counterpart';
import Promise from 'bluebird';
import React from 'react';
-
-import UserSettingsStore from './UserSettingsStore';
+import SettingsStore, {SettingLevel} from "./settings/SettingsStore";
const i18nFolder = 'i18n/';
+// Control whether to also return original, untranslated strings
+// Useful for debugging and testing
+const ANNOTATE_STRINGS = false;
+
// We use english strings as keys, some of which contain full stops
counterpart.setSeparator('|');
// Fall back to English
counterpart.setFallbackLocale('en');
-// The translation function. This is just a simple wrapper to counterpart,
-// but exists mostly because we must use the same counterpart instance
-// between modules (ie. here (react-sdk) and the app (riot-web), and if we
-// just import counterpart and use it directly, we end up using a different
-// instance.
-export function _t(...args) {
+// Function which only purpose is to mark that a string is translatable
+// Does not actually do anything. It's helpful for automatic extraction of translatable strings
+export function _td(s) {
+ return s;
+}
+
+// Wrapper for counterpart's translation function so that it handles nulls and undefineds properly
+// Takes the same arguments as counterpart.translate()
+function safeCounterpartTranslate(...args) {
// Horrible hack to avoid https://github.com/vector-im/riot-web/issues/4191
// The interpolation library that counterpart uses does not support undefined/null
// values and instead will throw an error. This is a problem since everywhere else
@@ -45,11 +51,11 @@ export function _t(...args) {
if (args[1] && typeof args[1] === 'object') {
Object.keys(args[1]).forEach((k) => {
if (args[1][k] === undefined) {
- console.warn("_t called with undefined interpolation name: " + k);
+ console.warn("safeCounterpartTranslate called with undefined interpolation name: " + k);
args[1][k] = 'undefined';
}
if (args[1][k] === null) {
- console.warn("_t called with null interpolation name: " + k);
+ console.warn("safeCounterpartTranslate called with null interpolation name: " + k);
args[1][k] = 'null';
}
});
@@ -58,74 +64,167 @@ export function _t(...args) {
}
/*
- * Translates stringified JSX into translated JSX. E.g
- * _tJsx(
- * "click here now",
- * /(.*?)<\/a>/,
- * (sub) => { return { sub }; }
- * );
+ * Translates text and optionally also replaces XML-ish elements in the text with e.g. React components
+ * @param {string} text The untranslated text, e.g "click here now to %(foo)s".
+ * @param {object} variables Variable substitutions, e.g { foo: 'bar' }
+ * @param {object} tags Tag substitutions e.g. { 'a': (sub) => {sub} }
*
- * @param {string} jsxText The untranslated stringified JSX e.g "click here now".
- * This will be translated by passing the string through to _t(...)
+ * In both variables and tags, the values to substitute with can be either simple strings, React components,
+ * or functions that return the value to use in the substitution (e.g. return a React component). In case of
+ * a tag replacement, the function receives as the argument the text inside the element corresponding to the tag.
*
- * @param {RegExp|RegExp[]} patterns A regexp to match against the translated text.
- * The captured groups from the regexp will be fed to 'sub'.
- * Only the captured groups will be included in the output, the match itself is discarded.
- * If multiple RegExps are provided, the function at the same position will be called. The
- * match will always be done from left to right, so the 2nd RegExp will be matched against the
- * remaining text from the first RegExp.
+ * Use tag substitutions if you need to translate text between tags (e.g. "Click here!"), otherwise
+ * you will end up with literal "" in your output, rather than HTML. Note that you can also use variable
+ * substitution to insert React components, but you can't use it to translate text between tags.
*
- * @param {Function|Function[]} subs A function which will be called
- * with multiple args, each arg representing a captured group of the matching regexp.
- * This function must return a JSX node.
- *
- * @return a React component containing the generated text
+ * @return a React component if any non-strings were used in substitutions, otherwise a string
*/
-export function _tJsx(jsxText, patterns, subs) {
- // convert everything to arrays
- if (patterns instanceof RegExp) {
- patterns = [patterns];
- }
- if (subs instanceof Function) {
- subs = [subs];
- }
- // sanity checks
- if (subs.length !== patterns.length || subs.length < 1) {
- throw new Error(`_tJsx: programmer error. expected number of RegExps == number of Functions: ${subs.length} != ${patterns.length}`);
- }
- for (let i = 0; i < subs.length; i++) {
- if (!patterns[i] instanceof RegExp) {
- throw new Error(`_tJsx: programmer error. expected RegExp for text: ${jsxText}`);
- }
- if (!subs[i] instanceof Function) {
- throw new Error(`_tJsx: programmer error. expected Function for text: ${jsxText}`);
- }
- }
+export function _t(text, variables, tags) {
+ // Don't do subsitutions in counterpart. We handle it ourselves so we can replace with React components
+ // However, still pass the variables to counterpart so that it can choose the correct plural if count is given
+ // It is enough to pass the count variable, but in the future counterpart might make use of other information too
+ const args = Object.assign({ interpolate: false }, variables);
// The translation returns text so there's no XSS vector here (no unsafe HTML, no code execution)
- const tJsxText = _t(jsxText);
- let output = [tJsxText];
- for (let i = 0; i < patterns.length; i++) {
- // convert the last element in 'output' into 3 elements (pre-text, sub function, post-text).
- // Rinse and repeat for other patterns (using post-text).
- let inputText = output.pop();
- let match = inputText.match(patterns[i]);
- if (!match) {
- throw new Error(`_tJsx: translator error. expected translation to match regexp: ${patterns[i]}`);
- }
- let capturedGroups = match.slice(1);
+ const translated = safeCounterpartTranslate(text, args);
- // Return the raw translation before the *match* followed by the return value of sub() followed
- // by the raw translation after the *match* (not captured group).
- output.push(inputText.substr(0, match.index));
- output.push(subs[i].apply(null, capturedGroups));
- output.push(inputText.substr(match.index + match[0].length));
+ let substituted = substitute(translated, variables, tags);
+
+ // For development/testing purposes it is useful to also output the original string
+ // Don't do that for release versions
+ if (ANNOTATE_STRINGS) {
+ if (typeof substituted === 'string') {
+ return `@@${text}##${substituted}@@`
+ }
+ else {
+ return {substituted};
+ }
+ }
+ else {
+ return substituted;
+ }
+}
+
+/*
+ * Similar to _t(), except only does substitutions, and no translation
+ * @param {string} text The text, e.g "click here now to %(foo)s".
+ * @param {object} variables Variable substitutions, e.g { foo: 'bar' }
+ * @param {object} tags Tag substitutions e.g. { 'a': (sub) => {sub} }
+ *
+ * The values to substitute with can be either simple strings, or functions that return the value to use in
+ * the substitution (e.g. return a React component). In case of a tag replacement, the function receives as
+ * the argument the text inside the element corresponding to the tag.
+ *
+ * @return a React component if any non-strings were used in substitutions, otherwise a string
+ */
+export function substitute(text, variables, tags) {
+ const regexpMapping = {};
+
+ if (variables !== undefined) {
+ for (const variable in variables) {
+ regexpMapping[`%\\(${variable}\\)s`] = variables[variable];
+ }
}
- // this is a bit of a fudge to avoid the 'Each child in an array or iterator
- // should have a unique "key" prop' error: we explicitly pass the generated
- // nodes into React.createElement as children of a .
- return React.createElement('span', null, ...output);
+ if (tags !== undefined) {
+ for (const tag in tags) {
+ regexpMapping[`(<${tag}>(.*?)<\\/${tag}>|<${tag}>|<${tag}\\s*\\/>)`] = tags[tag];
+ }
+ }
+ return replaceByRegexes(text, regexpMapping);
+}
+
+/*
+ * Replace parts of a text using regular expressions
+ * @param {string} text The text on which to perform substitutions
+ * @param {object} mapping A mapping from regular expressions in string form to replacement string or a
+ * function which will receive as the argument the capture groups defined in the regexp. E.g.
+ * { 'Hello (.?) World': (sub) => sub.toUpperCase() }
+ *
+ * @return a React component if any non-strings were used in substitutions, otherwise a string
+ */
+export function replaceByRegexes(text, mapping) {
+ // We initially store our output as an array of strings and objects (e.g. React components).
+ // This will then be converted to a string or a at the end
+ const output = [text];
+
+ // If we insert any components we need to wrap the output in a span. React doesn't like just an array of components.
+ let shouldWrapInSpan = false;
+
+ for (const regexpString in mapping) {
+ // TODO: Cache regexps
+ const regexp = new RegExp(regexpString);
+
+ // Loop over what output we have so far and perform replacements
+ // We look for matches: if we find one, we get three parts: everything before the match, the replaced part,
+ // and everything after the match. Insert all three into the output. We need to do this because we can insert objects.
+ // Otherwise there would be no need for the splitting and we could do simple replcement.
+ let matchFoundSomewhere = false; // If we don't find a match anywhere we want to log it
+ for (const outputIndex in output) {
+ const inputText = output[outputIndex];
+ if (typeof inputText !== 'string') { // We might have inserted objects earlier, don't try to replace them
+ continue;
+ }
+
+ const match = inputText.match(regexp);
+ if (!match) {
+ continue;
+ }
+ matchFoundSomewhere = true;
+
+ const capturedGroups = match.slice(2);
+
+ // The textual part before the match
+ const head = inputText.substr(0, match.index);
+
+ // The textual part after the match
+ const tail = inputText.substr(match.index + match[0].length);
+
+ let replaced;
+ // If substitution is a function, call it
+ if (mapping[regexpString] instanceof Function) {
+ replaced = mapping[regexpString].apply(null, capturedGroups);
+ } else {
+ replaced = mapping[regexpString];
+ }
+
+ if (typeof replaced === 'object') {
+ shouldWrapInSpan = true;
+ }
+
+ output.splice(outputIndex, 1); // Remove old element
+
+ // Insert in reverse order as splice does insert-before and this way we get the final order correct
+ if (tail !== '') {
+ output.splice(outputIndex, 0, tail);
+ }
+
+ // Here we also need to check that it actually is a string before comparing against one
+ // The head and tail are always strings
+ if (typeof replaced !== 'string' || replaced !== '') {
+ output.splice(outputIndex, 0, replaced);
+ }
+
+ if (head !== '') { // Don't push empty nodes, they are of no use
+ output.splice(outputIndex, 0, head);
+ }
+ }
+ if (!matchFoundSomewhere) { // The current regexp did not match anything in the input
+ // Missing matches is entirely possible because you might choose to show some variables only in the case
+ // of e.g. plurals. It's still a bit suspicious, and could be due to an error, so log it.
+ // However, not showing count is so common that it's not worth logging. And other commonly unused variables
+ // here, if there are any.
+ if (regexpString !== '%\\(count\\)s') {
+ console.log(`Could not find ${regexp} in ${text}`);
+ }
+ }
+ }
+
+ if (shouldWrapInSpan) {
+ return React.createElement('span', null, ...output);
+ } else {
+ return output.join('');
+ }
}
// Allow overriding the text displayed when no translation exists
@@ -153,7 +252,7 @@ export function setLanguage(preferredLangs) {
}
if (!langToUse) {
// Fallback to en_EN if none is found
- langToUse = 'en'
+ langToUse = 'en';
console.error("Unable to find an appropriate language");
}
@@ -161,7 +260,7 @@ export function setLanguage(preferredLangs) {
}).then((langData) => {
counterpart.registerTranslations(langToUse, langData);
counterpart.setLocale(langToUse);
- UserSettingsStore.setLocalSetting('language', langToUse);
+ SettingsStore.setValue("language", null, SettingLevel.DEVICE, langToUse);
console.log("set language to " + langToUse);
// Set 'en' as fallback language:
@@ -171,16 +270,16 @@ export function setLanguage(preferredLangs) {
}).then((langData) => {
if (langData) counterpart.registerTranslations('en', langData);
});
-};
+}
export function getAllLanguagesFromJson() {
return getLangsJson().then((langsObject) => {
- var langs = [];
- for (var langKey in langsObject) {
+ const langs = [];
+ for (const langKey in langsObject) {
if (langsObject.hasOwnProperty(langKey)) {
langs.push({
'value': langKey,
- 'label': langsObject[langKey].label
+ 'label': langsObject[langKey].label,
});
}
}
@@ -191,7 +290,7 @@ export function getAllLanguagesFromJson() {
export function getLanguagesFromBrowser() {
if (navigator.languages && navigator.languages.length) return navigator.languages;
if (navigator.language) return [navigator.language];
- return [navigator.userLanguage];
+ return [navigator.userLanguage || "en"];
}
/**
@@ -216,15 +315,15 @@ export function getNormalizedLanguageKeys(language) {
}
}
return languageKeys;
-};
+}
/**
* Returns a language string with underscores replaced with
* hyphens, and lowercased.
*/
export function normalizeLanguageKey(language) {
- return language.toLowerCase().replace("_","-");
-};
+ return language.toLowerCase().replace("_", "-");
+}
export function getCurrentLanguage() {
return counterpart.getLocale();
@@ -240,11 +339,31 @@ function getLangsJson() {
return;
}
resolve(JSON.parse(body));
- }
+ },
);
});
}
+function weblateToCounterpart(inTrs) {
+ const outTrs = {};
+
+ for (const key of Object.keys(inTrs)) {
+ const keyParts = key.split('|', 2);
+ if (keyParts.length === 2) {
+ let obj = outTrs[keyParts[0]];
+ if (obj === undefined) {
+ obj = {};
+ outTrs[keyParts[0]] = obj;
+ }
+ obj[keyParts[1]] = inTrs[key];
+ } else {
+ outTrs[key] = inTrs[key];
+ }
+ }
+
+ return outTrs;
+}
+
function getLanguage(langPath) {
return new Promise((resolve, reject) => {
request(
@@ -254,8 +373,8 @@ function getLanguage(langPath) {
reject({err: err, response: response});
return;
}
- resolve(JSON.parse(body));
- }
+ resolve(weblateToCounterpart(JSON.parse(body)));
+ },
);
});
}
diff --git a/src/linkify-matrix.js b/src/linkify-matrix.js
index e395b7986e..74489a09ea 100644
--- a/src/linkify-matrix.js
+++ b/src/linkify-matrix.js
@@ -16,31 +16,31 @@ limitations under the License.
function matrixLinkify(linkify) {
// Text tokens
- var TT = linkify.scanner.TOKENS;
+ const TT = linkify.scanner.TOKENS;
// Multi tokens
- var MT = linkify.parser.TOKENS;
- var MultiToken = MT.Base;
- var S_START = linkify.parser.start;
+ const MT = linkify.parser.TOKENS;
+ const MultiToken = MT.Base;
+ const S_START = linkify.parser.start;
if (TT.UNDERSCORE === undefined) {
throw new Error("linkify-matrix requires linkifyjs 2.1.1: this version is too old.");
}
- var ROOMALIAS = function(value) {
+ const ROOMALIAS = function(value) {
MultiToken.call(this, value);
this.type = 'roomalias';
this.isLink = true;
};
ROOMALIAS.prototype = new MultiToken();
- var S_HASH = new linkify.parser.State();
- var S_HASH_NAME = new linkify.parser.State();
- var S_HASH_NAME_COLON = new linkify.parser.State();
- var S_HASH_NAME_COLON_DOMAIN = new linkify.parser.State();
- var S_HASH_NAME_COLON_DOMAIN_DOT = new linkify.parser.State();
- var S_ROOMALIAS = new linkify.parser.State(ROOMALIAS);
+ const S_HASH = new linkify.parser.State();
+ const S_HASH_NAME = new linkify.parser.State();
+ const S_HASH_NAME_COLON = new linkify.parser.State();
+ const S_HASH_NAME_COLON_DOMAIN = new linkify.parser.State();
+ const S_HASH_NAME_COLON_DOMAIN_DOT = new linkify.parser.State();
+ const S_ROOMALIAS = new linkify.parser.State(ROOMALIAS);
- var roomname_tokens = [
+ const roomname_tokens = [
TT.DOT,
TT.PLUS,
TT.NUM,
@@ -69,21 +69,21 @@ function matrixLinkify(linkify) {
S_HASH_NAME_COLON_DOMAIN_DOT.on(TT.TLD, S_ROOMALIAS);
- var USERID = function(value) {
+ const USERID = function(value) {
MultiToken.call(this, value);
this.type = 'userid';
this.isLink = true;
};
USERID.prototype = new MultiToken();
- var S_AT = new linkify.parser.State();
- var S_AT_NAME = new linkify.parser.State();
- var S_AT_NAME_COLON = new linkify.parser.State();
- var S_AT_NAME_COLON_DOMAIN = new linkify.parser.State();
- var S_AT_NAME_COLON_DOMAIN_DOT = new linkify.parser.State();
- var S_USERID = new linkify.parser.State(USERID);
+ const S_AT = new linkify.parser.State();
+ const S_AT_NAME = new linkify.parser.State();
+ const S_AT_NAME_COLON = new linkify.parser.State();
+ const S_AT_NAME_COLON_DOMAIN = new linkify.parser.State();
+ const S_AT_NAME_COLON_DOMAIN_DOT = new linkify.parser.State();
+ const S_USERID = new linkify.parser.State(USERID);
- var username_tokens = [
+ const username_tokens = [
TT.DOT,
TT.UNDERSCORE,
TT.PLUS,
@@ -110,21 +110,21 @@ function matrixLinkify(linkify) {
S_AT_NAME_COLON_DOMAIN_DOT.on(TT.TLD, S_USERID);
- var GROUPID = function(value) {
+ const GROUPID = function(value) {
MultiToken.call(this, value);
this.type = 'groupid';
this.isLink = true;
};
GROUPID.prototype = new MultiToken();
- var S_PLUS = new linkify.parser.State();
- var S_PLUS_NAME = new linkify.parser.State();
- var S_PLUS_NAME_COLON = new linkify.parser.State();
- var S_PLUS_NAME_COLON_DOMAIN = new linkify.parser.State();
- var S_PLUS_NAME_COLON_DOMAIN_DOT = new linkify.parser.State();
- var S_GROUPID = new linkify.parser.State(GROUPID);
+ const S_PLUS = new linkify.parser.State();
+ const S_PLUS_NAME = new linkify.parser.State();
+ const S_PLUS_NAME_COLON = new linkify.parser.State();
+ const S_PLUS_NAME_COLON_DOMAIN = new linkify.parser.State();
+ const S_PLUS_NAME_COLON_DOMAIN_DOT = new linkify.parser.State();
+ const S_GROUPID = new linkify.parser.State(GROUPID);
- var groupid_tokens = [
+ const groupid_tokens = [
TT.DOT,
TT.UNDERSCORE,
TT.PLUS,
@@ -156,7 +156,7 @@ matrixLinkify.onUserClick = function(e, userId) { e.preventDefault(); };
matrixLinkify.onAliasClick = function(e, roomAlias) { e.preventDefault(); };
matrixLinkify.onGroupClick = function(e, groupId) { e.preventDefault(); };
-var escapeRegExp = function(string) {
+const escapeRegExp = function(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
};
@@ -179,19 +179,19 @@ matrixLinkify.options = {
return {
click: function(e) {
matrixLinkify.onUserClick(e, href);
- }
+ },
};
case "roomalias":
return {
click: function(e) {
matrixLinkify.onAliasClick(e, href);
- }
+ },
};
case "groupid":
return {
click: function(e) {
matrixLinkify.onGroupClick(e, href);
- }
+ },
};
}
},
@@ -211,11 +211,10 @@ matrixLinkify.options = {
}
m = href.match(matrixLinkify.MATRIXTO_URL_PATTERN);
if (m) {
- var entity = m[1];
+ const entity = m[1];
if (entity[0] === '@') {
return '#/user/' + entity;
- }
- else if (entity[0] === '#' || entity[0] === '!') {
+ } else if (entity[0] === '#' || entity[0] === '!') {
return '#/room/' + entity;
}
}
@@ -231,11 +230,9 @@ matrixLinkify.options = {
target: function(href, type) {
if (type === 'url') {
if (href.match(matrixLinkify.VECTOR_URL_PATTERN) ||
- href.match(matrixLinkify.MATRIXTO_URL_PATTERN))
- {
+ href.match(matrixLinkify.MATRIXTO_URL_PATTERN)) {
return null;
- }
- else {
+ } else {
return '_blank';
}
}
diff --git a/src/ratelimitedfunc.js b/src/ratelimitedfunc.js
index a9e8a4cab2..d8c30f5d03 100644
--- a/src/ratelimitedfunc.js
+++ b/src/ratelimitedfunc.js
@@ -29,9 +29,9 @@ module.exports = function(f, minIntervalMs) {
this.lastCall = 0;
this.scheduledCall = undefined;
- var self = this;
- var wrapper = function() {
- var now = Date.now();
+ const self = this;
+ const wrapper = function() {
+ const now = Date.now();
if (self.lastCall < now - minIntervalMs) {
f.apply(this);
@@ -43,7 +43,7 @@ module.exports = function(f, minIntervalMs) {
f.apply(this);
self.lastCall = now;
},
- (self.lastCall + minIntervalMs) - now
+ (self.lastCall + minIntervalMs) - now,
);
}
};
@@ -58,9 +58,9 @@ module.exports = function(f, minIntervalMs) {
// make sure that cancelPendingCall is copied when react rebinds the
// wrapper
- var _bind = wrapper.bind;
+ const _bind = wrapper.bind;
wrapper.bind = function() {
- var rebound = _bind.apply(this, arguments);
+ const rebound = _bind.apply(this, arguments);
rebound.cancelPendingCall = wrapper.cancelPendingCall;
return rebound;
};
diff --git a/src/settings/Settings.js b/src/settings/Settings.js
new file mode 100644
index 0000000000..07de17ccfd
--- /dev/null
+++ b/src/settings/Settings.js
@@ -0,0 +1,258 @@
+/*
+Copyright 2017 Travis Ralston
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import {_td} from '../languageHandler';
+import {
+ AudioNotificationsEnabledController,
+ NotificationBodyEnabledController,
+ NotificationsEnabledController,
+} from "./controllers/NotificationControllers";
+
+
+// These are just a bunch of helper arrays to avoid copy/pasting a bunch of times
+const LEVELS_ROOM_SETTINGS = ['device', 'room-device', 'room-account', 'account', 'config'];
+const LEVELS_ROOM_SETTINGS_WITH_ROOM = ['device', 'room-device', 'room-account', 'account', 'config', 'room'];
+const LEVELS_ACCOUNT_SETTINGS = ['device', 'account', 'config'];
+const LEVELS_FEATURE = ['device', 'config'];
+const LEVELS_DEVICE_ONLY_SETTINGS = ['device'];
+const LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG = ['device', 'config'];
+
+export const SETTINGS = {
+ // EXAMPLE SETTING:
+ // "my-setting": {
+ // // Must be set to true for features. Default is 'false'.
+ // isFeature: false,
+ //
+ // // Display names are strongly recommended for clarity.
+ // displayName: _td("Cool Name"),
+ //
+ // // Display name can also be an object for different levels.
+ // //displayName: {
+ // // "device": _td("Name for when the setting is used at 'device'"),
+ // // "room": _td("Name for when the setting is used at 'room'"),
+ // // "default": _td("The name for all other levels"),
+ // //}
+ //
+ // // The supported levels are required. Preferably, use the preset arrays
+ // // at the top of this file to define this rather than a custom array.
+ // supportedLevels: [
+ // // The order does not matter.
+ //
+ // "device", // Affects the current device only
+ // "room-device", // Affects the current room on the current device
+ // "room-account", // Affects the current room for the current account
+ // "account", // Affects the current account
+ // "room", // Affects the current room (controlled by room admins)
+ // "config", // Affects the current application
+ //
+ // // "default" is always supported and does not get listed here.
+ // ],
+ //
+ // // Required. Can be any data type. The value specified here should match
+ // // the data being stored (ie: if a boolean is used, the setting should
+ // // represent a boolean).
+ // default: {
+ // your: "value",
+ // },
+ //
+ // // Optional settings controller. See SettingsController for more information.
+ // controller: new MySettingController(),
+ //
+ // // Optional flag to make supportedLevels be respected as the order to handle
+ // // settings. The first element is treated as "most preferred". The "default"
+ // // level is always appended to the end.
+ // supportedLevelsAreOrdered: false,
+ // },
+ "feature_pinning": {
+ isFeature: true,
+ displayName: _td("Message Pinning"),
+ supportedLevels: LEVELS_FEATURE,
+ default: false,
+ },
+ "feature_presence_management": {
+ isFeature: true,
+ displayName: _td("Presence Management"),
+ supportedLevels: LEVELS_FEATURE,
+ default: false,
+ },
+ "feature_tag_panel": {
+ isFeature: true,
+ displayName: _td("Tag Panel"),
+ supportedLevels: LEVELS_FEATURE,
+ default: false,
+ },
+ "MessageComposerInput.dontSuggestEmoji": {
+ supportedLevels: LEVELS_ACCOUNT_SETTINGS,
+ displayName: _td('Disable Emoji suggestions while typing'),
+ default: false,
+ },
+ "useCompactLayout": {
+ supportedLevels: LEVELS_ACCOUNT_SETTINGS,
+ displayName: _td('Use compact timeline layout'),
+ default: false,
+ },
+ "hideRedactions": {
+ supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,
+ displayName: _td('Hide removed messages'),
+ default: false,
+ },
+ "hideJoinLeaves": {
+ supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,
+ displayName: _td('Hide join/leave messages (invites/kicks/bans unaffected)'),
+ default: false,
+ },
+ "hideAvatarChanges": {
+ supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,
+ displayName: _td('Hide avatar changes'),
+ default: false,
+ },
+ "hideDisplaynameChanges": {
+ supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,
+ displayName: _td('Hide display name changes'),
+ default: false,
+ },
+ "hideReadReceipts": {
+ supportedLevels: LEVELS_ROOM_SETTINGS,
+ displayName: _td('Hide read receipts'),
+ default: false,
+ },
+ "showTwelveHourTimestamps": {
+ supportedLevels: LEVELS_ACCOUNT_SETTINGS,
+ displayName: _td('Show timestamps in 12 hour format (e.g. 2:30pm)'),
+ default: false,
+ },
+ "alwaysShowTimestamps": {
+ supportedLevels: LEVELS_ACCOUNT_SETTINGS,
+ displayName: _td('Always show message timestamps'),
+ default: false,
+ },
+ "autoplayGifsAndVideos": {
+ supportedLevels: LEVELS_ACCOUNT_SETTINGS,
+ displayName: _td('Autoplay GIFs and videos'),
+ default: false,
+ },
+ "enableSyntaxHighlightLanguageDetection": {
+ supportedLevels: LEVELS_ACCOUNT_SETTINGS,
+ displayName: _td('Enable automatic language detection for syntax highlighting'),
+ default: false,
+ },
+ "Pill.shouldHidePillAvatar": {
+ supportedLevels: LEVELS_ACCOUNT_SETTINGS,
+ displayName: _td('Hide avatars in user and room mentions'),
+ default: false,
+ },
+ "TextualBody.disableBigEmoji": {
+ supportedLevels: LEVELS_ACCOUNT_SETTINGS,
+ displayName: _td('Disable big emoji in chat'),
+ default: false,
+ },
+ "MessageComposerInput.isRichTextEnabled": {
+ supportedLevels: LEVELS_ACCOUNT_SETTINGS,
+ default: false,
+ },
+ "MessageComposer.showFormatting": {
+ supportedLevels: LEVELS_ACCOUNT_SETTINGS,
+ default: false,
+ },
+ "dontSendTypingNotifications": {
+ supportedLevels: LEVELS_ACCOUNT_SETTINGS,
+ displayName: _td("Don't send typing notifications"),
+ default: false,
+ },
+ "MessageComposerInput.autoReplaceEmoji": {
+ supportedLevels: LEVELS_ACCOUNT_SETTINGS,
+ displayName: _td('Automatically replace plain text Emoji'),
+ default: false,
+ },
+ "VideoView.flipVideoHorizontally": {
+ supportedLevels: LEVELS_ACCOUNT_SETTINGS,
+ displayName: _td('Mirror local video feed'),
+ default: false,
+ },
+ "theme": {
+ supportedLevels: LEVELS_ACCOUNT_SETTINGS,
+ default: "light",
+ },
+ "webRtcForceTURN": {
+ supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
+ displayName: _td('Disable Peer-to-Peer for 1:1 calls'),
+ default: false,
+ },
+ "webrtc_audioinput": {
+ supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
+ default: null,
+ },
+ "webrtc_videoinput": {
+ supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
+ default: null,
+ },
+ "language": {
+ supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
+ default: "en",
+ },
+ "analyticsOptOut": {
+ supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
+ displayName: _td('Opt out of analytics'),
+ default: false,
+ },
+ "autocompleteDelay": {
+ supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
+ default: 200,
+ },
+ "blacklistUnverifiedDevices": {
+ // We specifically want to have room-device > device so that users may set a device default
+ // with a per-room override.
+ supportedLevels: ['room-device', 'device'],
+ supportedLevelsAreOrdered: true,
+ displayName: {
+ "default": _td('Never send encrypted messages to unverified devices from this device'),
+ "room-device": _td('Never send encrypted messages to unverified devices in this room from this device'),
+ },
+ default: false,
+ },
+ "urlPreviewsEnabled": {
+ supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,
+ displayName: {
+ "default": _td('Enable inline URL previews by default'),
+ "room-account": _td("Enable URL previews for this room (only affects you)"),
+ "room": _td("Enable URL previews by default for participants in this room"),
+ },
+ default: true,
+ },
+ "roomColor": {
+ supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,
+ displayName: _td("Room Colour"),
+ default: {
+ primary_color: null, // Hex string, eg: #000000
+ secondary_color: null, // Hex string, eg: #000000
+ },
+ },
+ "notificationsEnabled": {
+ supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
+ default: false,
+ controller: new NotificationsEnabledController(),
+ },
+ "notificationBodyEnabled": {
+ supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
+ default: true,
+ controller: new NotificationBodyEnabledController(),
+ },
+ "audioNotificationsEnabled": {
+ supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
+ default: true,
+ controller: new AudioNotificationsEnabledController(),
+ },
+};
diff --git a/src/settings/SettingsStore.js b/src/settings/SettingsStore.js
new file mode 100644
index 0000000000..d93a48005d
--- /dev/null
+++ b/src/settings/SettingsStore.js
@@ -0,0 +1,355 @@
+/*
+Copyright 2017 Travis Ralston
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import DeviceSettingsHandler from "./handlers/DeviceSettingsHandler";
+import RoomDeviceSettingsHandler from "./handlers/RoomDeviceSettingsHandler";
+import DefaultSettingsHandler from "./handlers/DefaultSettingsHandler";
+import RoomAccountSettingsHandler from "./handlers/RoomAccountSettingsHandler";
+import AccountSettingsHandler from "./handlers/AccountSettingsHandler";
+import RoomSettingsHandler from "./handlers/RoomSettingsHandler";
+import ConfigSettingsHandler from "./handlers/ConfigSettingsHandler";
+import {_t} from '../languageHandler';
+import SdkConfig from "../SdkConfig";
+import {SETTINGS} from "./Settings";
+import LocalEchoWrapper from "./handlers/LocalEchoWrapper";
+
+/**
+ * Represents the various setting levels supported by the SettingsStore.
+ */
+export const SettingLevel = {
+ // Note: This enum is not used in this class or in the Settings file
+ // This should always be used elsewhere in the project.
+ DEVICE: "device",
+ ROOM_DEVICE: "room-device",
+ ROOM_ACCOUNT: "room-account",
+ ACCOUNT: "account",
+ ROOM: "room",
+ CONFIG: "config",
+ DEFAULT: "default",
+};
+
+// Convert the settings to easier to manage objects for the handlers
+const defaultSettings = {};
+const featureNames = [];
+for (const key of Object.keys(SETTINGS)) {
+ defaultSettings[key] = SETTINGS[key].default;
+ if (SETTINGS[key].isFeature) featureNames.push(key);
+}
+
+const LEVEL_HANDLERS = {
+ "device": new DeviceSettingsHandler(featureNames),
+ "room-device": new RoomDeviceSettingsHandler(),
+ "room-account": new RoomAccountSettingsHandler(),
+ "account": new AccountSettingsHandler(),
+ "room": new RoomSettingsHandler(),
+ "config": new ConfigSettingsHandler(),
+ "default": new DefaultSettingsHandler(defaultSettings),
+};
+
+// Wrap all the handlers with local echo
+for (const key of Object.keys(LEVEL_HANDLERS)) {
+ LEVEL_HANDLERS[key] = new LocalEchoWrapper(LEVEL_HANDLERS[key]);
+}
+
+const LEVEL_ORDER = [
+ 'device', 'room-device', 'room-account', 'account', 'room', 'config', 'default',
+];
+
+/**
+ * Controls and manages application settings by providing varying levels at which the
+ * setting value may be specified. The levels are then used to determine what the setting
+ * value should be given a set of circumstances. The levels, in priority order, are:
+ * - "device" - Values are determined by the current device
+ * - "room-device" - Values are determined by the current device for a particular room
+ * - "room-account" - Values are determined by the current account for a particular room
+ * - "account" - Values are determined by the current account
+ * - "room" - Values are determined by a particular room (by the room admins)
+ * - "config" - Values are determined by the config.json
+ * - "default" - Values are determined by the hardcoded defaults
+ *
+ * Each level has a different method to storing the setting value. For implementation
+ * specific details, please see the handlers. The "config" and "default" levels are
+ * both always supported on all platforms. All other settings should be guarded by
+ * isLevelSupported() prior to attempting to set the value.
+ *
+ * Settings can also represent features. Features are significant portions of the
+ * application that warrant a dedicated setting to toggle them on or off. Features are
+ * special-cased to ensure that their values respect the configuration (for example, a
+ * feature may be reported as disabled even though a user has specifically requested it
+ * be enabled).
+ */
+export default class SettingsStore {
+ /**
+ * Gets the translated display name for a given setting
+ * @param {string} settingName The setting to look up.
+ * @param {"device"|"room-device"|"room-account"|"account"|"room"|"config"|"default"} atLevel
+ * The level to get the display name for; Defaults to 'default'.
+ * @return {String} The display name for the setting, or null if not found.
+ */
+ static getDisplayName(settingName, atLevel = "default") {
+ if (!SETTINGS[settingName] || !SETTINGS[settingName].displayName) return null;
+
+ let displayName = SETTINGS[settingName].displayName;
+ if (displayName instanceof Object) {
+ if (displayName[atLevel]) displayName = displayName[atLevel];
+ else displayName = displayName["default"];
+ }
+
+ return _t(displayName);
+ }
+
+ /**
+ * Returns a list of all available labs feature names
+ * @returns {string[]} The list of available feature names
+ */
+ static getLabsFeatures() {
+ const possibleFeatures = Object.keys(SETTINGS).filter((s) => SettingsStore.isFeature(s));
+
+ const enableLabs = SdkConfig.get()["enableLabs"];
+ if (enableLabs) return possibleFeatures;
+
+ return possibleFeatures.filter((s) => SettingsStore._getFeatureState(s) === "labs");
+ }
+
+ /**
+ * Determines if a setting is also a feature.
+ * @param {string} settingName The setting to look up.
+ * @return {boolean} True if the setting is a feature.
+ */
+ static isFeature(settingName) {
+ if (!SETTINGS[settingName]) return false;
+ return SETTINGS[settingName].isFeature;
+ }
+
+ /**
+ * Determines if a given feature is enabled. The feature given must be a known
+ * feature.
+ * @param {string} settingName The name of the setting that is a feature.
+ * @param {String} roomId The optional room ID to validate in, may be null.
+ * @return {boolean} True if the feature is enabled, false otherwise
+ */
+ static isFeatureEnabled(settingName, roomId = null) {
+ if (!SettingsStore.isFeature(settingName)) {
+ throw new Error("Setting " + settingName + " is not a feature");
+ }
+
+ return SettingsStore.getValue(settingName, roomId);
+ }
+
+ /**
+ * Sets a feature as enabled or disabled on the current device.
+ * @param {string} settingName The name of the setting.
+ * @param {boolean} value True to enable the feature, false otherwise.
+ * @returns {Promise} Resolves when the setting has been set.
+ */
+ static setFeatureEnabled(settingName, value) {
+ // Verify that the setting is actually a setting
+ if (!SETTINGS[settingName]) {
+ throw new Error("Setting '" + settingName + "' does not appear to be a setting.");
+ }
+ if (!SettingsStore.isFeature(settingName)) {
+ throw new Error("Setting " + settingName + " is not a feature");
+ }
+
+ return SettingsStore.setValue(settingName, null, "device", value);
+ }
+
+ /**
+ * Gets the value of a setting. The room ID is optional if the setting is not to
+ * be applied to any particular room, otherwise it should be supplied.
+ * @param {string} settingName The name of the setting to read the value of.
+ * @param {String} roomId The room ID to read the setting value in, may be null.
+ * @param {boolean} excludeDefault True to disable using the default value.
+ * @return {*} The value, or null if not found
+ */
+ static getValue(settingName, roomId = null, excludeDefault = false) {
+ // Verify that the setting is actually a setting
+ if (!SETTINGS[settingName]) {
+ throw new Error("Setting '" + settingName + "' does not appear to be a setting.");
+ }
+
+ const setting = SETTINGS[settingName];
+ const levelOrder = (setting.supportedLevelsAreOrdered ? setting.supportedLevels : LEVEL_ORDER);
+
+ return SettingsStore.getValueAt(levelOrder[0], settingName, roomId, false, excludeDefault);
+ }
+
+ /**
+ * Gets a setting's value at a particular level, ignoring all levels that are more specific.
+ * @param {"device"|"room-device"|"room-account"|"account"|"room"|"config"|"default"} level The
+ * level to look at.
+ * @param {string} settingName The name of the setting to read.
+ * @param {String} roomId The room ID to read the setting value in, may be null.
+ * @param {boolean} explicit If true, this method will not consider other levels, just the one
+ * provided. Defaults to false.
+ * @param {boolean} excludeDefault True to disable using the default value.
+ * @return {*} The value, or null if not found.
+ */
+ static getValueAt(level, settingName, roomId = null, explicit = false, excludeDefault = false) {
+ // Verify that the setting is actually a setting
+ if (!SETTINGS[settingName]) {
+ throw new Error("Setting '" + settingName + "' does not appear to be a setting.");
+ }
+
+ const setting = SETTINGS[settingName];
+ const levelOrder = (setting.supportedLevelsAreOrdered ? setting.supportedLevels : LEVEL_ORDER);
+ if (!levelOrder.includes("default")) levelOrder.push("default"); // always include default
+
+ const minIndex = levelOrder.indexOf(level);
+ if (minIndex === -1) throw new Error("Level " + level + " is not prioritized");
+
+ if (SettingsStore.isFeature(settingName)) {
+ const configValue = SettingsStore._getFeatureState(settingName);
+ if (configValue === "enable") return true;
+ if (configValue === "disable") return false;
+ // else let it fall through the default process
+ }
+
+ const handlers = SettingsStore._getHandlers(settingName);
+
+ if (explicit) {
+ const handler = handlers[level];
+ if (!handler) return SettingsStore._tryControllerOverride(settingName, level, roomId, null);
+ const value = handler.getValue(settingName, roomId);
+ return SettingsStore._tryControllerOverride(settingName, level, roomId, value);
+ }
+
+ for (let i = minIndex; i < levelOrder.length; i++) {
+ const handler = handlers[levelOrder[i]];
+ if (!handler) continue;
+ if (excludeDefault && levelOrder[i] === "default") continue;
+
+ const value = handler.getValue(settingName, roomId);
+ if (value === null || value === undefined) continue;
+ return SettingsStore._tryControllerOverride(settingName, level, roomId, value);
+ }
+
+ return SettingsStore._tryControllerOverride(settingName, level, roomId, null);
+ }
+
+ static _tryControllerOverride(settingName, level, roomId, calculatedValue) {
+ const controller = SETTINGS[settingName].controller;
+ if (!controller) return calculatedValue;
+
+ const actualValue = controller.getValueOverride(level, roomId, calculatedValue);
+ if (actualValue !== undefined && actualValue !== null) return actualValue;
+ return calculatedValue;
+ }
+
+ /**
+ * Sets the value for a setting. The room ID is optional if the setting is not being
+ * set for a particular room, otherwise it should be supplied. The value may be null
+ * to indicate that the level should no longer have an override.
+ * @param {string} settingName The name of the setting to change.
+ * @param {String} roomId The room ID to change the value in, may be null.
+ * @param {"device"|"room-device"|"room-account"|"account"|"room"} level The level
+ * to change the value at.
+ * @param {*} value The new value of the setting, may be null.
+ * @return {Promise} Resolves when the setting has been changed.
+ */
+ static setValue(settingName, roomId, level, value) {
+ // Verify that the setting is actually a setting
+ if (!SETTINGS[settingName]) {
+ throw new Error("Setting '" + settingName + "' does not appear to be a setting.");
+ }
+
+ const handler = SettingsStore._getHandler(settingName, level);
+ if (!handler) {
+ throw new Error("Setting " + settingName + " does not have a handler for " + level);
+ }
+
+ if (!handler.canSetValue(settingName, roomId)) {
+ throw new Error("User cannot set " + settingName + " at " + level + " in " + roomId);
+ }
+
+ return handler.setValue(settingName, roomId, value).then(() => {
+ const controller = SETTINGS[settingName].controller;
+ if (!controller) return;
+ controller.onChange(level, roomId, value);
+ });
+ }
+
+ /**
+ * Determines if the current user is permitted to set the given setting at the given
+ * level for a particular room. The room ID is optional if the setting is not being
+ * set for a particular room, otherwise it should be supplied.
+ * @param {string} settingName The name of the setting to check.
+ * @param {String} roomId The room ID to check in, may be null.
+ * @param {"device"|"room-device"|"room-account"|"account"|"room"} level The level to
+ * check at.
+ * @return {boolean} True if the user may set the setting, false otherwise.
+ */
+ static canSetValue(settingName, roomId, level) {
+ // Verify that the setting is actually a setting
+ if (!SETTINGS[settingName]) {
+ throw new Error("Setting '" + settingName + "' does not appear to be a setting.");
+ }
+
+ const handler = SettingsStore._getHandler(settingName, level);
+ if (!handler) return false;
+ return handler.canSetValue(settingName, roomId);
+ }
+
+ /**
+ * Determines if the given level is supported on this device.
+ * @param {"device"|"room-device"|"room-account"|"account"|"room"} level The level
+ * to check the feasibility of.
+ * @return {boolean} True if the level is supported, false otherwise.
+ */
+ static isLevelSupported(level) {
+ if (!LEVEL_HANDLERS[level]) return false;
+ return LEVEL_HANDLERS[level].isSupported();
+ }
+
+ static _getHandler(settingName, level) {
+ const handlers = SettingsStore._getHandlers(settingName);
+ if (!handlers[level]) return null;
+ return handlers[level];
+ }
+
+ static _getHandlers(settingName) {
+ if (!SETTINGS[settingName]) return {};
+
+ const handlers = {};
+ for (const level of SETTINGS[settingName].supportedLevels) {
+ if (!LEVEL_HANDLERS[level]) throw new Error("Unexpected level " + level);
+ handlers[level] = LEVEL_HANDLERS[level];
+ }
+
+ // Always support 'default'
+ if (!handlers['default']) handlers['default'] = LEVEL_HANDLERS['default'];
+
+ return handlers;
+ }
+
+ static _getFeatureState(settingName) {
+ const featuresConfig = SdkConfig.get()['features'];
+ const enableLabs = SdkConfig.get()['enableLabs']; // we'll honour the old flag
+
+ let featureState = enableLabs ? "labs" : "disable";
+ if (featuresConfig && featuresConfig[settingName] !== undefined) {
+ featureState = featuresConfig[settingName];
+ }
+
+ const allowedStates = ['enable', 'disable', 'labs'];
+ if (!allowedStates.includes(featureState)) {
+ console.warn("Feature state '" + featureState + "' is invalid for " + settingName);
+ featureState = "disable"; // to prevent accidental features.
+ }
+
+ return featureState;
+ }
+}
diff --git a/src/settings/controllers/NotificationControllers.js b/src/settings/controllers/NotificationControllers.js
new file mode 100644
index 0000000000..9dcf78e26b
--- /dev/null
+++ b/src/settings/controllers/NotificationControllers.js
@@ -0,0 +1,79 @@
+/*
+Copyright 2017 Travis Ralston
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import SettingController from "./SettingController";
+import MatrixClientPeg from '../../MatrixClientPeg';
+
+// XXX: This feels wrong.
+import PushProcessor from "matrix-js-sdk/lib/pushprocessor";
+
+function isMasterRuleEnabled() {
+ // Return the value of the master push rule as a default
+ const processor = new PushProcessor(MatrixClientPeg.get());
+ const masterRule = processor.getPushRuleById(".m.rule.master");
+
+ if (!masterRule) {
+ console.warn("No master push rule! Notifications are disabled for this user.");
+ return false;
+ }
+
+ // Why enabled == false means "enabled" is beyond me.
+ return !masterRule.enabled;
+}
+
+export class NotificationsEnabledController extends SettingController {
+ getValueOverride(level, roomId, calculatedValue) {
+ const Notifier = require('../../Notifier'); // avoids cyclical references
+ if (!Notifier.isPossible()) return false;
+
+ if (calculatedValue === null) {
+ return isMasterRuleEnabled();
+ }
+
+ return calculatedValue;
+ }
+
+ onChange(level, roomId, newValue) {
+ const Notifier = require('../../Notifier'); // avoids cyclical references
+
+ if (Notifier.supportsDesktopNotifications()) {
+ Notifier.setEnabled(newValue);
+ }
+ }
+}
+
+export class NotificationBodyEnabledController extends SettingController {
+ getValueOverride(level, roomId, calculatedValue) {
+ const Notifier = require('../../Notifier'); // avoids cyclical references
+ if (!Notifier.isPossible()) return false;
+
+ if (calculatedValue === null) {
+ return isMasterRuleEnabled();
+ }
+
+ return calculatedValue;
+ }
+}
+
+export class AudioNotificationsEnabledController extends SettingController {
+ getValueOverride(level, roomId, calculatedValue) {
+ const Notifier = require('../../Notifier'); // avoids cyclical references
+ if (!Notifier.isPossible()) return false;
+
+ // Note: Audio notifications are *not* enabled by default.
+ return calculatedValue;
+ }
+}
diff --git a/src/settings/controllers/SettingController.js b/src/settings/controllers/SettingController.js
new file mode 100644
index 0000000000..a91b616da9
--- /dev/null
+++ b/src/settings/controllers/SettingController.js
@@ -0,0 +1,49 @@
+/*
+Copyright 2017 Travis Ralston
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+/**
+ * Represents a controller for individual settings to alter the reading behaviour
+ * based upon environmental conditions, or to react to changes and therefore update
+ * the working environment.
+ *
+ * This is not intended to replace the functionality of a SettingsHandler, it is only
+ * intended to handle environmental factors for specific settings.
+ */
+export default class SettingController {
+
+ /**
+ * Gets the overridden value for the setting, if any. This must return null if the
+ * value is not to be overridden, otherwise it must return the new value.
+ * @param {string} level The level at which the value was requested at.
+ * @param {String} roomId The room ID, may be null.
+ * @param {*} calculatedValue The value that the handlers think the setting should be,
+ * may be null.
+ * @return {*} The value that should be used, or null if no override is applicable.
+ */
+ getValueOverride(level, roomId, calculatedValue) {
+ return null; // no override
+ }
+
+ /**
+ * Called when the setting value has been changed.
+ * @param {string} level The level at which the setting has been modified.
+ * @param {String} roomId The room ID, may be null.
+ * @param {*} newValue The new value for the setting, may be null.
+ */
+ onChange(level, roomId, newValue) {
+ // do nothing by default
+ }
+}
diff --git a/src/settings/handlers/AccountSettingsHandler.js b/src/settings/handlers/AccountSettingsHandler.js
new file mode 100644
index 0000000000..e50358a728
--- /dev/null
+++ b/src/settings/handlers/AccountSettingsHandler.js
@@ -0,0 +1,76 @@
+/*
+Copyright 2017 Travis Ralston
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import SettingsHandler from "./SettingsHandler";
+import MatrixClientPeg from '../../MatrixClientPeg';
+
+/**
+ * Gets and sets settings at the "account" level for the current user.
+ * This handler does not make use of the roomId parameter.
+ */
+export default class AccountSettingHandler extends SettingsHandler {
+ getValue(settingName, roomId) {
+ // Special case URL previews
+ if (settingName === "urlPreviewsEnabled") {
+ const content = this._getSettings("org.matrix.preview_urls");
+
+ // Check to make sure that we actually got a boolean
+ if (typeof(content['disable']) !== "boolean") return null;
+ return !content['disable'];
+ }
+
+ let preferredValue = this._getSettings()[settingName];
+
+ if (preferredValue === null || preferredValue === undefined) {
+ // Honour the old setting on read only
+ if (settingName === "hideAvatarChanges" || settingName === "hideDisplaynameChanges") {
+ preferredValue = this._getSettings()["hideAvatarDisplaynameChanges"];
+ }
+ }
+
+ return preferredValue;
+ }
+
+ setValue(settingName, roomId, newValue) {
+ // Special case URL previews
+ if (settingName === "urlPreviewsEnabled") {
+ const content = this._getSettings("org.matrix.preview_urls");
+ content['disable'] = !newValue;
+ return MatrixClientPeg.get().setAccountData("org.matrix.preview_urls", content);
+ }
+
+ const content = this._getSettings();
+ content[settingName] = newValue;
+ return MatrixClientPeg.get().setAccountData("im.vector.web.settings", content);
+ }
+
+ canSetValue(settingName, roomId) {
+ return true; // It's their account, so they should be able to
+ }
+
+ isSupported() {
+ const cli = MatrixClientPeg.get();
+ return cli !== undefined && cli !== null;
+ }
+
+ _getSettings(eventType = "im.vector.web.settings") {
+ const cli = MatrixClientPeg.get();
+ if (!cli) return {};
+ const event = cli.getAccountData(eventType);
+ if (!event || !event.getContent()) return {};
+ return event.getContent();
+ }
+}
diff --git a/src/settings/handlers/ConfigSettingsHandler.js b/src/settings/handlers/ConfigSettingsHandler.js
new file mode 100644
index 0000000000..7a370249a7
--- /dev/null
+++ b/src/settings/handlers/ConfigSettingsHandler.js
@@ -0,0 +1,49 @@
+/*
+Copyright 2017 Travis Ralston
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import SettingsHandler from "./SettingsHandler";
+import SdkConfig from "../../SdkConfig";
+
+/**
+ * Gets and sets settings at the "config" level. This handler does not make use of the
+ * roomId parameter.
+ */
+export default class ConfigSettingsHandler extends SettingsHandler {
+ getValue(settingName, roomId) {
+ const config = SdkConfig.get() || {};
+
+ // Special case themes
+ if (settingName === "theme") {
+ return config["default_theme"];
+ }
+
+ const settingsConfig = config["settingDefaults"];
+ if (!settingsConfig || !settingsConfig[settingName]) return null;
+ return settingsConfig[settingName];
+ }
+
+ setValue(settingName, roomId, newValue) {
+ throw new Error("Cannot change settings at the config level");
+ }
+
+ canSetValue(settingName, roomId) {
+ return false;
+ }
+
+ isSupported() {
+ return true; // SdkConfig is always there
+ }
+}
diff --git a/src/settings/handlers/DefaultSettingsHandler.js b/src/settings/handlers/DefaultSettingsHandler.js
new file mode 100644
index 0000000000..cf2e660411
--- /dev/null
+++ b/src/settings/handlers/DefaultSettingsHandler.js
@@ -0,0 +1,48 @@
+/*
+Copyright 2017 Travis Ralston
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import SettingsHandler from "./SettingsHandler";
+
+/**
+ * Gets settings at the "default" level. This handler does not support setting values.
+ * This handler does not make use of the roomId parameter.
+ */
+export default class DefaultSettingsHandler extends SettingsHandler {
+ /**
+ * Creates a new default settings handler with the given defaults
+ * @param {object} defaults The default setting values, keyed by setting name.
+ */
+ constructor(defaults) {
+ super();
+ this._defaults = defaults;
+ }
+
+ getValue(settingName, roomId) {
+ return this._defaults[settingName];
+ }
+
+ setValue(settingName, roomId, newValue) {
+ throw new Error("Cannot set values on the default level handler");
+ }
+
+ canSetValue(settingName, roomId) {
+ return false;
+ }
+
+ isSupported() {
+ return true;
+ }
+}
diff --git a/src/settings/handlers/DeviceSettingsHandler.js b/src/settings/handlers/DeviceSettingsHandler.js
new file mode 100644
index 0000000000..22f6140a80
--- /dev/null
+++ b/src/settings/handlers/DeviceSettingsHandler.js
@@ -0,0 +1,114 @@
+/*
+Copyright 2017 Travis Ralston
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import Promise from 'bluebird';
+import SettingsHandler from "./SettingsHandler";
+import MatrixClientPeg from "../../MatrixClientPeg";
+
+/**
+ * Gets and sets settings at the "device" level for the current device.
+ * This handler does not make use of the roomId parameter. This handler
+ * will special-case features to support legacy settings.
+ */
+export default class DeviceSettingsHandler extends SettingsHandler {
+ /**
+ * Creates a new device settings handler
+ * @param {string[]} featureNames The names of known features.
+ */
+ constructor(featureNames) {
+ super();
+ this._featureNames = featureNames;
+ }
+
+ getValue(settingName, roomId) {
+ if (this._featureNames.includes(settingName)) {
+ return this._readFeature(settingName);
+ }
+
+ // Special case notifications
+ if (settingName === "notificationsEnabled") {
+ const value = localStorage.getItem("notifications_enabled");
+ if (typeof(value) === "string") return value === "true";
+ return null; // wrong type or otherwise not set
+ } else if (settingName === "notificationBodyEnabled") {
+ const value = localStorage.getItem("notifications_body_enabled");
+ if (typeof(value) === "string") return value === "true";
+ return null; // wrong type or otherwise not set
+ } else if (settingName === "audioNotificationsEnabled") {
+ const value = localStorage.getItem("audio_notifications_enabled");
+ if (typeof(value) === "string") return value === "true";
+ return null; // wrong type or otherwise not set
+ }
+
+ return this._getSettings()[settingName];
+ }
+
+ setValue(settingName, roomId, newValue) {
+ if (this._featureNames.includes(settingName)) {
+ this._writeFeature(settingName, newValue);
+ return Promise.resolve();
+ }
+
+ // Special case notifications
+ if (settingName === "notificationsEnabled") {
+ localStorage.setItem("notifications_enabled", newValue);
+ return Promise.resolve();
+ } else if (settingName === "notificationBodyEnabled") {
+ localStorage.setItem("notifications_body_enabled", newValue);
+ return Promise.resolve();
+ } else if (settingName === "audioNotificationsEnabled") {
+ localStorage.setItem("audio_notifications_enabled", newValue);
+ return Promise.resolve();
+ }
+
+ const settings = this._getSettings();
+ settings[settingName] = newValue;
+ localStorage.setItem("mx_local_settings", JSON.stringify(settings));
+
+ return Promise.resolve();
+ }
+
+ canSetValue(settingName, roomId) {
+ return true; // It's their device, so they should be able to
+ }
+
+ isSupported() {
+ return localStorage !== undefined && localStorage !== null;
+ }
+
+ _getSettings() {
+ const value = localStorage.getItem("mx_local_settings");
+ if (!value) return {};
+ return JSON.parse(value);
+ }
+
+ // Note: features intentionally don't use the same key as settings to avoid conflicts
+ // and to be backwards compatible.
+
+ _readFeature(featureName) {
+ if (MatrixClientPeg.get() && MatrixClientPeg.get().isGuest()) {
+ // Guests should not have any labs features enabled.
+ return {enabled: false};
+ }
+
+ const value = localStorage.getItem("mx_labs_feature_" + featureName);
+ return value === "true";
+ }
+
+ _writeFeature(featureName, enabled) {
+ localStorage.setItem("mx_labs_feature_" + featureName, enabled);
+ }
+}
diff --git a/src/settings/handlers/LocalEchoWrapper.js b/src/settings/handlers/LocalEchoWrapper.js
new file mode 100644
index 0000000000..d616edd9fb
--- /dev/null
+++ b/src/settings/handlers/LocalEchoWrapper.js
@@ -0,0 +1,69 @@
+/*
+Copyright 2017 Travis Ralston
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import Promise from "bluebird";
+import SettingsHandler from "./SettingsHandler";
+
+/**
+ * A wrapper for a SettingsHandler that performs local echo on
+ * changes to settings. This wrapper will use the underlying
+ * handler as much as possible to ensure values are not stale.
+ */
+export default class LocalEchoWrapper extends SettingsHandler {
+ /**
+ * Creates a new local echo wrapper
+ * @param {SettingsHandler} handler The handler to wrap
+ */
+ constructor(handler) {
+ super();
+ this._handler = handler;
+ this._cache = {
+ // settingName: { roomId: value }
+ };
+ }
+
+ getValue(settingName, roomId) {
+ const cacheRoomId = roomId ? roomId : "UNDEFINED"; // avoid weird keys
+ const bySetting = this._cache[settingName];
+ if (bySetting && bySetting.hasOwnProperty(cacheRoomId)) {
+ return bySetting[roomId];
+ }
+
+ return this._handler.getValue(settingName, roomId);
+ }
+
+ setValue(settingName, roomId, newValue) {
+ if (!this._cache[settingName]) this._cache[settingName] = {};
+ const bySetting = this._cache[settingName];
+
+ const cacheRoomId = roomId ? roomId : "UNDEFINED"; // avoid weird keys
+ bySetting[cacheRoomId] = newValue;
+
+ const handlerPromise = this._handler.setValue(settingName, roomId, newValue);
+ return Promise.resolve(handlerPromise).finally(() => {
+ delete bySetting[cacheRoomId];
+ });
+ }
+
+
+ canSetValue(settingName, roomId) {
+ return this._handler.canSetValue(settingName, roomId);
+ }
+
+ isSupported() {
+ return this._handler.isSupported();
+ }
+}
diff --git a/src/settings/handlers/RoomAccountSettingsHandler.js b/src/settings/handlers/RoomAccountSettingsHandler.js
new file mode 100644
index 0000000000..e946581807
--- /dev/null
+++ b/src/settings/handlers/RoomAccountSettingsHandler.js
@@ -0,0 +1,83 @@
+/*
+Copyright 2017 Travis Ralston
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import SettingsHandler from "./SettingsHandler";
+import MatrixClientPeg from '../../MatrixClientPeg';
+
+/**
+ * Gets and sets settings at the "room-account" level for the current user.
+ */
+export default class RoomAccountSettingsHandler extends SettingsHandler {
+ getValue(settingName, roomId) {
+ // Special case URL previews
+ if (settingName === "urlPreviewsEnabled") {
+ const content = this._getSettings(roomId, "org.matrix.room.preview_urls");
+
+ // Check to make sure that we actually got a boolean
+ if (typeof(content['disable']) !== "boolean") return null;
+ return !content['disable'];
+ }
+
+ // Special case room color
+ if (settingName === "roomColor") {
+ // The event content should already be in an appropriate format, we just need
+ // to get the right value.
+ return this._getSettings(roomId, "org.matrix.room.color_scheme");
+ }
+
+ return this._getSettings(roomId)[settingName];
+ }
+
+ setValue(settingName, roomId, newValue) {
+ // Special case URL previews
+ if (settingName === "urlPreviewsEnabled") {
+ const content = this._getSettings(roomId, "org.matrix.room.preview_urls");
+ content['disable'] = !newValue;
+ return MatrixClientPeg.get().setRoomAccountData(roomId, "org.matrix.room.preview_urls", content);
+ }
+
+ // Special case room color
+ if (settingName === "roomColor") {
+ // The new value should match our requirements, we just need to store it in the right place.
+ return MatrixClientPeg.get().setRoomAccountData(roomId, "org.matrix.room.color_scheme", newValue);
+ }
+
+ const content = this._getSettings(roomId);
+ content[settingName] = newValue;
+ return MatrixClientPeg.get().setRoomAccountData(roomId, "im.vector.web.settings", content);
+ }
+
+ canSetValue(settingName, roomId) {
+ const room = MatrixClientPeg.get().getRoom(roomId);
+
+ // If they have the room, they can set their own account data
+ return room !== undefined && room !== null;
+ }
+
+ isSupported() {
+ const cli = MatrixClientPeg.get();
+ return cli !== undefined && cli !== null;
+ }
+
+ _getSettings(roomId, eventType = "im.vector.settings") {
+ const room = MatrixClientPeg.get().getRoom(roomId);
+ if (!room) return {};
+
+ const event = room.getAccountData(eventType);
+ if (!event || !event.getContent()) return {};
+ return event.getContent();
+ }
+}
diff --git a/src/settings/handlers/RoomDeviceSettingsHandler.js b/src/settings/handlers/RoomDeviceSettingsHandler.js
new file mode 100644
index 0000000000..186be3041f
--- /dev/null
+++ b/src/settings/handlers/RoomDeviceSettingsHandler.js
@@ -0,0 +1,77 @@
+/*
+Copyright 2017 Travis Ralston
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import Promise from 'bluebird';
+import SettingsHandler from "./SettingsHandler";
+
+/**
+ * Gets and sets settings at the "room-device" level for the current device in a particular
+ * room.
+ */
+export default class RoomDeviceSettingsHandler extends SettingsHandler {
+ getValue(settingName, roomId) {
+ // Special case blacklist setting to use legacy values
+ if (settingName === "blacklistUnverifiedDevices") {
+ const value = this._read("mx_local_settings");
+ if (value && value['blacklistUnverifiedDevicesPerRoom']) {
+ return value['blacklistUnverifiedDevicesPerRoom'][roomId];
+ }
+ }
+
+ const value = this._read(this._getKey(settingName, roomId));
+ if (value) return value.value;
+ return null;
+ }
+
+ setValue(settingName, roomId, newValue) {
+ // Special case blacklist setting for legacy structure
+ if (settingName === "blacklistUnverifiedDevices") {
+ let value = this._read("mx_local_settings");
+ if (!value) value = {};
+ if (!value["blacklistUnverifiedDevicesPerRoom"]) value["blacklistUnverifiedDevicesPerRoom"] = {};
+ value["blacklistUnverifiedDevicesPerRoom"][roomId] = newValue;
+ localStorage.setItem("mx_local_settings", JSON.stringify(value));
+ return Promise.resolve();
+ }
+
+ if (newValue === null) {
+ localStorage.removeItem(this._getKey(settingName, roomId));
+ } else {
+ newValue = JSON.stringify({value: newValue});
+ localStorage.setItem(this._getKey(settingName, roomId), newValue);
+ }
+
+ return Promise.resolve();
+ }
+
+ canSetValue(settingName, roomId) {
+ return true; // It's their device, so they should be able to
+ }
+
+ isSupported() {
+ return localStorage !== undefined && localStorage !== null;
+ }
+
+ _read(key) {
+ const rawValue = localStorage.getItem(key);
+ if (!rawValue) return null;
+ return JSON.parse(rawValue);
+ }
+
+ _getKey(settingName, roomId) {
+ return "mx_setting_" + settingName + "_" + roomId;
+ }
+}
diff --git a/src/settings/handlers/RoomSettingsHandler.js b/src/settings/handlers/RoomSettingsHandler.js
new file mode 100644
index 0000000000..cb3e836c7f
--- /dev/null
+++ b/src/settings/handlers/RoomSettingsHandler.js
@@ -0,0 +1,73 @@
+/*
+Copyright 2017 Travis Ralston
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import SettingsHandler from "./SettingsHandler";
+import MatrixClientPeg from '../../MatrixClientPeg';
+
+/**
+ * Gets and sets settings at the "room" level.
+ */
+export default class RoomSettingsHandler extends SettingsHandler {
+ getValue(settingName, roomId) {
+ // Special case URL previews
+ if (settingName === "urlPreviewsEnabled") {
+ const content = this._getSettings(roomId, "org.matrix.room.preview_urls");
+
+ // Check to make sure that we actually got a boolean
+ if (typeof(content['disable']) !== "boolean") return null;
+ return !content['disable'];
+ }
+
+ return this._getSettings(roomId)[settingName];
+ }
+
+ setValue(settingName, roomId, newValue) {
+ // Special case URL previews
+ if (settingName === "urlPreviewsEnabled") {
+ const content = this._getSettings(roomId, "org.matrix.room.preview_urls");
+ content['disable'] = !newValue;
+ return MatrixClientPeg.get().sendStateEvent(roomId, "org.matrix.room.preview_urls", content);
+ }
+
+ const content = this._getSettings(roomId);
+ content[settingName] = newValue;
+ return MatrixClientPeg.get().sendStateEvent(roomId, "im.vector.web.settings", content, "");
+ }
+
+ canSetValue(settingName, roomId) {
+ const cli = MatrixClientPeg.get();
+ const room = cli.getRoom(roomId);
+
+ let eventType = "im.vector.web.settings";
+ if (settingName === "urlPreviewsEnabled") eventType = "org.matrix.room.preview_urls";
+
+ if (!room) return false;
+ return room.currentState.maySendStateEvent(eventType, cli.getUserId());
+ }
+
+ isSupported() {
+ const cli = MatrixClientPeg.get();
+ return cli !== undefined && cli !== null;
+ }
+
+ _getSettings(roomId, eventType = "im.vector.web.settings") {
+ const room = MatrixClientPeg.get().getRoom(roomId);
+ if (!room) return {};
+ const event = room.currentState.getStateEvents(eventType, "");
+ if (!event || !event.getContent()) return {};
+ return event.getContent();
+ }
+}
diff --git a/src/settings/handlers/SettingsHandler.js b/src/settings/handlers/SettingsHandler.js
new file mode 100644
index 0000000000..69f633c650
--- /dev/null
+++ b/src/settings/handlers/SettingsHandler.js
@@ -0,0 +1,71 @@
+/*
+Copyright 2017 Travis Ralston
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import Promise from "bluebird";
+
+/**
+ * Represents the base class for all level handlers. This class performs no logic
+ * and should be overridden.
+ */
+export default class SettingsHandler {
+ /**
+ * Gets the value for a particular setting at this level for a particular room.
+ * If no room is applicable, the roomId may be null. The roomId may not be
+ * applicable to this level and may be ignored by the handler.
+ * @param {string} settingName The name of the setting.
+ * @param {String} roomId The room ID to read from, may be null.
+ * @returns {*} The setting value, or null if not found.
+ */
+ getValue(settingName, roomId) {
+ console.error("Invalid operation: getValue was not overridden");
+ return null;
+ }
+
+ /**
+ * Sets the value for a particular setting at this level for a particular room.
+ * If no room is applicable, the roomId may be null. The roomId may not be
+ * applicable to this level and may be ignored by the handler. Setting a value
+ * to null will cause the level to remove the value. The current user should be
+ * able to set the value prior to calling this.
+ * @param {string} settingName The name of the setting to change.
+ * @param {String} roomId The room ID to set the value in, may be null.
+ * @param {*} newValue The new value for the setting, may be null.
+ * @returns {Promise} Resolves when the setting has been saved.
+ */
+ setValue(settingName, roomId, newValue) {
+ console.error("Invalid operation: setValue was not overridden");
+ return Promise.reject();
+ }
+
+ /**
+ * Determines if the current user is able to set the value of the given setting
+ * in the given room at this level.
+ * @param {string} settingName The name of the setting to check.
+ * @param {String} roomId The room ID to check in, may be null
+ * @returns {boolean} True if the setting can be set by the user, false otherwise.
+ */
+ canSetValue(settingName, roomId) {
+ return false;
+ }
+
+ /**
+ * Determines if this level is supported on this device.
+ * @returns {boolean} True if this level is supported on the current device.
+ */
+ isSupported() {
+ return false;
+ }
+}
diff --git a/src/shouldHideEvent.js b/src/shouldHideEvent.js
index 1501e28875..1ecd1ac051 100644
--- a/src/shouldHideEvent.js
+++ b/src/shouldHideEvent.js
@@ -14,6 +14,8 @@
limitations under the License.
*/
+import SettingsStore from "./settings/SettingsStore";
+
function memberEventDiff(ev) {
const diff = {
isMemberEvent: ev.getType() === 'm.room.member',
@@ -34,16 +36,19 @@ function memberEventDiff(ev) {
return diff;
}
-export default function shouldHideEvent(ev, syncedSettings) {
+export default function shouldHideEvent(ev) {
+ // Wrap getValue() for readability
+ const isEnabled = (name) => SettingsStore.getValue(name, ev.getRoomId());
+
// Hide redacted events
- if (syncedSettings['hideRedactions'] && ev.isRedacted()) return true;
+ if (isEnabled('hideRedactions') && ev.isRedacted()) return true;
const eventDiff = memberEventDiff(ev);
if (eventDiff.isMemberEvent) {
- if (syncedSettings['hideJoinLeaves'] && (eventDiff.isJoin || eventDiff.isPart)) return true;
- const isMemberAvatarDisplaynameChange = eventDiff.isAvatarChange || eventDiff.isDisplaynameChange;
- if (syncedSettings['hideAvatarDisplaynameChanges'] && isMemberAvatarDisplaynameChange) return true;
+ if (isEnabled('hideJoinLeaves') && (eventDiff.isJoin || eventDiff.isPart)) return true;
+ if (isEnabled('hideAvatarChanges') && eventDiff.isAvatarChange) return true;
+ if (isEnabled('hideDisplaynameChanges') && eventDiff.isDisplaynameChange) return true;
}
return false;
diff --git a/src/stores/FilterStore.js b/src/stores/FilterStore.js
new file mode 100644
index 0000000000..8078a13ffd
--- /dev/null
+++ b/src/stores/FilterStore.js
@@ -0,0 +1,115 @@
+/*
+Copyright 2017 Vector Creations Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import {Store} from 'flux/utils';
+import dis from '../dispatcher';
+import Analytics from '../Analytics';
+
+const INITIAL_STATE = {
+ allTags: [],
+ selectedTags: [],
+ // Last selected tag when shift was not being pressed
+ anchorTag: null,
+};
+
+/**
+ * A class for storing application state for filtering via TagPanel.
+ */
+class FilterStore extends Store {
+ constructor() {
+ super(dis);
+
+ // Initialise state
+ this._state = INITIAL_STATE;
+ }
+
+ _setState(newState) {
+ this._state = Object.assign(this._state, newState);
+ this.__emitChange();
+ }
+
+ __onDispatch(payload) {
+ switch (payload.action) {
+ case 'all_tags' :
+ this._setState({
+ allTags: payload.tags,
+ });
+ break;
+ case 'select_tag': {
+ let newTags = [];
+ // Shift-click semantics
+ if (payload.shiftKey) {
+ // Select range of tags
+ let start = this._state.allTags.indexOf(this._state.anchorTag);
+ let end = this._state.allTags.indexOf(payload.tag);
+
+ if (start === -1) {
+ start = end;
+ }
+ if (start > end) {
+ const temp = start;
+ start = end;
+ end = temp;
+ }
+ newTags = payload.ctrlOrCmdKey ? this._state.selectedTags : [];
+ newTags = [...new Set(
+ this._state.allTags.slice(start, end + 1).concat(newTags),
+ )];
+ } else {
+ if (payload.ctrlOrCmdKey) {
+ // Toggle individual tag
+ if (this._state.selectedTags.includes(payload.tag)) {
+ newTags = this._state.selectedTags.filter((t) => t !== payload.tag);
+ } else {
+ newTags = [...this._state.selectedTags, payload.tag];
+ }
+ } else {
+ // Select individual tag
+ newTags = [payload.tag];
+ }
+ // Only set the anchor tag if the tag was previously unselected, otherwise
+ // the next range starts with an unselected tag.
+ if (!this._state.selectedTags.includes(payload.tag)) {
+ this._setState({
+ anchorTag: payload.tag,
+ });
+ }
+ }
+
+ this._setState({
+ selectedTags: newTags,
+ });
+
+ Analytics.trackEvent('FilterStore', 'select_tag');
+ }
+ break;
+ case 'deselect_tags':
+ this._setState({
+ selectedTags: [],
+ });
+ Analytics.trackEvent('FilterStore', 'deselect_tags');
+ break;
+ }
+ }
+
+ getSelectedTags() {
+ return this._state.selectedTags;
+ }
+}
+
+if (global.singletonFilterStore === undefined) {
+ global.singletonFilterStore = new FilterStore();
+}
+export default global.singletonFilterStore;
diff --git a/src/stores/FlairStore.js b/src/stores/FlairStore.js
new file mode 100644
index 0000000000..7a3aa31e4e
--- /dev/null
+++ b/src/stores/FlairStore.js
@@ -0,0 +1,189 @@
+/*
+Copyright 2017 New Vector Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import Promise from 'bluebird';
+
+const BULK_REQUEST_DEBOUNCE_MS = 200;
+
+// Does the server support groups? Assume yes until we receive M_UNRECOGNIZED.
+// If true, flair can function and we should keep sending requests for groups and avatars.
+let groupSupport = true;
+
+const USER_GROUPS_CACHE_BUST_MS = 1800000; // 30 mins
+const GROUP_PROFILES_CACHE_BUST_MS = 1800000; // 30 mins
+
+/**
+ * Stores data used by
+ */
+class FlairStore {
+ constructor(matrixClient) {
+ this._matrixClient = matrixClient;
+ this._userGroups = {
+ // $userId: ['+group1:domain', '+group2:domain', ...]
+ };
+ this._groupProfiles = {
+ // $groupId: {
+ // avatar_url: 'mxc://...'
+ // }
+ };
+ this._groupProfilesPromise = {
+ // $groupId: Promise
+ };
+ this._usersPending = {
+ // $userId: {
+ // prom: Promise
+ // resolve: () => {}
+ // reject: () => {}
+ // }
+ };
+ this._usersInFlight = {
+ // This has the same schema as _usersPending
+ };
+
+ this._debounceTimeoutID = null;
+ }
+
+ groupSupport() {
+ return groupSupport;
+ }
+
+ invalidatePublicisedGroups(userId) {
+ delete this._userGroups[userId];
+ }
+
+ getPublicisedGroupsCached(matrixClient, userId) {
+ if (this._userGroups[userId]) {
+ return Promise.resolve(this._userGroups[userId]);
+ }
+
+ // Bulk lookup ongoing, return promise to resolve/reject
+ if (this._usersPending[userId]) {
+ return this._usersPending[userId].prom;
+ }
+ // User has been moved from pending to in-flight
+ if (this._usersInFlight[userId]) {
+ return this._usersInFlight[userId].prom;
+ }
+
+ this._usersPending[userId] = {};
+ this._usersPending[userId].prom = new Promise((resolve, reject) => {
+ this._usersPending[userId].resolve = resolve;
+ this._usersPending[userId].reject = reject;
+ }).then((groups) => {
+ this._userGroups[userId] = groups;
+ setTimeout(() => {
+ delete this._userGroups[userId];
+ }, USER_GROUPS_CACHE_BUST_MS);
+ return this._userGroups[userId];
+ }).catch((err) => {
+ // Indicate whether the homeserver supports groups
+ if (err.errcode === 'M_UNRECOGNIZED') {
+ console.warn('Cannot display flair, server does not support groups');
+ groupSupport = false;
+ // Return silently to avoid spamming for non-supporting servers
+ return;
+ }
+ console.error('Could not get groups for user', userId, err);
+ throw err;
+ }).finally(() => {
+ delete this._usersInFlight[userId];
+ });
+
+ // This debounce will allow consecutive requests for the public groups of users that
+ // are sent in intervals of < BULK_REQUEST_DEBOUNCE_MS to be batched and only requested
+ // when no more requests are received within the next BULK_REQUEST_DEBOUNCE_MS. The naive
+ // implementation would do a request that only requested the groups for `userId`, leading
+ // to a worst and best case of 1 user per request. This implementation's worst is still
+ // 1 user per request but only if the requests are > BULK_REQUEST_DEBOUNCE_MS apart and the
+ // best case is N users per request.
+ //
+ // This is to reduce the number of requests made whilst trading off latency when viewing
+ // a Flair component.
+ if (this._debounceTimeoutID) clearTimeout(this._debounceTimeoutID);
+ this._debounceTimeoutID = setTimeout(() => {
+ this._batchedGetPublicGroups(matrixClient);
+ }, BULK_REQUEST_DEBOUNCE_MS);
+
+ return this._usersPending[userId].prom;
+ }
+
+ async _batchedGetPublicGroups(matrixClient) {
+ // Move users pending to users in flight
+ this._usersInFlight = this._usersPending;
+ this._usersPending = {};
+
+ let resp = {
+ users: [],
+ };
+ try {
+ resp = await matrixClient.getPublicisedGroups(Object.keys(this._usersInFlight));
+ } catch (err) {
+ // Propagate the same error to all usersInFlight
+ Object.keys(this._usersInFlight).forEach((userId) => {
+ // The promise should always exist for userId, but do a null-check anyway
+ if (!this._usersInFlight[userId]) return;
+ this._usersInFlight[userId].reject(err);
+ });
+ return;
+ }
+ const updatedUserGroups = resp.users;
+ Object.keys(this._usersInFlight).forEach((userId) => {
+ // The promise should always exist for userId, but do a null-check anyway
+ if (!this._usersInFlight[userId]) return;
+ this._usersInFlight[userId].resolve(updatedUserGroups[userId] || []);
+ });
+ }
+
+ async getGroupProfileCached(matrixClient, groupId) {
+ if (this._groupProfiles[groupId]) {
+ return this._groupProfiles[groupId];
+ }
+
+ // No request yet, start one
+ if (!this._groupProfilesPromise[groupId]) {
+ this._groupProfilesPromise[groupId] = matrixClient.getGroupProfile(groupId);
+ }
+
+ let profile;
+ try {
+ profile = await this._groupProfilesPromise[groupId];
+ } catch (e) {
+ console.log('Failed to get group profile for ' + groupId, e);
+ // Don't retry, but allow a retry when the profile is next requested
+ delete this._groupProfilesPromise[groupId];
+ return;
+ }
+
+ this._groupProfiles[groupId] = {
+ groupId,
+ avatarUrl: profile.avatar_url,
+ name: profile.name,
+ shortDescription: profile.short_description,
+ };
+ delete this._groupProfilesPromise[groupId];
+
+ setTimeout(() => {
+ delete this._groupProfiles[groupId];
+ }, GROUP_PROFILES_CACHE_BUST_MS);
+
+ return this._groupProfiles[groupId];
+ }
+}
+
+if (global.singletonFlairStore === undefined) {
+ global.singletonFlairStore = new FlairStore();
+}
+export default global.singletonFlairStore;
diff --git a/src/stores/GroupStore.js b/src/stores/GroupStore.js
new file mode 100644
index 0000000000..9dce15fb53
--- /dev/null
+++ b/src/stores/GroupStore.js
@@ -0,0 +1,234 @@
+/*
+Copyright 2017 New Vector Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import EventEmitter from 'events';
+import { groupMemberFromApiObject, groupRoomFromApiObject } from '../groups';
+import FlairStore from './FlairStore';
+import MatrixClientPeg from '../MatrixClientPeg';
+
+/**
+ * Stores the group summary for a room and provides an API to change it and
+ * other useful group APIs that may have an effect on the group summary.
+ */
+export default class GroupStore extends EventEmitter {
+
+ static STATE_KEY = {
+ GroupMembers: 'GroupMembers',
+ GroupInvitedMembers: 'GroupInvitedMembers',
+ Summary: 'Summary',
+ GroupRooms: 'GroupRooms',
+ };
+
+ constructor(groupId) {
+ super();
+ if (!groupId) {
+ throw new Error('GroupStore needs a valid groupId to be created');
+ }
+ this.groupId = groupId;
+ this._summary = {};
+ this._rooms = [];
+ this._members = [];
+ this._invitedMembers = [];
+ this._ready = {};
+
+ this.on('error', (err) => {
+ console.error(`GroupStore for ${this.groupId} encountered error`, err);
+ });
+ }
+
+ _fetchMembers() {
+ MatrixClientPeg.get().getGroupUsers(this.groupId).then((result) => {
+ this._members = result.chunk.map((apiMember) => {
+ return groupMemberFromApiObject(apiMember);
+ });
+ this._ready[GroupStore.STATE_KEY.GroupMembers] = true;
+ this._notifyListeners();
+ }).catch((err) => {
+ console.error("Failed to get group member list: " + err);
+ this.emit('error', err);
+ });
+
+ MatrixClientPeg.get().getGroupInvitedUsers(this.groupId).then((result) => {
+ this._invitedMembers = result.chunk.map((apiMember) => {
+ return groupMemberFromApiObject(apiMember);
+ });
+ this._ready[GroupStore.STATE_KEY.GroupInvitedMembers] = true;
+ this._notifyListeners();
+ }).catch((err) => {
+ // Invited users not visible to non-members
+ if (err.httpStatus === 403) {
+ return;
+ }
+ console.error("Failed to get group invited member list: " + err);
+ this.emit('error', err);
+ });
+ }
+
+ _fetchSummary() {
+ MatrixClientPeg.get().getGroupSummary(this.groupId).then((resp) => {
+ this._summary = resp;
+ this._ready[GroupStore.STATE_KEY.Summary] = true;
+ this._notifyListeners();
+ }).catch((err) => {
+ this.emit('error', err);
+ });
+ }
+
+ _fetchRooms() {
+ MatrixClientPeg.get().getGroupRooms(this.groupId).then((resp) => {
+ this._rooms = resp.chunk.map((apiRoom) => {
+ return groupRoomFromApiObject(apiRoom);
+ });
+ this._ready[GroupStore.STATE_KEY.GroupRooms] = true;
+ this._notifyListeners();
+ }).catch((err) => {
+ this.emit('error', err);
+ });
+ }
+
+ _notifyListeners() {
+ this.emit('update');
+ }
+
+ /**
+ * Register a listener to recieve updates from the store. This also
+ * immediately triggers an update to send the current state of the
+ * store (which could be the initial state).
+ *
+ * XXX: This also causes a fetch of all group data, which effectively
+ * causes 4 separate HTTP requests. This is bad, we should at least
+ * deduplicate these in order to fix:
+ * https://github.com/vector-im/riot-web/issues/5901
+ *
+ * @param {function} fn the function to call when the store updates.
+ * @return {Object} tok a registration "token" with a single
+ * property `unregister`, a function that can
+ * be called to unregister the listener such
+ * that it won't be called any more.
+ */
+ registerListener(fn) {
+ this.on('update', fn);
+ // Call to set initial state (before fetching starts)
+ this.emit('update');
+ this._fetchSummary();
+ this._fetchRooms();
+ this._fetchMembers();
+
+ // Similar to the Store of flux/utils, we return a "token" that
+ // can be used to unregister the listener.
+ return {
+ unregister: () => {
+ this.unregisterListener(fn);
+ },
+ };
+ }
+
+ unregisterListener(fn) {
+ this.removeListener('update', fn);
+ }
+
+ isStateReady(id) {
+ return this._ready[id];
+ }
+
+ getSummary() {
+ return this._summary;
+ }
+
+ getGroupRooms() {
+ return this._rooms;
+ }
+
+ getGroupMembers( ) {
+ return this._members;
+ }
+
+ getGroupInvitedMembers( ) {
+ return this._invitedMembers;
+ }
+
+ getGroupPublicity() {
+ return this._summary.user ? this._summary.user.is_publicised : null;
+ }
+
+ isUserPrivileged() {
+ return this._summary.user ? this._summary.user.is_privileged : null;
+ }
+
+ addRoomToGroup(roomId, isPublic) {
+ return MatrixClientPeg.get()
+ .addRoomToGroup(this.groupId, roomId, isPublic)
+ .then(this._fetchRooms.bind(this));
+ }
+
+ updateGroupRoomVisibility(roomId, isPublic) {
+ return MatrixClientPeg.get()
+ .updateGroupRoomVisibility(this.groupId, roomId, isPublic)
+ .then(this._fetchRooms.bind(this));
+ }
+
+ removeRoomFromGroup(roomId) {
+ return MatrixClientPeg.get()
+ .removeRoomFromGroup(this.groupId, roomId)
+ // Room might be in the summary, refresh just in case
+ .then(this._fetchSummary.bind(this))
+ .then(this._fetchRooms.bind(this));
+ }
+
+ inviteUserToGroup(userId) {
+ return MatrixClientPeg.get().inviteUserToGroup(this.groupId, userId)
+ .then(this._fetchMembers.bind(this));
+ }
+
+ acceptGroupInvite() {
+ return MatrixClientPeg.get().acceptGroupInvite(this.groupId)
+ // The user might be able to see more rooms now
+ .then(this._fetchRooms.bind(this))
+ // The user should now appear as a member
+ .then(this._fetchMembers.bind(this));
+ }
+
+ addRoomToGroupSummary(roomId, categoryId) {
+ return MatrixClientPeg.get()
+ .addRoomToGroupSummary(this.groupId, roomId, categoryId)
+ .then(this._fetchSummary.bind(this));
+ }
+
+ addUserToGroupSummary(userId, roleId) {
+ return MatrixClientPeg.get()
+ .addUserToGroupSummary(this.groupId, userId, roleId)
+ .then(this._fetchSummary.bind(this));
+ }
+
+ removeRoomFromGroupSummary(roomId) {
+ return MatrixClientPeg.get()
+ .removeRoomFromGroupSummary(this.groupId, roomId)
+ .then(this._fetchSummary.bind(this));
+ }
+
+ removeUserFromGroupSummary(userId) {
+ return MatrixClientPeg.get()
+ .removeUserFromGroupSummary(this.groupId, userId)
+ .then(this._fetchSummary.bind(this));
+ }
+
+ setGroupPublicity(isPublished) {
+ return MatrixClientPeg.get()
+ .setGroupPublicity(this.groupId, isPublished)
+ .then(() => { FlairStore.invalidatePublicisedGroups(MatrixClientPeg.get().credentials.userId); })
+ .then(this._fetchSummary.bind(this));
+ }
+}
diff --git a/src/stores/GroupStoreCache.js b/src/stores/GroupStoreCache.js
new file mode 100644
index 0000000000..8b4286831b
--- /dev/null
+++ b/src/stores/GroupStoreCache.js
@@ -0,0 +1,38 @@
+/*
+Copyright 2017 New Vector Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import GroupStore from './GroupStore';
+
+class GroupStoreCache {
+ constructor() {
+ this.groupStore = null;
+ }
+
+ getGroupStore(groupId) {
+ if (!this.groupStore || this.groupStore.groupId !== groupId) {
+ // This effectively throws away the reference to any previous GroupStore,
+ // allowing it to be GCd once the components referencing it have stopped
+ // referencing it.
+ this.groupStore = new GroupStore(groupId);
+ }
+ return this.groupStore;
+ }
+}
+
+if (global.singletonGroupStoreCache === undefined) {
+ global.singletonGroupStoreCache = new GroupStoreCache();
+}
+export default global.singletonGroupStoreCache;
diff --git a/src/stores/RoomScrollStateStore.js b/src/stores/RoomScrollStateStore.js
new file mode 100644
index 0000000000..07848283d1
--- /dev/null
+++ b/src/stores/RoomScrollStateStore.js
@@ -0,0 +1,50 @@
+/*
+Copyright 2017 New Vector Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+/**
+ * Stores where the user has scrolled to in each room
+ */
+class RoomScrollStateStore {
+ constructor() {
+ // A map from room id to scroll state.
+ //
+ // If there is no special scroll state (ie, we are following the live
+ // timeline), the scroll state is null. Otherwise, it is an object with
+ // the following properties:
+ //
+ // focussedEvent: the ID of the 'focussed' event. Typically this is
+ // the last event fully visible in the viewport, though if we
+ // have done an explicit scroll to an explicit event, it will be
+ // that event.
+ //
+ // pixelOffset: the number of pixels the window is scrolled down
+ // from the focussedEvent.
+ this._scrollStateMap = {};
+ }
+
+ getScrollState(roomId) {
+ return this._scrollStateMap[roomId];
+ }
+
+ setScrollState(roomId, scrollState) {
+ this._scrollStateMap[roomId] = scrollState;
+ }
+}
+
+if (global.mx_RoomScrollStateStore === undefined) {
+ global.mx_RoomScrollStateStore = new RoomScrollStateStore();
+}
+export default global.mx_RoomScrollStateStore;
diff --git a/src/stores/RoomViewStore.js b/src/stores/RoomViewStore.js
index bd9d3ea0fa..0a8eca8797 100644
--- a/src/stores/RoomViewStore.js
+++ b/src/stores/RoomViewStore.js
@@ -21,7 +21,7 @@ import Modal from '../Modal';
import { _t } from '../languageHandler';
const INITIAL_STATE = {
- // Whether we're joining the currently viewed room
+ // Whether we're joining the currently viewed room (see isJoining())
joining: false,
// Any error that has occurred during joining
joinError: null,
@@ -30,8 +30,6 @@ const INITIAL_STATE = {
// The event to scroll to when the room is first viewed
initialEventId: null,
- // The offset to display the initial event at (see scrollStateMap)
- initialEventPixelOffset: null,
// Whether to highlight the initial event
isInitialEventHighlighted: false,
@@ -41,20 +39,6 @@ const INITIAL_STATE = {
roomLoading: false,
// Any error that has occurred during loading
roomLoadError: null,
- // A map from room id to scroll state.
- //
- // If there is no special scroll state (ie, we are following the live
- // timeline), the scroll state is null. Otherwise, it is an object with
- // the following properties:
- //
- // focussedEvent: the ID of the 'focussed' event. Typically this is
- // the last event fully visible in the viewport, though if we
- // have done an explicit scroll to an explicit event, it will be
- // that event.
- //
- // pixelOffset: the number of pixels the window is scrolled down
- // from the focussedEvent.
- scrollStateMap: {},
forwardingEvent: null,
};
@@ -88,6 +72,13 @@ class RoomViewStore extends Store {
case 'view_room':
this._viewRoom(payload);
break;
+ case 'view_my_groups':
+ case 'view_group':
+ this._setState({
+ roomId: null,
+ roomAlias: null,
+ });
+ break;
case 'view_room_error':
this._viewRoomError(payload);
break;
@@ -106,18 +97,12 @@ class RoomViewStore extends Store {
case 'join_room':
this._joinRoom(payload);
break;
- case 'joined_room':
- this._joinedRoom(payload);
- break;
case 'join_room_error':
this._joinRoomError(payload);
break;
case 'on_logged_out':
this.reset();
break;
- case 'update_scroll_state':
- this._updateScrollState(payload);
- break;
case 'forward_event':
this._setState({
forwardingEvent: payload.event,
@@ -132,29 +117,16 @@ class RoomViewStore extends Store {
roomId: payload.room_id,
roomAlias: payload.room_alias,
initialEventId: payload.event_id,
- initialEventPixelOffset: undefined,
isInitialEventHighlighted: payload.highlighted,
forwardingEvent: null,
roomLoading: false,
roomLoadError: null,
// should peek by default
shouldPeek: payload.should_peek === undefined ? true : payload.should_peek,
+ // have we sent a join request for this room and are waiting for a response?
+ joining: payload.joining || false,
};
- if (payload.joined) {
- newState.joining = false;
- }
-
- // If an event ID wasn't specified, default to the one saved for this room
- // via update_scroll_state. Assume initialEventPixelOffset should be set.
- if (!newState.initialEventId) {
- const roomScrollState = this._state.scrollStateMap[payload.room_id];
- if (roomScrollState) {
- newState.initialEventId = roomScrollState.focussedEvent;
- newState.initialEventPixelOffset = roomScrollState.pixelOffset;
- }
- }
-
if (this._state.forwardingEvent) {
dis.dispatch({
action: 'send_event',
@@ -164,6 +136,10 @@ class RoomViewStore extends Store {
}
this._setState(newState);
+
+ if (payload.auto_join) {
+ this._joinRoom(payload);
+ }
} else if (payload.room_alias) {
// Resolve the alias and then do a second dispatch with the room ID acquired
this._setState({
@@ -183,6 +159,8 @@ class RoomViewStore extends Store {
event_id: payload.event_id,
highlighted: payload.highlighted,
room_alias: payload.room_alias,
+ auto_join: payload.auto_join,
+ oob_data: payload.oob_data,
});
}, (err) => {
dis.dispatch({
@@ -211,9 +189,11 @@ class RoomViewStore extends Store {
MatrixClientPeg.get().joinRoom(
this._state.roomAlias || this._state.roomId, payload.opts,
).done(() => {
- dis.dispatch({
- action: 'joined_room',
- });
+ // We don't actually need to do anything here: we do *not*
+ // clear the 'joining' flag because the Room object and/or
+ // our 'joined' member event may not have come down the sync
+ // stream yet, and that's the point at which we'd consider
+ // the user joined to the room.
}, (err) => {
dis.dispatch({
action: 'join_room_error',
@@ -228,12 +208,6 @@ class RoomViewStore extends Store {
});
}
- _joinedRoom(payload) {
- this._setState({
- joining: false,
- });
- }
-
_joinRoomError(payload) {
this._setState({
joining: false,
@@ -241,15 +215,6 @@ class RoomViewStore extends Store {
});
}
- _updateScrollState(payload) {
- // Clobber existing scroll state for the given room ID
- const newScrollStateMap = this._state.scrollStateMap;
- newScrollStateMap[payload.room_id] = payload.scroll_state;
- this._setState({
- scrollStateMap: newScrollStateMap,
- });
- }
-
reset() {
this._state = Object.assign({}, INITIAL_STATE);
}
@@ -264,11 +229,6 @@ class RoomViewStore extends Store {
return this._state.initialEventId;
}
- // The offset to display the initial event at (see scrollStateMap)
- getInitialEventPixelOffset() {
- return this._state.initialEventPixelOffset;
- }
-
// Whether to highlight the initial event
isInitialEventHighlighted() {
return this._state.isInitialEventHighlighted;
@@ -289,7 +249,29 @@ class RoomViewStore extends Store {
return this._state.roomLoadError;
}
- // Whether we're joining the currently viewed room
+ // True if we're expecting the user to be joined to the room currently being
+ // viewed. Note that this is left true after the join request has finished,
+ // since we should still consider a join to be in progress until the room
+ // & member events come down the sync.
+ //
+ // This flag remains true after the room has been sucessfully joined,
+ // (this store doesn't listen for the appropriate member events)
+ // so you should always observe the joined state from the member event
+ // if a room object is present.
+ // ie. The correct logic is:
+ // if (room) {
+ // if (myMember.membership == 'joined') {
+ // // user is joined to the room
+ // } else {
+ // // Not joined
+ // }
+ // } else {
+ // if (RoomViewStore.isJoining()) {
+ // // show spinner
+ // } else {
+ // // show join prompt
+ // }
+ // }
isJoining() {
return this._state.joining;
}
diff --git a/src/stores/TagOrderStore.js b/src/stores/TagOrderStore.js
new file mode 100644
index 0000000000..633ffc7e9c
--- /dev/null
+++ b/src/stores/TagOrderStore.js
@@ -0,0 +1,137 @@
+/*
+Copyright 2017 New Vector Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import {Store} from 'flux/utils';
+import dis from '../dispatcher';
+
+const INITIAL_STATE = {
+ orderedTags: null,
+ orderedTagsAccountData: null,
+ hasSynced: false,
+ joinedGroupIds: null,
+};
+
+/**
+ * A class for storing application state for ordering tags in the TagPanel.
+ */
+class TagOrderStore extends Store {
+ constructor() {
+ super(dis);
+
+ // Initialise state
+ this._state = Object.assign({}, INITIAL_STATE);
+ }
+
+ _setState(newState) {
+ this._state = Object.assign(this._state, newState);
+ this.__emitChange();
+ }
+
+ __onDispatch(payload) {
+ switch (payload.action) {
+ // Initialise state after initial sync
+ case 'MatrixActions.sync': {
+ if (!(payload.prevState === 'PREPARED' && payload.state === 'SYNCING')) {
+ break;
+ }
+ const tagOrderingEvent = payload.matrixClient.getAccountData('im.vector.web.tag_ordering');
+ const tagOrderingEventContent = tagOrderingEvent ? tagOrderingEvent.getContent() : {};
+ this._setState({
+ orderedTagsAccountData: tagOrderingEventContent.tags || null,
+ hasSynced: true,
+ });
+ this._updateOrderedTags();
+ break;
+ }
+ // Get ordering from account data
+ case 'MatrixActions.accountData': {
+ if (payload.event_type !== 'im.vector.web.tag_ordering') break;
+ this._setState({
+ orderedTagsAccountData: payload.event_content ? payload.event_content.tags : null,
+ });
+ this._updateOrderedTags();
+ break;
+ }
+ // Initialise the state such that if account data is unset, default to joined groups
+ case 'GroupActions.fetchJoinedGroups.success': {
+ this._setState({
+ joinedGroupIds: payload.result.groups.sort(), // Sort lexically
+ hasFetchedJoinedGroups: true,
+ });
+ this._updateOrderedTags();
+ break;
+ }
+ // Puts payload.tag at payload.targetTag, placing the targetTag before or after the tag
+ case 'order_tag': {
+ if (!this._state.orderedTags ||
+ !payload.tag ||
+ !payload.targetTag ||
+ payload.tag === payload.targetTag
+ ) return;
+
+ const tags = this._state.orderedTags;
+
+ let orderedTags = tags.filter((t) => t !== payload.tag);
+ const newIndex = orderedTags.indexOf(payload.targetTag) + (payload.after ? 1 : 0);
+ orderedTags = [
+ ...orderedTags.slice(0, newIndex),
+ payload.tag,
+ ...orderedTags.slice(newIndex),
+ ];
+ this._setState({orderedTags});
+ break;
+ }
+ case 'on_logged_out': {
+ // Reset state without pushing an update to the view, which generally assumes that
+ // the matrix client isn't `null` and so causing a re-render will cause NPEs.
+ this._state = Object.assign({}, INITIAL_STATE);
+ break;
+ }
+ }
+ }
+
+ _updateOrderedTags() {
+ this._setState({
+ orderedTags:
+ this._state.hasSynced &&
+ this._state.hasFetchedJoinedGroups ?
+ this._mergeGroupsAndTags() : null,
+ });
+ }
+
+ _mergeGroupsAndTags() {
+ const groupIds = this._state.joinedGroupIds || [];
+ const tags = this._state.orderedTagsAccountData || [];
+
+ const tagsToKeep = tags.filter(
+ (t) => t[0] !== '+' || groupIds.includes(t),
+ );
+
+ const groupIdsToAdd = groupIds.filter(
+ (groupId) => !tags.includes(groupId),
+ );
+
+ return tagsToKeep.concat(groupIdsToAdd);
+ }
+
+ getOrderedTags() {
+ return this._state.orderedTags;
+ }
+}
+
+if (global.singletonTagOrderStore === undefined) {
+ global.singletonTagOrderStore = new TagOrderStore();
+}
+export default global.singletonTagOrderStore;
diff --git a/src/utils/DecryptFile.js b/src/utils/DecryptFile.js
index 04496e4204..cb5e407407 100644
--- a/src/utils/DecryptFile.js
+++ b/src/utils/DecryptFile.js
@@ -28,8 +28,8 @@ import Promise from 'bluebird';
* @return {Promise} A promise that resolves with the data:// URI.
*/
export function readBlobAsDataUri(file) {
- var deferred = Promise.defer();
- var reader = new FileReader();
+ const deferred = Promise.defer();
+ const reader = new FileReader();
reader.onload = function(e) {
deferred.resolve(e.target.result);
};
@@ -61,7 +61,7 @@ export function decryptFile(file) {
return encrypt.decryptAttachment(responseData, file);
}).then(function(dataArray) {
// Turn the array into a Blob and give it the correct MIME-type.
- var blob = new Blob([dataArray], {type: file.mimetype});
+ const blob = new Blob([dataArray], {type: file.mimetype});
return blob;
});
}
diff --git a/src/utils/MegolmExportEncryption.js b/src/utils/MegolmExportEncryption.js
index 11f9d86816..01c521da0c 100644
--- a/src/utils/MegolmExportEncryption.js
+++ b/src/utils/MegolmExportEncryption.js
@@ -116,7 +116,7 @@ export async function decryptMegolmKeyFile(data, password) {
aesKey,
ciphertext,
);
- } catch(e) {
+ } catch (e) {
throw friendlyError('subtleCrypto.decrypt failed: ' + e, cryptoFailMsg());
}
diff --git a/src/utils/MultiInviter.js b/src/utils/MultiInviter.js
index 1d5eac073a..a0f33f5c39 100644
--- a/src/utils/MultiInviter.js
+++ b/src/utils/MultiInviter.js
@@ -1,5 +1,6 @@
/*
Copyright 2016 OpenMarket Ltd
+Copyright 2017 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,16 +15,27 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
+import MatrixClientPeg from '../MatrixClientPeg';
import {getAddressType} from '../UserAddress';
-import {inviteToRoom} from '../Invite';
+import {inviteToRoom} from '../RoomInvite';
+import GroupStoreCache from '../stores/GroupStoreCache';
import Promise from 'bluebird';
/**
- * Invites multiple addresses to a room, handling rate limiting from the server
+ * Invites multiple addresses to a room or group, handling rate limiting from the server
*/
export default class MultiInviter {
- constructor(roomId) {
- this.roomId = roomId;
+ /**
+ * @param {string} targetId The ID of the room or group to invite to
+ */
+ constructor(targetId) {
+ if (targetId[0] === '+') {
+ this.roomId = null;
+ this.groupId = targetId;
+ } else {
+ this.roomId = targetId;
+ this.groupId = null;
+ }
this.canceled = false;
this.addrs = [];
@@ -104,7 +116,16 @@ export default class MultiInviter {
return;
}
- inviteToRoom(this.roomId, addr).then(() => {
+ let doInvite;
+ if (this.groupId !== null) {
+ doInvite = GroupStoreCache
+ .getGroupStore(this.groupId)
+ .inviteUserToGroup(addr);
+ } else {
+ doInvite = inviteToRoom(this.roomId, addr);
+ }
+
+ doInvite.then(() => {
if (this._canceled) { return; }
this.completionStates[addr] = 'invited';
diff --git a/src/utils/PinningUtils.js b/src/utils/PinningUtils.js
new file mode 100644
index 0000000000..90d26cc988
--- /dev/null
+++ b/src/utils/PinningUtils.js
@@ -0,0 +1,30 @@
+/*
+Copyright 2017 Travis Ralston
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+export default class PinningUtils {
+ /**
+ * Determines if the given event may be pinned.
+ * @param {MatrixEvent} event The event to check.
+ * @return {boolean} True if the event may be pinned, false otherwise.
+ */
+ static isPinnable(event) {
+ if (!event) return false;
+ if (event.getType() !== "m.room.message") return false;
+ if (event.isRedacted()) return false;
+
+ return true;
+ }
+}
diff --git a/src/utils/Receipt.js b/src/utils/Receipt.js
index 549a0fd8b3..04bd4a4d8f 100644
--- a/src/utils/Receipt.js
+++ b/src/utils/Receipt.js
@@ -20,9 +20,9 @@ limitations under the License.
* receipt exists.
*/
export function findReadReceiptFromUserId(receiptEvent, userId) {
- var receiptKeys = Object.keys(receiptEvent.getContent());
- for (var i = 0; i < receiptKeys.length; ++i) {
- var rcpt = receiptEvent.getContent()[receiptKeys[i]];
+ const receiptKeys = Object.keys(receiptEvent.getContent());
+ for (let i = 0; i < receiptKeys.length; ++i) {
+ const rcpt = receiptEvent.getContent()[receiptKeys[i]];
if (rcpt['m.read'] && rcpt['m.read'][userId]) {
return rcpt;
}
diff --git a/src/utils/createMatrixClient.js b/src/utils/createMatrixClient.js
index 2d294e262b..b83e254fad 100644
--- a/src/utils/createMatrixClient.js
+++ b/src/utils/createMatrixClient.js
@@ -23,7 +23,7 @@ const localStorage = window.localStorage;
let indexedDB;
try {
indexedDB = window.indexedDB;
-} catch(e) {}
+} catch (e) {}
/**
* Create a new matrix client, with the persistent stores set up appropriately
@@ -39,7 +39,9 @@ try {
* @returns {MatrixClient} the newly-created MatrixClient
*/
export default function createMatrixClient(opts) {
- const storeOpts = {};
+ const storeOpts = {
+ useAuthorizationHeader: true,
+ };
if (localStorage) {
storeOpts.sessionStore = new Matrix.WebStorageSessionStore(localStorage);
diff --git a/test/all-tests.js b/test/all-tests.js
index 6e604f84ad..1d4d36ebfd 100644
--- a/test/all-tests.js
+++ b/test/all-tests.js
@@ -3,5 +3,5 @@
// Our master test file: uses the webpack require API to find our test files
// and run them
-var context = require.context('.', true, /-test\.jsx?$/);
+const context = require.context('.', true, /-test\.jsx?$/);
context.keys().forEach(context);
diff --git a/test/components/structures/MessagePanel-test.js b/test/components/structures/MessagePanel-test.js
index ad7d9c15c7..e7176e2c16 100644
--- a/test/components/structures/MessagePanel-test.js
+++ b/test/components/structures/MessagePanel-test.js
@@ -14,21 +14,23 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-var React = require('react');
-var ReactDOM = require("react-dom");
-var TestUtils = require('react-addons-test-utils');
-var expect = require('expect');
+import SettingsStore from "../../../src/settings/SettingsStore";
+
+const React = require('react');
+const ReactDOM = require("react-dom");
+const TestUtils = require('react-addons-test-utils');
+const expect = require('expect');
import sinon from 'sinon';
-var sdk = require('matrix-react-sdk');
+const sdk = require('matrix-react-sdk');
-var MessagePanel = sdk.getComponent('structures.MessagePanel');
-import UserSettingsStore from '../../../src/UserSettingsStore';
+const MessagePanel = sdk.getComponent('structures.MessagePanel');
+import MatrixClientPeg from '../../../src/MatrixClientPeg';
-var test_utils = require('test-utils');
-var mockclock = require('mock-clock');
+const test_utils = require('test-utils');
+const mockclock = require('mock-clock');
-var client;
+let client;
// wrap MessagePanel with a component which provides the MatrixClient in the context.
const WrappedMessagePanel = React.createClass({
@@ -47,26 +49,31 @@ const WrappedMessagePanel = React.createClass({
},
});
-describe('MessagePanel', function () {
- var clock = mockclock.clock();
- var realSetTimeout = window.setTimeout;
- var events = mkEvents();
+describe('MessagePanel', function() {
+ const clock = mockclock.clock();
+ const realSetTimeout = window.setTimeout;
+ const events = mkEvents();
+ let sandbox = null;
beforeEach(function() {
test_utils.beforeEach(this);
- client = test_utils.createTestClient();
+ sandbox = test_utils.stubClient();
+ client = MatrixClientPeg.get();
client.credentials = {userId: '@me:here'};
- UserSettingsStore.getSyncedSettings = sinon.stub().returns({});
+
+ // HACK: We assume all settings want to be disabled
+ SettingsStore.getValue = sinon.stub().returns(false);
});
afterEach(function() {
clock.uninstall();
+ sandbox.restore();
});
function mkEvents() {
- var events = [];
- var ts0 = Date.now();
- for (var i = 0; i < 10; i++) {
+ const events = [];
+ const ts0 = Date.now();
+ for (let i = 0; i < 10; i++) {
events.push(test_utils.mkMessage(
{
event: true, room: "!room:id", user: "@user:id",
@@ -77,30 +84,30 @@ describe('MessagePanel', function () {
}
it('should show the events', function() {
- var res = TestUtils.renderIntoDocument(
-
+ const res = TestUtils.renderIntoDocument(
+ ,
);
// just check we have the right number of tiles for now
- var tiles = TestUtils.scryRenderedComponentsWithType(
+ const tiles = TestUtils.scryRenderedComponentsWithType(
res, sdk.getComponent('rooms.EventTile'));
expect(tiles.length).toEqual(10);
});
it('should show the read-marker in the right place', function() {
- var res = TestUtils.renderIntoDocument(
+ const res = TestUtils.renderIntoDocument(
+ readMarkerVisible={true} />,
);
- var tiles = TestUtils.scryRenderedComponentsWithType(
+ const tiles = TestUtils.scryRenderedComponentsWithType(
res, sdk.getComponent('rooms.EventTile'));
// find the which wraps the read marker
- var rm = TestUtils.findRenderedDOMComponentWithClass(res, 'mx_RoomView_myReadMarker_container');
+ const rm = TestUtils.findRenderedDOMComponentWithClass(res, 'mx_RoomView_myReadMarker_container');
// it should follow the which wraps the event tile for event 4
- var eventContainer = ReactDOM.findDOMNode(tiles[4]).parentNode;
+ const eventContainer = ReactDOM.findDOMNode(tiles[4]).parentNode;
expect(rm.previousSibling).toEqual(eventContainer);
});
@@ -109,22 +116,22 @@ describe('MessagePanel', function () {
clock.install();
clock.mockDate();
- var parentDiv = document.createElement('div');
+ const parentDiv = document.createElement('div');
// first render with the RM in one place
- var mp = ReactDOM.render(
+ let mp = ReactDOM.render(
, parentDiv);
- var tiles = TestUtils.scryRenderedComponentsWithType(
+ const tiles = TestUtils.scryRenderedComponentsWithType(
mp, sdk.getComponent('rooms.EventTile'));
- var tileContainers = tiles.map(function (t) {
+ const tileContainers = tiles.map(function(t) {
return ReactDOM.findDOMNode(t).parentNode;
});
// find the which wraps the read marker
- var rm = TestUtils.findRenderedDOMComponentWithClass(mp, 'mx_RoomView_myReadMarker_container');
+ const rm = TestUtils.findRenderedDOMComponentWithClass(mp, 'mx_RoomView_myReadMarker_container');
expect(rm.previousSibling).toEqual(tileContainers[4]);
// now move the RM
@@ -134,12 +141,12 @@ describe('MessagePanel', function () {
/>, parentDiv);
// now there should be two RM containers
- var found = TestUtils.scryRenderedDOMComponentsWithClass(mp, 'mx_RoomView_myReadMarker_container');
+ const found = TestUtils.scryRenderedDOMComponentsWithClass(mp, 'mx_RoomView_myReadMarker_container');
expect(found.length).toEqual(2);
// the first should be the ghost
expect(found[0].previousSibling).toEqual(tileContainers[4]);
- var hr = found[0].children[0];
+ const hr = found[0].children[0];
// the second should be the real thing
expect(found[1].previousSibling).toEqual(tileContainers[6]);
@@ -160,17 +167,17 @@ describe('MessagePanel', function () {
});
it('shows only one ghost when the RM moves twice', function() {
- var parentDiv = document.createElement('div');
+ const parentDiv = document.createElement('div');
// first render with the RM in one place
- var mp = ReactDOM.render(
+ let mp = ReactDOM.render(
, parentDiv);
- var tiles = TestUtils.scryRenderedComponentsWithType(
+ const tiles = TestUtils.scryRenderedComponentsWithType(
mp, sdk.getComponent('rooms.EventTile'));
- var tileContainers = tiles.map(function (t) {
+ const tileContainers = tiles.map(function(t) {
return ReactDOM.findDOMNode(t).parentNode;
});
@@ -181,7 +188,7 @@ describe('MessagePanel', function () {
/>, parentDiv);
// now there should be two RM containers
- var found = TestUtils.scryRenderedDOMComponentsWithClass(mp, 'mx_RoomView_myReadMarker_container');
+ let found = TestUtils.scryRenderedDOMComponentsWithClass(mp, 'mx_RoomView_myReadMarker_container');
expect(found.length).toEqual(2);
// the first should be the ghost
diff --git a/test/components/structures/ScrollPanel-test.js b/test/components/structures/ScrollPanel-test.js
index e7d3d7b0e6..0e091cdddf 100644
--- a/test/components/structures/ScrollPanel-test.js
+++ b/test/components/structures/ScrollPanel-test.js
@@ -14,18 +14,18 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-var React = require('react');
-var ReactDOM = require("react-dom");
-var ReactTestUtils = require('react-addons-test-utils');
-var expect = require('expect');
+const React = require('react');
+const ReactDOM = require("react-dom");
+const ReactTestUtils = require('react-addons-test-utils');
+const expect = require('expect');
import Promise from 'bluebird';
-var sdk = require('matrix-react-sdk');
+const sdk = require('matrix-react-sdk');
-var ScrollPanel = sdk.getComponent('structures.ScrollPanel');
-var test_utils = require('test-utils');
+const ScrollPanel = sdk.getComponent('structures.ScrollPanel');
+const test_utils = require('test-utils');
-var Tester = React.createClass({
+const Tester = React.createClass({
getInitialState: function() {
return {
tileKeys: [],
@@ -43,18 +43,18 @@ var Tester = React.createClass({
},
_onFillRequest: function(back) {
- var dir = back ? 'b': 'f';
+ const dir = back ? 'b': 'f';
console.log("FillRequest: " + dir);
this.fillCounts[dir]++;
- var handler = this._fillHandlers[dir];
- var defer = this._fillDefers[dir];
+ const handler = this._fillHandlers[dir];
+ const defer = this._fillDefers[dir];
// don't use the same handler twice
this._fillHandlers[dir] = null;
this._fillDefers[dir] = null;
- var res;
+ let res;
if (handler) {
res = handler();
} else {
@@ -74,17 +74,17 @@ var Tester = React.createClass({
/* returns a promise which will resolve when the fill happens */
awaitFill: function(dir) {
console.log("ScrollPanel Tester: awaiting " + dir + " fill");
- var defer = Promise.defer();
+ const defer = Promise.defer();
this._fillDefers[dir] = defer;
return defer.promise;
},
_onScroll: function(ev) {
- var st = ev.target.scrollTop;
+ const st = ev.target.scrollTop;
console.log("ScrollPanel Tester: scroll event; scrollTop: " + st);
this.lastScrollEvent = st;
- var d = this._scrollDefer;
+ const d = this._scrollDefer;
if (d) {
this._scrollDefer = null;
d.resolve();
@@ -118,29 +118,29 @@ var Tester = React.createClass({
- {key}
+ { key }
);
},
render: function() {
- var tiles = this.state.tileKeys.map(this._mkTile);
+ const tiles = this.state.tileKeys.map(this._mkTile);
console.log("rendering with " + tiles.length + " tiles");
return (
- {tiles}
+ onScroll={this._onScroll}
+ onFillRequest={this._onFillRequest}>
+ { tiles }
);
},
});
describe('ScrollPanel', function() {
- var parentDiv;
- var tester;
- var scrollingDiv;
+ let parentDiv;
+ let tester;
+ let scrollingDiv;
beforeEach(function(done) {
test_utils.beforeEach(this);
@@ -153,7 +153,7 @@ describe('ScrollPanel', function() {
parentDiv.style.overflow = 'hidden';
document.body.appendChild(parentDiv);
- tester = ReactDOM.render(, parentDiv);
+ tester = ReactDOM.render(, parentDiv);
expect(tester.fillCounts.b).toEqual(1);
expect(tester.fillCounts.f).toEqual(1);
@@ -226,10 +226,10 @@ describe('ScrollPanel', function() {
});
it('should not get stuck in #528 workaround', function(done) {
- var events = [];
+ let events = [];
Promise.resolve().then(() => {
// initialise with a bunch of events
- for (var i = 0; i < 40; i++) {
+ for (let i = 0; i < 40; i++) {
events.push(i);
}
tester.setTileKeys(events);
@@ -259,7 +259,7 @@ describe('ScrollPanel', function() {
}).then(() => {
// Now, simulate hitting "scroll to bottom".
events = [];
- for (var i = 100; i < 120; i++) {
+ for (let i = 100; i < 120; i++) {
events.push(i);
}
tester.setTileKeys(events);
diff --git a/test/components/structures/TimelinePanel-test.js b/test/components/structures/TimelinePanel-test.js
index 98ec65b8e8..74037d2926 100644
--- a/test/components/structures/TimelinePanel-test.js
+++ b/test/components/structures/TimelinePanel-test.js
@@ -14,24 +14,24 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-var React = require('react');
-var ReactDOM = require('react-dom');
-var ReactTestUtils = require('react-addons-test-utils');
-var expect = require('expect');
+const React = require('react');
+const ReactDOM = require('react-dom');
+const ReactTestUtils = require('react-addons-test-utils');
+const expect = require('expect');
import Promise from 'bluebird';
-var sinon = require('sinon');
+const sinon = require('sinon');
-var jssdk = require('matrix-js-sdk');
-var EventTimeline = jssdk.EventTimeline;
+const jssdk = require('matrix-js-sdk');
+const EventTimeline = jssdk.EventTimeline;
-var sdk = require('matrix-react-sdk');
-var TimelinePanel = sdk.getComponent('structures.TimelinePanel');
-var peg = require('../../../src/MatrixClientPeg');
+const sdk = require('matrix-react-sdk');
+const TimelinePanel = sdk.getComponent('structures.TimelinePanel');
+const peg = require('../../../src/MatrixClientPeg');
-var test_utils = require('test-utils');
+const test_utils = require('test-utils');
-var ROOM_ID = '!room:localhost';
-var USER_ID = '@me:localhost';
+const ROOM_ID = '!room:localhost';
+const USER_ID = '@me:localhost';
// wrap TimelinePanel with a component which provides the MatrixClient in the context.
const WrappedTimelinePanel = React.createClass({
@@ -52,12 +52,12 @@ const WrappedTimelinePanel = React.createClass({
describe('TimelinePanel', function() {
- var sandbox;
- var timelineSet;
- var room;
- var client;
- var timeline;
- var parentDiv;
+ let sandbox;
+ let timelineSet;
+ let room;
+ let client;
+ let timeline;
+ let parentDiv;
// make a dummy message. eventNum is put in the message text to help
// identification during debugging, and also in the timestamp so that we
@@ -68,14 +68,14 @@ describe('TimelinePanel', function() {
event: true, room: ROOM_ID, user: USER_ID,
ts: Date.now() + eventNum,
msg: "Event " + eventNum,
- ... opts,
+ ...opts,
});
}
function scryEventTiles(panel) {
return ReactTestUtils.scryRenderedComponentsWithType(
panel, sdk.getComponent('rooms.EventTile'));
- };
+ }
beforeEach(function() {
test_utils.beforeEach(this);
@@ -121,8 +121,8 @@ describe('TimelinePanel', function() {
// this is https://github.com/vector-im/vector-web/issues/1367
// enough events to allow us to scroll back
- var N_EVENTS = 30;
- for (var i = 0; i < N_EVENTS; i++) {
+ const N_EVENTS = 30;
+ for (let i = 0; i < N_EVENTS; i++) {
timeline.addEvent(mkMessage(i));
}
@@ -133,26 +133,23 @@ describe('TimelinePanel', function() {
scrollDefer.resolve();
}
};
- var rendered = ReactDOM.render(
+ const rendered = ReactDOM.render(
,
parentDiv,
);
- var panel = rendered.refs.panel;
- var scrollingDiv = ReactTestUtils.findRenderedDOMComponentWithClass(
+ const panel = rendered.refs.panel;
+ const scrollingDiv = ReactTestUtils.findRenderedDOMComponentWithClass(
panel, "gm-scroll-view");
// helper function which will return a promise which resolves when the
// panel isn't paginating
var awaitPaginationCompletion = function() {
- if(!panel.state.forwardPaginating)
- return Promise.resolve();
- else
- return Promise.delay(0).then(awaitPaginationCompletion);
+ if(!panel.state.forwardPaginating) {return Promise.resolve();} else {return Promise.delay(0).then(awaitPaginationCompletion);}
};
// helper function which will return a promise which resolves when
// the TimelinePanel fires a scroll event
- var awaitScroll = function() {
+ const awaitScroll = function() {
scrollDefer = Promise.defer();
return scrollDefer.promise;
};
@@ -181,7 +178,7 @@ describe('TimelinePanel', function() {
console.log("adding event");
// a new event!
- var ev = mkMessage(N_EVENTS+1);
+ const ev = mkMessage(N_EVENTS+1);
timeline.addEvent(ev);
panel.onRoomTimeline(ev, room, false, false, {
liveEvent: true,
@@ -204,8 +201,8 @@ describe('TimelinePanel', function() {
it('should not paginate forever if there are no events', function(done) {
// start with a handful of events in the timeline, as would happen when
// joining a room
- var d = Date.now();
- for (var i = 0; i < 3; i++) {
+ const d = Date.now();
+ for (let i = 0; i < 3; i++) {
timeline.addEvent(mkMessage(i));
}
timeline.setPaginationToken('tok', EventTimeline.BACKWARDS);
@@ -217,13 +214,13 @@ describe('TimelinePanel', function() {
return Promise.resolve(true);
});
- var rendered = ReactDOM.render(
- ,
- parentDiv
+ const rendered = ReactDOM.render(
+ ,
+ parentDiv,
);
- var panel = rendered.refs.panel;
+ const panel = rendered.refs.panel;
- var messagePanel = ReactTestUtils.findRenderedComponentWithType(
+ const messagePanel = ReactTestUtils.findRenderedComponentWithType(
panel, sdk.getComponent('structures.MessagePanel'));
expect(messagePanel.props.backPaginating).toBe(true);
@@ -249,7 +246,7 @@ describe('TimelinePanel', function() {
});
it("should let you scroll down to the bottom after you've scrolled up", function(done) {
- var N_EVENTS = 120; // the number of events to simulate being added to the timeline
+ const N_EVENTS = 120; // the number of events to simulate being added to the timeline
// sadly, loading all those events takes a while
this.timeout(N_EVENTS * 50);
@@ -259,26 +256,26 @@ describe('TimelinePanel', function() {
client.getRoom = function(id) { return null; };
// fill the timeline with lots of events
- for (var i = 0; i < N_EVENTS; i++) {
+ for (let i = 0; i < N_EVENTS; i++) {
timeline.addEvent(mkMessage(i));
}
console.log("added events to timeline");
- var scrollDefer;
- var rendered = ReactDOM.render(
- {scrollDefer.resolve()}}/>,
- parentDiv
+ let scrollDefer;
+ const rendered = ReactDOM.render(
+ {scrollDefer.resolve();}} />,
+ parentDiv,
);
console.log("TimelinePanel rendered");
- var panel = rendered.refs.panel;
- var messagePanel = ReactTestUtils.findRenderedComponentWithType(
+ const panel = rendered.refs.panel;
+ const messagePanel = ReactTestUtils.findRenderedComponentWithType(
panel, sdk.getComponent('structures.MessagePanel'));
- var scrollingDiv = ReactTestUtils.findRenderedDOMComponentWithClass(
+ const scrollingDiv = ReactTestUtils.findRenderedDOMComponentWithClass(
panel, "gm-scroll-view");
// helper function which will return a promise which resolves when
// the TimelinePanel fires a scroll event
- var awaitScroll = function() {
+ const awaitScroll = function() {
scrollDefer = Promise.defer();
return scrollDefer.promise.then(() => {
@@ -299,8 +296,8 @@ describe('TimelinePanel', function() {
console.log("back paginating...");
setScrollTop(0);
return awaitScroll().then(() => {
- let eventTiles = scryEventTiles(panel);
- let firstEvent = eventTiles[0].props.mxEvent;
+ const eventTiles = scryEventTiles(panel);
+ const firstEvent = eventTiles[0].props.mxEvent;
console.log("TimelinePanel contains " + eventTiles.length +
" events; first is " +
@@ -319,12 +316,11 @@ describe('TimelinePanel', function() {
setScrollTop(scrollingDiv.scrollHeight - scrollingDiv.clientHeight);
console.log("scrolling down... " + scrollingDiv.scrollTop);
return awaitScroll().delay(0).then(() => {
+ const eventTiles = scryEventTiles(panel);
+ const events = timeline.getEvents();
- let eventTiles = scryEventTiles(panel);
- let events = timeline.getEvents();
-
- let lastEventInPanel = eventTiles[eventTiles.length - 1].props.mxEvent;
- let lastEventInTimeline = events[events.length - 1];
+ const lastEventInPanel = eventTiles[eventTiles.length - 1].props.mxEvent;
+ const lastEventInTimeline = events[events.length - 1];
// Scroll until the last event in the panel = the last event in the timeline
if(lastEventInPanel.getId() !== lastEventInTimeline.getId()) {
@@ -348,7 +344,7 @@ describe('TimelinePanel', function() {
expect(messagePanel.props.backPaginating).toBe(false);
expect(messagePanel.props.suppressFirstDateSeparator).toBe(false);
- var events = scryEventTiles(panel);
+ const events = scryEventTiles(panel);
expect(events[0].props.mxEvent).toBe(timeline.getEvents()[0]);
// At this point, we make no assumption that unpagination has happened. This doesn't
@@ -361,11 +357,11 @@ describe('TimelinePanel', function() {
expect(messagePanel.props.backPaginating).toBe(false);
expect(messagePanel.props.forwardPaginating).toBe(false);
- var events = scryEventTiles(panel);
+ const events = scryEventTiles(panel);
// Expect to be able to see the most recent event
- var lastEventInPanel = events[events.length - 1].props.mxEvent;
- var lastEventInTimeline = timeline.getEvents()[timeline.getEvents().length - 1];
+ const lastEventInPanel = events[events.length - 1].props.mxEvent;
+ const lastEventInTimeline = timeline.getEvents()[timeline.getEvents().length - 1];
expect(lastEventInPanel.getContent()).toBe(lastEventInTimeline.getContent());
console.log("done");
diff --git a/test/components/stub-component.js b/test/components/stub-component.js
index ba37850ec6..308b183719 100644
--- a/test/components/stub-component.js
+++ b/test/components/stub-component.js
@@ -2,7 +2,7 @@
*/
'use strict';
-var React = require('react');
+const React = require('react');
module.exports = function(opts) {
opts = opts || {};
@@ -12,8 +12,8 @@ module.exports = function(opts) {
if (!opts.render) {
opts.render = function() {
- return {this.displayName}
;
- }
+ return { this.displayName }
;
+ };
}
return React.createClass(opts);
diff --git a/test/components/views/dialogs/InteractiveAuthDialog-test.js b/test/components/views/dialogs/InteractiveAuthDialog-test.js
index f606793132..36894fbd21 100644
--- a/test/components/views/dialogs/InteractiveAuthDialog-test.js
+++ b/test/components/views/dialogs/InteractiveAuthDialog-test.js
@@ -28,12 +28,12 @@ import MatrixClientPeg from '../../../../src/MatrixClientPeg';
import * as test_utils from '../../../test-utils';
const InteractiveAuthDialog = sdk.getComponent(
- 'views.dialogs.InteractiveAuthDialog'
+ 'views.dialogs.InteractiveAuthDialog',
);
-describe('InteractiveAuthDialog', function () {
- var parentDiv;
- var sandbox;
+describe('InteractiveAuthDialog', function() {
+ let parentDiv;
+ let sandbox;
beforeEach(function() {
test_utils.beforeEach(this);
@@ -50,10 +50,10 @@ describe('InteractiveAuthDialog', function () {
it('Should successfully complete a password flow', function() {
const onFinished = sinon.spy();
- const doRequest = sinon.stub().returns(Promise.resolve({a:1}));
+ const doRequest = sinon.stub().returns(Promise.resolve({a: 1}));
// tell the stub matrixclient to return a real userid
- var client = MatrixClientPeg.get();
+ const client = MatrixClientPeg.get();
client.credentials = {userId: "@user:id"};
const dlg = ReactDOM.render(
@@ -62,8 +62,8 @@ describe('InteractiveAuthDialog', function () {
authData={{
session: "sess",
flows: [
- {"stages":["m.login.password"]}
- ]
+ {"stages": ["m.login.password"]},
+ ],
}}
makeRequest={doRequest}
onFinished={onFinished}
@@ -72,7 +72,7 @@ describe('InteractiveAuthDialog', function () {
// wait for a password box and a submit button
return MatrixReactTestUtils.waitForRenderedDOMComponentWithTag(dlg, "form", 2).then((formNode) => {
const inputNodes = ReactTestUtils.scryRenderedDOMComponentsWithTag(
- dlg, "input"
+ dlg, "input",
);
let passwordNode;
let submitNode;
@@ -113,7 +113,7 @@ describe('InteractiveAuthDialog', function () {
return Promise.delay(1);
}).then(() => {
expect(onFinished.callCount).toEqual(1);
- expect(onFinished.calledWithExactly(true, {a:1})).toBe(true);
+ expect(onFinished.calledWithExactly(true, {a: 1})).toBe(true);
});
});
});
diff --git a/test/components/views/elements/MemberEventListSummary-test.js b/test/components/views/elements/MemberEventListSummary-test.js
index a93e38b50c..436133c717 100644
--- a/test/components/views/elements/MemberEventListSummary-test.js
+++ b/test/components/views/elements/MemberEventListSummary-test.js
@@ -88,6 +88,9 @@ describe('MemberEventListSummary', function() {
sandbox = testUtils.stubClient();
languageHandler.setLanguage('en').done(done);
+ languageHandler.setMissingEntryGenerator(function(key) {
+ return key.split('|', 2)[1];
+ });
});
afterEach(function() {
@@ -155,10 +158,10 @@ describe('MemberEventListSummary', function() {
};
const instance = ReactTestUtils.renderIntoDocument(
-
+ ,
);
const summary = ReactTestUtils.findRenderedDOMComponentWithClass(
- instance, "mx_MemberEventListSummary_summary"
+ instance, "mx_MemberEventListSummary_summary",
);
const summaryText = summary.innerText;
@@ -191,10 +194,10 @@ describe('MemberEventListSummary', function() {
};
const instance = ReactTestUtils.renderIntoDocument(
-
+ ,
);
const summary = ReactTestUtils.findRenderedDOMComponentWithClass(
- instance, "mx_MemberEventListSummary_summary"
+ instance, "mx_MemberEventListSummary_summary",
);
const summaryText = summary.innerText;
@@ -239,15 +242,15 @@ describe('MemberEventListSummary', function() {
};
const instance = ReactTestUtils.renderIntoDocument(
-
+ ,
);
const summary = ReactTestUtils.findRenderedDOMComponentWithClass(
- instance, "mx_MemberEventListSummary_summary"
+ instance, "mx_MemberEventListSummary_summary",
);
const summaryText = summary.innerText;
expect(summaryText).toBe(
- "user_1 was unbanned, joined and left 7 times and was invited"
+ "user_1 was unbanned, joined and left 7 times and was invited",
);
});
@@ -292,16 +295,16 @@ describe('MemberEventListSummary', function() {
};
const instance = ReactTestUtils.renderIntoDocument(
-
+ ,
);
const summary = ReactTestUtils.findRenderedDOMComponentWithClass(
- instance, "mx_MemberEventListSummary_summary"
+ instance, "mx_MemberEventListSummary_summary",
);
const summaryText = summary.innerText;
expect(summaryText).toBe(
"user_1 was unbanned, joined and left 2 times, was banned, " +
- "joined and left 3 times and was invited"
+ "joined and left 3 times and was invited",
);
});
@@ -351,15 +354,15 @@ describe('MemberEventListSummary', function() {
};
const instance = ReactTestUtils.renderIntoDocument(
-
+ ,
);
const summary = ReactTestUtils.findRenderedDOMComponentWithClass(
- instance, "mx_MemberEventListSummary_summary"
+ instance, "mx_MemberEventListSummary_summary",
);
const summaryText = summary.innerText;
expect(summaryText).toBe(
- "user_1 and one other were unbanned, joined and left 2 times and were banned"
+ "user_1 and one other were unbanned, joined and left 2 times and were banned",
);
});
@@ -389,15 +392,15 @@ describe('MemberEventListSummary', function() {
};
const instance = ReactTestUtils.renderIntoDocument(
-
+ ,
);
const summary = ReactTestUtils.findRenderedDOMComponentWithClass(
- instance, "mx_MemberEventListSummary_summary"
+ instance, "mx_MemberEventListSummary_summary",
);
const summaryText = summary.innerText;
expect(summaryText).toBe(
- "user_0 and 19 others were unbanned, joined and left 2 times and were banned"
+ "user_0 and 19 others were unbanned, joined and left 2 times and were banned",
);
});
@@ -440,16 +443,16 @@ describe('MemberEventListSummary', function() {
};
const instance = ReactTestUtils.renderIntoDocument(
-
+ ,
);
const summary = ReactTestUtils.findRenderedDOMComponentWithClass(
- instance, "mx_MemberEventListSummary_summary"
+ instance, "mx_MemberEventListSummary_summary",
);
const summaryText = summary.innerText;
expect(summaryText).toBe(
"user_2 was unbanned and joined and left 2 times, user_1 was unbanned, " +
- "joined and left 2 times and was banned"
+ "joined and left 2 times and was banned",
);
});
@@ -507,16 +510,16 @@ describe('MemberEventListSummary', function() {
};
const instance = ReactTestUtils.renderIntoDocument(
-
+ ,
);
const summary = ReactTestUtils.findRenderedDOMComponentWithClass(
- instance, "mx_MemberEventListSummary_summary"
+ instance, "mx_MemberEventListSummary_summary",
);
const summaryText = summary.innerText;
expect(summaryText).toBe(
"user_1 was invited, was banned, joined, rejected their invitation, left, " +
- "had their invitation withdrawn, was unbanned, was kicked and left"
+ "had their invitation withdrawn, was unbanned, was kicked and left",
);
});
@@ -554,16 +557,16 @@ describe('MemberEventListSummary', function() {
};
const instance = ReactTestUtils.renderIntoDocument(
-
+ ,
);
const summary = ReactTestUtils.findRenderedDOMComponentWithClass(
- instance, "mx_MemberEventListSummary_summary"
+ instance, "mx_MemberEventListSummary_summary",
);
const summaryText = summary.innerText;
expect(summaryText).toBe(
"user_1 and one other rejected their invitations and " +
- "had their invitations withdrawn"
+ "had their invitations withdrawn",
);
});
@@ -590,15 +593,15 @@ describe('MemberEventListSummary', function() {
};
const instance = ReactTestUtils.renderIntoDocument(
-
+ ,
);
const summary = ReactTestUtils.findRenderedDOMComponentWithClass(
- instance, "mx_MemberEventListSummary_summary"
+ instance, "mx_MemberEventListSummary_summary",
);
const summaryText = summary.innerText;
expect(summaryText).toBe(
- "user_1 rejected their invitation 2 times"
+ "user_1 rejected their invitation 2 times",
);
});
@@ -618,15 +621,15 @@ describe('MemberEventListSummary', function() {
};
const instance = ReactTestUtils.renderIntoDocument(
-
+ ,
);
const summary = ReactTestUtils.findRenderedDOMComponentWithClass(
- instance, "mx_MemberEventListSummary_summary"
+ instance, "mx_MemberEventListSummary_summary",
);
const summaryText = summary.innerText;
expect(summaryText).toBe(
- "user_1 and user_2 joined 2 times"
+ "user_1 and user_2 joined 2 times",
);
});
@@ -645,15 +648,15 @@ describe('MemberEventListSummary', function() {
};
const instance = ReactTestUtils.renderIntoDocument(
-
+ ,
);
const summary = ReactTestUtils.findRenderedDOMComponentWithClass(
- instance, "mx_MemberEventListSummary_summary"
+ instance, "mx_MemberEventListSummary_summary",
);
const summaryText = summary.innerText;
expect(summaryText).toBe(
- "user_1, user_2 and one other joined"
+ "user_1, user_2 and one other joined",
);
});
@@ -670,15 +673,15 @@ describe('MemberEventListSummary', function() {
};
const instance = ReactTestUtils.renderIntoDocument(
-
+ ,
);
const summary = ReactTestUtils.findRenderedDOMComponentWithClass(
- instance, "mx_MemberEventListSummary_summary"
+ instance, "mx_MemberEventListSummary_summary",
);
const summaryText = summary.innerText;
expect(summaryText).toBe(
- "user_0, user_1 and 18 others joined"
+ "user_0, user_1 and 18 others joined",
);
});
});
diff --git a/test/components/views/rooms/MessageComposerInput-test.js b/test/components/views/rooms/MessageComposerInput-test.js
index e5d98e26c6..1f0ede6ae2 100644
--- a/test/components/views/rooms/MessageComposerInput-test.js
+++ b/test/components/views/rooms/MessageComposerInput-test.js
@@ -6,7 +6,6 @@ import sinon from 'sinon';
import Promise from 'bluebird';
import * as testUtils from '../../../test-utils';
import sdk from 'matrix-react-sdk';
-import UserSettingsStore from '../../../../src/UserSettingsStore';
const MessageComposerInput = sdk.getComponent('views.rooms.MessageComposerInput');
import MatrixClientPeg from '../../../../src/MatrixClientPeg';
import RoomMember from 'matrix-js-sdk';
@@ -57,7 +56,7 @@ describe('MessageComposerInput', () => {
}
sandbox.restore();
done();
- })
+ });
});
// XXX this fails
diff --git a/test/i18n-test/languageHandler-test.js b/test/i18n-test/languageHandler-test.js
new file mode 100644
index 0000000000..ce9f8e1684
--- /dev/null
+++ b/test/i18n-test/languageHandler-test.js
@@ -0,0 +1,73 @@
+const React = require('react');
+const expect = require('expect');
+import * as languageHandler from '../../src/languageHandler';
+
+const testUtils = require('../test-utils');
+
+describe('languageHandler', function() {
+ let sandbox;
+
+ beforeEach(function(done) {
+ testUtils.beforeEach(this);
+ sandbox = testUtils.stubClient();
+
+ languageHandler.setLanguage('en').done(done);
+ });
+
+ afterEach(function() {
+ sandbox.restore();
+ });
+
+ it('translates a string to german', function() {
+ languageHandler.setLanguage('de').then(function() {
+ const translated = languageHandler._t('Rooms');
+ expect(translated).toBe('Räume');
+ });
+ });
+
+ it('handles plurals', function() {
+ const text = 'and %(count)s others...';
+ expect(languageHandler._t(text, { count: 1 })).toBe('and one other...');
+ expect(languageHandler._t(text, { count: 2 })).toBe('and 2 others...');
+ });
+
+ it('handles simple variable subsitutions', function() {
+ const text = 'You are now ignoring %(userId)s';
+ expect(languageHandler._t(text, { userId: 'foo' })).toBe('You are now ignoring foo');
+ });
+
+ it('handles simple tag substitution', function() {
+ const text = 'Press to start a chat with someone';
+ expect(languageHandler._t(text, {}, { 'StartChatButton': () => 'foo' }))
+ .toBe('Press foo to start a chat with someone');
+ });
+
+ it('handles text in tags', function() {
+ const text = 'Click here to join the discussion!';
+ expect(languageHandler._t(text, {}, { 'a': (sub) => `x${sub}x` }))
+ .toBe('xClick herex to join the discussion!');
+ });
+
+ it('variable substitution with React component', function() {
+ const text = 'You are now ignoring %(userId)s';
+ expect(languageHandler._t(text, { userId: () => foo }))
+ .toEqual((You are now ignoring foo));
+ });
+
+ it('variable substitution with plain React component', function() {
+ const text = 'You are now ignoring %(userId)s';
+ expect(languageHandler._t(text, { userId: foo }))
+ .toEqual((You are now ignoring foo));
+ });
+
+ it('tag substitution with React component', function() {
+ const text = 'Press to start a chat with someone';
+ expect(languageHandler._t(text, {}, { 'StartChatButton': () => foo }))
+ .toEqual(Press foo to start a chat with someone);
+ });
+
+ it('replacements in the wrong order', function() {
+ const text = '%(var1)s %(var2)s';
+ expect(languageHandler._t(text, { var2: 'val2', var1: 'val1' })).toBe('val1 val2');
+ });
+});
diff --git a/test/mock-clock.js b/test/mock-clock.js
index a99b01a0fb..103e186c1f 100644
--- a/test/mock-clock.js
+++ b/test/mock-clock.js
@@ -37,28 +37,28 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* mock_clock.uninstall();
*
- *
+ *
* The reason for C&Ping jasmine's clock here is that jasmine itself is
* difficult to webpack, and we don't really want all of it. Sinon also has a
* mock-clock implementation, but again, it is difficult to webpack.
*/
-var j$ = {};
+const j$ = {};
-j$.Clock = function () {
+j$.Clock = function() {
function Clock(global, delayedFunctionSchedulerFactory, mockDate) {
- var self = this,
+ let self = this,
realTimingFunctions = {
setTimeout: global.setTimeout,
clearTimeout: global.clearTimeout,
setInterval: global.setInterval,
- clearInterval: global.clearInterval
+ clearInterval: global.clearInterval,
},
fakeTimingFunctions = {
setTimeout: setTimeout,
clearTimeout: clearTimeout,
setInterval: setInterval,
- clearInterval: clearInterval
+ clearInterval: clearInterval,
},
installed = false,
delayedFunctionScheduler,
@@ -151,7 +151,7 @@ j$.Clock = function () {
}
function replace(dest, source) {
- for (var prop in source) {
+ for (const prop in source) {
dest[prop] = source[prop];
}
}
@@ -183,22 +183,22 @@ j$.Clock = function () {
j$.DelayedFunctionScheduler = function() {
function DelayedFunctionScheduler() {
- var self = this;
- var scheduledLookup = [];
- var scheduledFunctions = {};
- var currentTime = 0;
- var delayedFnCount = 0;
+ const self = this;
+ const scheduledLookup = [];
+ const scheduledFunctions = {};
+ let currentTime = 0;
+ let delayedFnCount = 0;
self.tick = function(millis) {
millis = millis || 0;
- var endTime = currentTime + millis;
+ const endTime = currentTime + millis;
runScheduledFunctions(endTime);
currentTime = endTime;
};
self.scheduleFunction = function(funcToCall, millis, params, recurring, timeoutKey, runAtMillis) {
- var f;
+ let f;
if (typeof(funcToCall) === 'string') {
/* jshint evil: true */
f = function() { return eval(funcToCall); };
@@ -211,13 +211,13 @@ j$.DelayedFunctionScheduler = function() {
timeoutKey = timeoutKey || ++delayedFnCount;
runAtMillis = runAtMillis || (currentTime + millis);
- var funcToSchedule = {
+ const funcToSchedule = {
runAtMillis: runAtMillis,
funcToCall: f,
recurring: recurring,
params: params,
timeoutKey: timeoutKey,
- millis: millis
+ millis: millis,
};
if (runAtMillis in scheduledFunctions) {
@@ -225,7 +225,7 @@ j$.DelayedFunctionScheduler = function() {
} else {
scheduledFunctions[runAtMillis] = [funcToSchedule];
scheduledLookup.push(runAtMillis);
- scheduledLookup.sort(function (a, b) {
+ scheduledLookup.sort(function(a, b) {
return a - b;
});
}
@@ -234,9 +234,9 @@ j$.DelayedFunctionScheduler = function() {
};
self.removeFunctionWithId = function(timeoutKey) {
- for (var runAtMillis in scheduledFunctions) {
- var funcs = scheduledFunctions[runAtMillis];
- var i = indexOfFirstToPass(funcs, function (func) {
+ for (const runAtMillis in scheduledFunctions) {
+ const funcs = scheduledFunctions[runAtMillis];
+ const i = indexOfFirstToPass(funcs, function(func) {
return func.timeoutKey === timeoutKey;
});
@@ -258,9 +258,9 @@ j$.DelayedFunctionScheduler = function() {
return self;
function indexOfFirstToPass(array, testFn) {
- var index = -1;
+ let index = -1;
- for (var i = 0; i < array.length; ++i) {
+ for (let i = 0; i < array.length; ++i) {
if (testFn(array[i])) {
index = i;
break;
@@ -271,8 +271,8 @@ j$.DelayedFunctionScheduler = function() {
}
function deleteFromLookup(key) {
- var value = Number(key);
- var i = indexOfFirstToPass(scheduledLookup, function (millis) {
+ const value = Number(key);
+ const i = indexOfFirstToPass(scheduledLookup, function(millis) {
return millis === value;
});
@@ -291,7 +291,7 @@ j$.DelayedFunctionScheduler = function() {
}
function forEachFunction(funcsToRun, callback) {
- for (var i = 0; i < funcsToRun.length; ++i) {
+ for (let i = 0; i < funcsToRun.length; ++i) {
callback(funcsToRun[i]);
}
}
@@ -304,7 +304,7 @@ j$.DelayedFunctionScheduler = function() {
do {
currentTime = scheduledLookup.shift();
- var funcsToRun = scheduledFunctions[currentTime];
+ const funcsToRun = scheduledFunctions[currentTime];
delete scheduledFunctions[currentTime];
forEachFunction(funcsToRun, function(funcToRun) {
@@ -319,7 +319,7 @@ j$.DelayedFunctionScheduler = function() {
} while (scheduledLookup.length > 0 &&
// checking first if we're out of time prevents setTimeout(0)
// scheduled in a funcToRun from forcing an extra iteration
- currentTime !== endTime &&
+ currentTime !== endTime &&
scheduledLookup[0] <= endTime);
}
}
@@ -330,8 +330,8 @@ j$.DelayedFunctionScheduler = function() {
j$.MockDate = function() {
function MockDate(global) {
- var self = this;
- var currentTime = 0;
+ const self = this;
+ let currentTime = 0;
if (!global || !global.Date) {
self.install = function() {};
@@ -340,7 +340,7 @@ j$.MockDate = function() {
return self;
}
- var GlobalDate = global.Date;
+ const GlobalDate = global.Date;
self.install = function(mockDate) {
if (mockDate instanceof GlobalDate) {
@@ -411,10 +411,10 @@ j$.MockDate = function() {
return MockDate;
}();
-var clock = new j$.Clock(global, function () { return new j$.DelayedFunctionScheduler(); }, new j$.MockDate(global));
+const clock = new j$.Clock(global, function() { return new j$.DelayedFunctionScheduler(); }, new j$.MockDate(global));
module.exports.clock = function() {
return clock;
-}
+};
diff --git a/test/skinned-sdk.js b/test/skinned-sdk.js
index d4e178ef2c..1ad361d59d 100644
--- a/test/skinned-sdk.js
+++ b/test/skinned-sdk.js
@@ -13,12 +13,12 @@
// default
require('babel-polyfill');
-var sdk = require("../src/index");
+const sdk = require("../src/index");
-var skin = require('../src/component-index.js');
-var stubComponent = require('./components/stub-component.js');
+const skin = require('../src/component-index.js');
+const stubComponent = require('./components/stub-component.js');
-var components = skin.components;
+const components = skin.components;
components['structures.LeftPanel'] = stubComponent();
components['structures.RightPanel'] = stubComponent();
components['structures.RoomDirectory'] = stubComponent();
diff --git a/test/test-utils.js b/test/test-utils.js
index 06d3c03c49..0b536f5766 100644
--- a/test/test-utils.js
+++ b/test/test-utils.js
@@ -14,7 +14,7 @@ const MatrixEvent = jssdk.MatrixEvent;
* @param {Mocha.Context} context The test context
*/
export function beforeEach(context) {
- var desc = context.currentTest.fullTitle();
+ const desc = context.currentTest.fullTitle();
console.log();
@@ -26,7 +26,7 @@ export function beforeEach(context) {
console.log(desc);
console.log(new Array(1 + desc.length).join("="));
-};
+}
/**
@@ -40,16 +40,16 @@ export function beforeEach(context) {
* @returns {sinon.Sandbox}; remember to call sandbox.restore afterwards.
*/
export function stubClient() {
- var sandbox = sinon.sandbox.create();
+ const sandbox = sinon.sandbox.create();
- var client = createTestClient();
+ const client = createTestClient();
// stub out the methods in MatrixClientPeg
//
// 'sandbox.restore()' doesn't work correctly on inherited methods,
// so we do this for each method
- var methods = ['get', 'unset', 'replaceUsingCreds'];
- for (var i = 0; i < methods.length; i++) {
+ const methods = ['get', 'unset', 'replaceUsingCreds'];
+ for (let i = 0; i < methods.length; i++) {
sandbox.stub(peg, methods[i]);
}
// MatrixClientPeg.get() is called a /lot/, so implement it with our own
@@ -128,7 +128,7 @@ export function mkEvent(opts) {
if (!opts.type || !opts.content) {
throw new Error("Missing .type or .content =>" + JSON.stringify(opts));
}
- var event = {
+ const event = {
type: opts.type,
room_id: opts.room,
sender: opts.user,
@@ -139,14 +139,13 @@ export function mkEvent(opts) {
};
if (opts.skey) {
event.state_key = opts.skey;
- }
- else if (["m.room.name", "m.room.topic", "m.room.create", "m.room.join_rules",
+ } else if (["m.room.name", "m.room.topic", "m.room.create", "m.room.join_rules",
"m.room.power_levels", "m.room.topic",
"com.example.state"].indexOf(opts.type) !== -1) {
event.state_key = "";
}
return opts.event ? new MatrixEvent(event) : event;
-};
+}
/**
* Create an m.presence event.
@@ -157,7 +156,7 @@ export function mkPresence(opts) {
if (!opts.user) {
throw new Error("Missing user");
}
- var event = {
+ const event = {
event_id: "$" + Math.random() + "-" + Math.random(),
type: "m.presence",
sender: opts.user,
@@ -165,11 +164,11 @@ export function mkPresence(opts) {
avatar_url: opts.url,
displayname: opts.name,
last_active_ago: opts.ago,
- presence: opts.presence || "offline"
- }
+ presence: opts.presence || "offline",
+ },
};
return opts.event ? new MatrixEvent(event) : event;
-};
+}
/**
* Create an m.room.member event.
@@ -195,19 +194,19 @@ export function mkMembership(opts) {
throw new Error("Missing .mship => " + JSON.stringify(opts));
}
opts.content = {
- membership: opts.mship
+ membership: opts.mship,
};
if (opts.prevMship) {
opts.prev_content = { membership: opts.prevMship };
}
if (opts.name) { opts.content.displayname = opts.name; }
if (opts.url) { opts.content.avatar_url = opts.url; }
- let e = mkEvent(opts);
+ const e = mkEvent(opts);
if (opts.target) {
e.target = opts.target;
}
return e;
-};
+}
/**
* Create an m.room.message event.
@@ -228,13 +227,13 @@ export function mkMessage(opts) {
}
opts.content = {
msgtype: "m.text",
- body: opts.msg
+ body: opts.msg,
};
return mkEvent(opts);
}
export function mkStubRoom(roomId = null) {
- var stubTimeline = { getEvents: () => [] };
+ const stubTimeline = { getEvents: () => [] };
return {
roomId,
getReceiptsForEvent: sinon.stub().returns([]),