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

pull/4137/head
RiotTranslate 2017-06-01 10:33:36 +00:00
commit 746647d426
30 changed files with 194 additions and 114 deletions

View File

@ -6,7 +6,8 @@
"description": "A feature-rich client for Matrix.org", "description": "A feature-rich client for Matrix.org",
"author": "Vector Creations Ltd.", "author": "Vector Creations Ltd.",
"dependencies": { "dependencies": {
"electron-window-state": "^4.1.0",
"auto-launch": "^5.0.1", "auto-launch": "^5.0.1",
"electron-window-state": "^4.1.0" "minimist": "^1.2.0"
} }
} }

View File

@ -21,6 +21,7 @@ limitations under the License.
const checkSquirrelHooks = require('./squirrelhooks'); const checkSquirrelHooks = require('./squirrelhooks');
if (checkSquirrelHooks()) return; if (checkSquirrelHooks()) return;
const argv = require('minimist')(process.argv);
const electron = require('electron'); const electron = require('electron');
const AutoLaunch = require('auto-launch'); const AutoLaunch = require('auto-launch');
@ -30,6 +31,10 @@ const webContentsHandler = require('./webcontents-handler');
const windowStateKeeper = require('electron-window-state'); const windowStateKeeper = require('electron-window-state');
if (argv.profile) {
electron.app.setPath('userData', `${electron.app.getPath('userData')}-${argv.profile}`);
}
let vectorConfig = {}; let vectorConfig = {};
try { try {
vectorConfig = require('../../webapp/config.json'); vectorConfig = require('../../webapp/config.json');
@ -119,19 +124,19 @@ electron.ipcMain.on('install_update', installUpdate);
let focusHandlerAttached = false; let focusHandlerAttached = false;
electron.ipcMain.on('setBadgeCount', function(ev, count) { electron.ipcMain.on('setBadgeCount', function(ev, count) {
electron.app.setBadgeCount(count); electron.app.setBadgeCount(count);
if (process.platform === 'win32' && mainWindow && !mainWindow.isFocused()) { if (count === 0) {
if (count > 0) { mainWindow.flashFrame(false);
if (!focusHandlerAttached) { }
mainWindow.once('focus', () => { });
mainWindow.flashFrame(false);
focusHandlerAttached = false; electron.ipcMain.on('loudNotification', function() {
}); if (process.platform === 'win32' && mainWindow && !mainWindow.isFocused() && !focusHandlerAttached) {
focusHandlerAttached = true; mainWindow.flashFrame(true);
} mainWindow.once('focus', () => {
mainWindow.flashFrame(true);
} else {
mainWindow.flashFrame(false); mainWindow.flashFrame(false);
} focusHandlerAttached = false;
});
focusHandlerAttached = true;
} }
}); });
@ -166,7 +171,7 @@ const shouldQuit = electron.app.makeSingleInstance((commandLine, workingDirector
if (shouldQuit) { if (shouldQuit) {
console.log('Other instance detected: exiting'); console.log('Other instance detected: exiting');
electron.app.quit(); electron.app.exit();
} }
@ -249,7 +254,7 @@ electron.app.on('ready', () => {
brand: vectorConfig.brand || 'Riot', brand: vectorConfig.brand || 'Riot',
}); });
if (!process.argv.includes('--hidden')) { if (!argv.hidden) {
mainWindow.once('ready-to-show', () => { mainWindow.once('ready-to-show', () => {
mainWindow.show(); mainWindow.show();
}); });

View File

@ -65,8 +65,8 @@
"gfm.css": "^1.1.1", "gfm.css": "^1.1.1",
"highlight.js": "^9.0.0", "highlight.js": "^9.0.0",
"linkifyjs": "^2.1.3", "linkifyjs": "^2.1.3",
"matrix-js-sdk": "matrix-org/matrix-js-sdk#develop", "matrix-js-sdk": "0.7.9",
"matrix-react-sdk": "matrix-org/matrix-react-sdk#develop", "matrix-react-sdk": "0.9.0-rc.1",
"modernizr": "^3.1.0", "modernizr": "^3.1.0",
"pako": "^1.0.5", "pako": "^1.0.5",
"q": "^1.4.1", "q": "^1.4.1",

View File

@ -42,13 +42,13 @@ dodep matrix-org matrix-react-sdk
mkdir -p node_modules mkdir -p node_modules
cd node_modules cd node_modules
rm -r matrix-js-sdk 2> /dev/null rm -r matrix-js-sdk 2> /dev/null || true
ln -s ../matrix-js-sdk ./ ln -s ../matrix-js-sdk ./
pushd matrix-js-sdk pushd matrix-js-sdk
npm install npm install
popd popd
rm -r matrix-react-sdk 2> /dev/null rm -r matrix-react-sdk 2> /dev/null || true
ln -s ../matrix-react-sdk ./ ln -s ../matrix-react-sdk ./
pushd matrix-react-sdk pushd matrix-react-sdk
mkdir -p node_modules mkdir -p node_modules

View File

@ -182,7 +182,7 @@ module.exports = React.createClass({
if (content.msgtype && content.msgtype !== 'm.bad.encrypted' && content.hasOwnProperty('body')) { if (content.msgtype && content.msgtype !== 'm.bad.encrypted' && content.hasOwnProperty('body')) {
forwardButton = ( forwardButton = (
<div className="mx_MessageContextMenu_field" onClick={this.onForwardClick}> <div className="mx_MessageContextMenu_field" onClick={this.onForwardClick}>
Forward Message { _t('Forward Message') }
</div> </div>
); );
} }

View File

@ -17,6 +17,7 @@ limitations under the License.
import React from 'react'; import React from 'react';
import sdk from 'matrix-react-sdk'; import sdk from 'matrix-react-sdk';
import SdkConfig from 'matrix-react-sdk/lib/SdkConfig'; import SdkConfig from 'matrix-react-sdk/lib/SdkConfig';
import { _t } from 'matrix-react-sdk/lib/languageHandler';
export default class BugReportDialog extends React.Component { export default class BugReportDialog extends React.Component {
constructor(props, context) { constructor(props, context) {
@ -49,12 +50,12 @@ export default class BugReportDialog extends React.Component {
const userText = this.state.text; const userText = this.state.text;
if (!sendLogs && userText.trim().length === 0) { if (!sendLogs && userText.trim().length === 0) {
this.setState({ this.setState({
err: "Please describe the bug and/or send logs.", err: _t("Please describe the bug and/or send logs."),
}); });
return; return;
} }
this.setState({ busy: true, progress: null, err: null }); this.setState({ busy: true, progress: null, err: null });
this._sendProgressCallback("Loading bug report module"); this._sendProgressCallback(_t("Loading bug report module"));
require(['../../../vector/submit-rageshake'], (s) => { require(['../../../vector/submit-rageshake'], (s) => {
s(SdkConfig.get().bug_report_endpoint_url, { s(SdkConfig.get().bug_report_endpoint_url, {
@ -69,8 +70,9 @@ export default class BugReportDialog extends React.Component {
}, (err) => { }, (err) => {
if (!this._unmounted) { if (!this._unmounted) {
this.setState({ this.setState({
busy: false, progress: null, busy: false,
err: `Failed to send report: ${err.message}`, progress: null,
err: _t("Failed to send report: ") + `${err.message}`,
}); });
} }
}); });
@ -105,7 +107,7 @@ export default class BugReportDialog extends React.Component {
let cancelButton = null; let cancelButton = null;
if (!this.state.busy) { if (!this.state.busy) {
cancelButton = <button onClick={this._onCancel}> cancelButton = <button onClick={this._onCancel}>
Cancel { _t("Cancel") }
</button>; </button>;
} }
@ -122,25 +124,27 @@ export default class BugReportDialog extends React.Component {
return ( return (
<div className="mx_BugReportDialog"> <div className="mx_BugReportDialog">
<div className="mx_Dialog_title"> <div className="mx_Dialog_title">
Report a bug { _t("Report a bug") }
</div> </div>
<div className="mx_Dialog_content"> <div className="mx_Dialog_content">
<p>Please describe the bug. What did you do? <p>
What did you expect to happen? { _t("Please describe the bug. What did you do? What did you expect to happen? What actually happened?") }
What actually happened?</p> </p>
<textarea <textarea
className="mx_BugReportDialog_input" className="mx_BugReportDialog_input"
rows={5} rows={5}
onChange={this._onTextChange} onChange={this._onTextChange}
value={this.state.text} value={this.state.text}
placeholder="Describe your problem here." placeholder={_t("Describe your problem here.")}
/> />
<p>In order to diagnose problems, logs from this client will be sent with <p>
this bug report. { _t("In order to diagnose problems, logs from this client will be sent with this bug report. If you would prefer to only send the text above, please untick:") }
If you would prefer to only send the text above, please untick:</p> </p>
<input type="checkbox" checked={this.state.sendLogs} <input type="checkbox" checked={this.state.sendLogs}
onChange={this._onSendLogsChange} id="mx_BugReportDialog_logs"/> onChange={this._onSendLogsChange} id="mx_BugReportDialog_logs"/>
<label htmlFor="mx_BugReportDialog_logs">Send logs</label> <label htmlFor="mx_BugReportDialog_logs">
{ _t("Send logs") }
</label>
{progress} {progress}
{error} {error}
</div> </div>
@ -151,7 +155,7 @@ export default class BugReportDialog extends React.Component {
autoFocus={true} autoFocus={true}
disabled={this.state.busy} disabled={this.state.busy}
> >
Send { _t("Send") }
</button> </button>
{cancelButton} {cancelButton}

View File

@ -17,6 +17,7 @@
import React from 'react'; import React from 'react';
import sdk from 'matrix-react-sdk'; import sdk from 'matrix-react-sdk';
import request from 'browser-request'; import request from 'browser-request';
import { _t } from 'matrix-react-sdk/lib/languageHandler';
const REPOS = ['vector-im/vector-web', 'matrix-org/matrix-react-sdk', 'matrix-org/matrix-js-sdk']; const REPOS = ['vector-im/vector-web', 'matrix-org/matrix-react-sdk', 'matrix-org/matrix-js-sdk'];
@ -70,16 +71,16 @@ export default class ChangelogDialog extends React.Component {
const content = ( const content = (
<div className="mx_ChangelogDialog_content"> <div className="mx_ChangelogDialog_content">
{this.props.version == null || this.props.newVersion == null ? <h2>Unavailable</h2> : logs} {this.props.version == null || this.props.newVersion == null ? <h2>{_t("Unavailable")}</h2> : logs}
</div> </div>
); );
return ( return (
<QuestionDialog <QuestionDialog
title="Changelog" title={_t("Changelog")}
description={content} description={content}
button="Update" button={_t("Update")}
onFinished={this.props.onFinished} onFinished={this.props.onFinished}
/> />
) )

View File

@ -15,7 +15,8 @@ limitations under the License.
*/ */
var React = require('react'); var React = require('react');
var dis = require('matrix-react-sdk/lib/dispatcher') var dis = require('matrix-react-sdk/lib/dispatcher');
import { _tJsx } from 'matrix-react-sdk/lib/languageHandler';
module.exports = React.createClass({ module.exports = React.createClass({
displayName: 'GuestWarningBar', displayName: 'GuestWarningBar',
@ -34,7 +35,17 @@ module.exports = React.createClass({
<div className="mx_GuestWarningBar"> <div className="mx_GuestWarningBar">
<img className="mx_GuestWarningBar_warning" src="img/warning.svg" width="24" height="23" alt="/!\"/> <img className="mx_GuestWarningBar_warning" src="img/warning.svg" width="24" height="23" alt="/!\"/>
<div> <div>
You are Rioting as a guest. <a onClick={this.onRegisterClicked}>Register</a> or <a onClick={this.onLoginClicked}>sign in</a> to access more rooms and features. { _tJsx(
"You are Rioting as a guest. <a>Register</a> or <a>sign in</a> to access more rooms and features!",
[
/<a>(.*?)<\/a>/,
/<a>(.*?)<\/a>/
],
[
(sub) => <a onClick={this.onRegisterClicked}>{sub}</a>,
(sub) => <a onClick={this.onLoginClicked}>{sub}</a>
]
) }
</div> </div>
</div> </div>
); );

View File

@ -20,6 +20,7 @@ import React from 'react';
import sdk from 'matrix-react-sdk'; import sdk from 'matrix-react-sdk';
import Modal from 'matrix-react-sdk/lib/Modal'; import Modal from 'matrix-react-sdk/lib/Modal';
import PlatformPeg from 'matrix-react-sdk/lib/PlatformPeg'; import PlatformPeg from 'matrix-react-sdk/lib/PlatformPeg';
import { _t } from 'matrix-react-sdk/lib/languageHandler';
/** /**
* Check a version string is compatible with the Changelog * Check a version string is compatible with the Changelog
@ -40,9 +41,9 @@ export default React.createClass({
displayReleaseNotes: function(releaseNotes) { displayReleaseNotes: function(releaseNotes) {
const QuestionDialog = sdk.getComponent('dialogs.QuestionDialog'); const QuestionDialog = sdk.getComponent('dialogs.QuestionDialog');
Modal.createDialog(QuestionDialog, { Modal.createDialog(QuestionDialog, {
title: "What's New", title: _t("What's New"),
description: <pre className="changelog_text">{releaseNotes}</pre>, description: <pre className="changelog_text">{releaseNotes}</pre>,
button: "Update", button: _t("Update"),
onFinished: (update) => { onFinished: (update) => {
if(update && PlatformPeg.get()) { if(update && PlatformPeg.get()) {
PlatformPeg.get().installUpdate(); PlatformPeg.get().installUpdate();
@ -75,17 +76,29 @@ export default React.createClass({
// automatically tells you what's changed (provided the versions // automatically tells you what's changed (provided the versions
// are in the right format) // are in the right format)
if (this.props.releaseNotes) { if (this.props.releaseNotes) {
action_button = <button className="mx_MatrixToolbar_action" onClick={this.displayReleaseNotes}>What's new?</button>; action_button = (
<button className="mx_MatrixToolbar_action" onClick={this.displayReleaseNotes}>
{ _t("What's new?") }
</button>
);
} else if (checkVersion(this.props.version) && checkVersion(this.props.newVersion)) { } else if (checkVersion(this.props.version) && checkVersion(this.props.newVersion)) {
action_button = <button className="mx_MatrixToolbar_action" onClick={this.displayChangelog}>What's new?</button>; action_button = (
<button className="mx_MatrixToolbar_action" onClick={this.displayChangelog}>
{ _t("What's new?") }
</button>
);
} else if (PlatformPeg.get()) { } else if (PlatformPeg.get()) {
action_button = <button className="mx_MatrixToolbar_action" onClick={this.onUpdateClicked}>Update</button>; action_button = (
<button className="mx_MatrixToolbar_action" onClick={this.onUpdateClicked}>
{ _t("Update") }
</button>
);
} }
return ( return (
<div className="mx_MatrixToolbar"> <div className="mx_MatrixToolbar">
<img className="mx_MatrixToolbar_warning" src="img/warning.svg" width="24" height="23" alt="/!\"/> <img className="mx_MatrixToolbar_warning" src="img/warning.svg" width="24" height="23" alt="/!\"/>
<div className="mx_MatrixToolbar_content"> <div className="mx_MatrixToolbar_content">
A new version of Riot is available. {_t("A new version of Riot is available.")}
</div> </div>
{action_button} {action_button}
</div> </div>

View File

@ -15,6 +15,7 @@ limitations under the License.
*/ */
var React = require("react"); var React = require("react");
var sanitizeHtml = require("sanitize-html");
import { _t } from 'matrix-react-sdk/lib/languageHandler'; import { _t } from 'matrix-react-sdk/lib/languageHandler';
module.exports = React.createClass({ module.exports = React.createClass({
@ -30,7 +31,7 @@ module.exports = React.createClass({
{ _t('Custom Server Options') } { _t('Custom Server Options') }
</div> </div>
<div className="mx_Dialog_content"> <div className="mx_Dialog_content">
<span dangerouslySetInnerHTML={{__html: _t('customServer_text')}} /> <span dangerouslySetInnerHTML={{__html: sanitizeHtml(_t('customServer_text'))}} />
</div> </div>
<div className="mx_Dialog_buttons"> <div className="mx_Dialog_buttons">
<button onClick={this.props.onFinished} autoFocus={true}> <button onClick={this.props.onFinished} autoFocus={true}>

View File

@ -21,6 +21,7 @@ var MatrixClientPeg = require('matrix-react-sdk/lib/MatrixClientPeg');
var sdk = require('matrix-react-sdk'); var sdk = require('matrix-react-sdk');
var classNames = require('classnames'); var classNames = require('classnames');
var AccessibleButton = require('matrix-react-sdk/lib/components/views/elements/AccessibleButton'); var AccessibleButton = require('matrix-react-sdk/lib/components/views/elements/AccessibleButton');
import { _t } from "matrix-react-sdk/lib/languageHandler";
module.exports = React.createClass({ module.exports = React.createClass({
displayName: 'SearchBar', displayName: 'SearchBar',
@ -59,10 +60,10 @@ module.exports = React.createClass({
return ( return (
<div className="mx_SearchBar"> <div className="mx_SearchBar">
<input ref="search_term" className="mx_SearchBar_input" type="text" autoFocus={true} placeholder="Search..." onKeyDown={this.onSearchChange}/> <input ref="search_term" className="mx_SearchBar_input" type="text" autoFocus={true} placeholder={_t("Search…")} onKeyDown={this.onSearchChange}/>
<AccessibleButton className={ searchButtonClasses } onClick={this.onSearch}><img src="img/search-button.svg" width="37" height="37" alt="Search"/></AccessibleButton> <AccessibleButton className={ searchButtonClasses } onClick={this.onSearch}><img src="img/search-button.svg" width="37" height="37" alt={_t("Search")}/></AccessibleButton>
<AccessibleButton className={ thisRoomClasses } onClick={this.onThisRoomClick}>This Room</AccessibleButton> <AccessibleButton className={ thisRoomClasses } onClick={this.onThisRoomClick}>{_t("This Room")}</AccessibleButton>
<AccessibleButton className={ allRoomsClasses } onClick={this.onAllRoomsClick}>All Rooms</AccessibleButton> <AccessibleButton className={ allRoomsClasses } onClick={this.onAllRoomsClick}>{_t("All Rooms")}</AccessibleButton>
<AccessibleButton className="mx_SearchBar_cancel" onClick={this.props.onCancelClick}><img src="img/cancel.svg" width="18" height="18" /></AccessibleButton> <AccessibleButton className="mx_SearchBar_cancel" onClick={this.props.onCancelClick}><img src="img/cancel.svg" width="18" height="18" /></AccessibleButton>
</div> </div>
); );

View File

@ -10,7 +10,7 @@
"Create new room": "Стварыць новы пакой", "Create new room": "Стварыць новы пакой",
"Couldn't find a matching Matrix room": "Не атрымалася знайсці адпаведны пакой Matrix", "Couldn't find a matching Matrix room": "Не атрымалася знайсці адпаведны пакой Matrix",
"Custom Server Options": "Карыстальніцкія параметры сервера", "Custom Server Options": "Карыстальніцкія параметры сервера",
"delete the alias": "выдаліць псеўданім", "delete the alias.": "выдаліць псеўданім.",
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "Выдаліць псеўданім пакоя %(alias)s і выдаліць %(name)s з каталога?", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Выдаліць псеўданім пакоя %(alias)s і выдаліць %(name)s з каталога?",
"Direct Chat": "Прамы чат", "Direct Chat": "Прамы чат",
"Directory": "Каталог", "Directory": "Каталог",
@ -44,7 +44,7 @@
"Forget": "Забыць", "Forget": "Забыць",
" from room": " з пакоя", " from room": " з пакоя",
"Guests can join": "Госці могуць далучыцца", "Guests can join": "Госці могуць далучыцца",
"Guest users can't invite users. Please register to invite": осцi не могуць запрашаць карыстальнікаў. Калі ласка, зарэгіструйцеся, каб запрасiць", "Guest users can't invite users. Please register to invite.": осцi не могуць запрашаць карыстальнікаў. Калі ласка, зарэгіструйцеся, каб запрасiць.",
"Invite to this room": "Запрасіць у гэты пакой", "Invite to this room": "Запрасіць у гэты пакой",
"Keywords": "Ключавыя словы", "Keywords": "Ключавыя словы",
"Leave": "Пакінуць", "Leave": "Пакінуць",
@ -70,7 +70,7 @@
"Reject": "Адхіліць", "Reject": "Адхіліць",
"Remove %(name)s from the directory?": "Выдаліць %(name)s з каталога?", "Remove %(name)s from the directory?": "Выдаліць %(name)s з каталога?",
"Remove": "Выдалiць", "Remove": "Выдалiць",
"remove %(name)s from the directory": "выдаліць %(name)s з каталога", "remove %(name)s from the directory.": "выдаліць %(name)s з каталога.",
"Remove from Directory": "Выдалiць з каталога", "Remove from Directory": "Выдалiць з каталога",
"Resend": "Паўторна", "Resend": "Паўторна",
"Riot does not know how to join a room on this network": "Riot не ведае, як увайсці ў пакой у гэтай сетке", "Riot does not know how to join a room on this network": "Riot не ведае, як увайсці ў пакой у гэтай сетке",
@ -83,6 +83,6 @@
"The Home Server may be too old to support third party networks": "Хатні сервер можа быць занадта стары для падтрымкі іншых сетак", "The Home Server may be too old to support third party networks": "Хатні сервер можа быць занадта стары для падтрымкі іншых сетак",
"There are advanced notifications which are not shown here": "Ёсць пашыраныя апавяшчэння, якія не паказаныя тут", "There are advanced notifications which are not shown here": "Ёсць пашыраныя апавяшчэння, якія не паказаныя тут",
"The server may be unavailable or overloaded": "Сервер можа быць недаступны ці перагружаны", "The server may be unavailable or overloaded": "Сервер можа быць недаступны ці перагружаны",
"This room is inaccessible to guests. You may be able to join if you register": "Гэты пакой недаступны для гасцей. Вы можаце далучыцца, калі вы зарэгіструецеся", "This room is inaccessible to guests. You may be able to join if you register.": "Гэты пакой недаступны для гасцей. Вы можаце далучыцца, калі вы зарэгіструецеся.",
" to room": " ў пакоі" " to room": " ў пакоі"
} }

View File

@ -7,7 +7,7 @@
"Create new room": "Opret nyt rum", "Create new room": "Opret nyt rum",
"Couldn't find a matching Matrix room": "Kunne ikke finde et matchende Matrix-rum", "Couldn't find a matching Matrix room": "Kunne ikke finde et matchende Matrix-rum",
"Custom Server Options": "Brugerdefinerede serverindstillinger", "Custom Server Options": "Brugerdefinerede serverindstillinger",
"delete the alias": "Slet aliaset", "delete the alias.": "Slet aliaset.",
"Delete the room alias": "Slet room alias", "Delete the room alias": "Slet room alias",
"Direct Chat": "Personligt Chat", "Direct Chat": "Personligt Chat",
"Directory": "Rum fortegnelse", "Directory": "Rum fortegnelse",
@ -39,7 +39,7 @@
"from the directory": "fra fortegnelsen", "from the directory": "fra fortegnelsen",
" from room": " fra rum", " from room": " fra rum",
"Guests can join": "Gæster kan deltage", "Guests can join": "Gæster kan deltage",
"Guest users can't invite users. Please register to invite": "Gæstebrugere kan ikke invitere brugere. Tilmeld dig venligst for at invitere", "Guest users can't invite users. Please register to invite.": "Gæstebrugere kan ikke invitere brugere. Tilmeld dig venligst for at invitere.",
"Invite to this room": "Inviter til dette rum", "Invite to this room": "Inviter til dette rum",
"Keywords": "Søgeord", "Keywords": "Søgeord",
"Leave": "Forlade", "Leave": "Forlade",
@ -70,7 +70,7 @@
"The Home Server may be too old to support third party networks": "Hjemmeserveren kan være for gammel til at understøtte tredjepartsnetværk", "The Home Server may be too old to support third party networks": "Hjemmeserveren kan være for gammel til at understøtte tredjepartsnetværk",
"There are advanced notifications which are not shown here": "Der er avancerede meddelelser, som ikke vises her", "There are advanced notifications which are not shown here": "Der er avancerede meddelelser, som ikke vises her",
"The server may be unavailable or overloaded": "Serveren kan være utilgængelig eller overbelastet", "The server may be unavailable or overloaded": "Serveren kan være utilgængelig eller overbelastet",
"This room is inaccessible to guests. You may be able to join if you register": "Dette rum er utilgængeligt for gæster. Du kan være i stand til at deltage, hvis du registrerer dig", "This room is inaccessible to guests. You may be able to join if you register.": "Dette rum er utilgængeligt for gæster. Du kan være i stand til at deltage, hvis du registrerer dig.",
" to room": " til rum", " to room": " til rum",
"Unable to fetch notification target list": "Kan ikke hente meddelelsesmålliste", "Unable to fetch notification target list": "Kan ikke hente meddelelsesmålliste",
"Unable to join network": "Kan ikke deltage i netværket", "Unable to join network": "Kan ikke deltage i netværket",

View File

@ -29,7 +29,7 @@
"and remove": "und entfernen", "and remove": "und entfernen",
"Can't update user notification settings": "Kann Benutzerdefinierte Einstellungen nicht aktualisieren", "Can't update user notification settings": "Kann Benutzerdefinierte Einstellungen nicht aktualisieren",
"Couldn't find a matching Matrix room": "Konnte keinen entsprechenden Matrix-Raum finden", "Couldn't find a matching Matrix room": "Konnte keinen entsprechenden Matrix-Raum finden",
"delete the alias": "Lösche den Alias", "delete the alias.": "Lösche den Alias.",
"Delete the room alias": "Lösche den Raum Alias", "Delete the room alias": "Lösche den Raum Alias",
"Direct Chat": "Privater Chat", "Direct Chat": "Privater Chat",
"Drop here to": "Hier ablegen", "Drop here to": "Hier ablegen",
@ -54,7 +54,7 @@
"Forget": "Lösche", "Forget": "Lösche",
"from the directory": "aus dem Verzeichnis", "from the directory": "aus dem Verzeichnis",
" from room": " aus dem Raum", " from room": " aus dem Raum",
"Guest users can't invite users. Please register to invite": "Gastnutzer können keine Nutzer einladen. Bitte registriere dich, um Nutzer einzuladen", "Guest users can't invite users. Please register to invite.": "Gastnutzer können keine Nutzer einladen. Bitte registriere dich, um Nutzer einzuladen.",
"Keywords": "Schlüsselwörter", "Keywords": "Schlüsselwörter",
"Leave": "Verlassen", "Leave": "Verlassen",
"Low Priority": "Niedrige Priorität", "Low Priority": "Niedrige Priorität",
@ -71,7 +71,7 @@
"Room not found": "Raum nicht gefunden", "Room not found": "Raum nicht gefunden",
"There are advanced notifications which are not shown here": "Es existieren erweiterte Benachrichtigungen, welche hier nicht angezeigt werden", "There are advanced notifications which are not shown here": "Es existieren erweiterte Benachrichtigungen, welche hier nicht angezeigt werden",
"The server may be unavailable or overloaded": "Der Server ist vermutlich nicht erreichbar oder überlastet", "The server may be unavailable or overloaded": "Der Server ist vermutlich nicht erreichbar oder überlastet",
"This room is inaccessible to guests. You may be able to join if you register": "Dieser Raum ist nicht verfügbar für Gäste. Vermutlich klappt es wenn du dich anmeldest", "This room is inaccessible to guests. You may be able to join if you register.": "Dieser Raum ist nicht verfügbar für Gäste. Vermutlich klappt es wenn du dich anmeldest.",
"Unable to fetch notification target list": "Liste der Benachrichtigungsempfänger konnte nicht abgerufen werden", "Unable to fetch notification target list": "Liste der Benachrichtigungsempfänger konnte nicht abgerufen werden",
"Unable to join network": "Es ist nicht möglich, dem Netzwerk beizutreten", "Unable to join network": "Es ist nicht möglich, dem Netzwerk beizutreten",
"unknown error code": "Unbekannter Fehlercode", "unknown error code": "Unbekannter Fehlercode",
@ -98,7 +98,7 @@
"Quote": "Zitat", "Quote": "Zitat",
"Redact": "Redaktionell entfernen", "Redact": "Redaktionell entfernen",
"Remove %(name)s from the directory?": "Soll der Raum %(name)s aus dem Verzeichnis entfernt werden?", "Remove %(name)s from the directory?": "Soll der Raum %(name)s aus dem Verzeichnis entfernt werden?",
"remove %(name)s from the directory": "entferne %(name)s aus dem Verzeichnis", "remove %(name)s from the directory.": "entferne %(name)s aus dem Verzeichnis.",
"Resend": "Erneut senden", "Resend": "Erneut senden",
"Source URL": "Quell-URL", "Source URL": "Quell-URL",
"Unable to look up room ID from server": "Es ist nicht möglich, die Raum-ID auf dem Server nachzuschlagen", "Unable to look up room ID from server": "Es ist nicht möglich, die Raum-ID auf dem Server nachzuschlagen",

View File

@ -1,22 +1,30 @@
{ {
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s on %(osName)s",
"<a href=\"http://apple.com/safari\">Safari</a> and <a href=\"http://opera.com\">Opera</a> work too.": "<a href=\"http://apple.com/safari\">Safari</a> and <a href=\"http://opera.com\">Opera</a> work too.", "<a href=\"http://apple.com/safari\">Safari</a> and <a href=\"http://opera.com\">Opera</a> work too.": "<a href=\"http://apple.com/safari\">Safari</a> and <a href=\"http://opera.com\">Opera</a> work too.",
"A new version of Riot is available.": "A new version of Riot is available.",
"Add an email address above to configure email notifications": "Add an email address above to configure email notifications", "Add an email address above to configure email notifications": "Add an email address above to configure email notifications",
"Advanced notification settings": "Advanced notification settings", "Advanced notification settings": "Advanced notification settings",
"All messages": "All messages", "All messages": "All messages",
"All messages (loud)": "All messages (loud)", "All messages (loud)": "All messages (loud)",
"All Rooms": "All Rooms",
"All notifications are currently disabled for all targets.": "All notifications are currently disabled for all targets.", "All notifications are currently disabled for all targets.": "All notifications are currently disabled for all targets.",
"An error occurred whilst saving your email notification preferences.": "An error occurred whilst saving your email notification preferences.", "An error occurred whilst saving your email notification preferences.": "An error occurred whilst saving your email notification preferences.",
"Call invitation": "Call invitation", "Call invitation": "Call invitation",
"Cancel": "Cancel",
"Cancel Sending": "Cancel Sending", "Cancel Sending": "Cancel Sending",
"Can't update user notification settings": "Can't update user notification settings", "Can't update user notification settings": "Can't update user notification settings",
"Changelog": "Changelog",
"Close": "Close", "Close": "Close",
"Collapse panel": "Collapse panel", "Collapse panel": "Collapse panel",
"Collecting app version information": "Collecting app version information",
"Collecting logs": "Collecting logs",
"Create new room": "Create new room", "Create new room": "Create new room",
"Couldn't find a matching Matrix room": "Couldn't find a matching Matrix room", "Couldn't find a matching Matrix room": "Couldn't find a matching Matrix room",
"Custom Server Options": "Custom Server Options", "Custom Server Options": "Custom Server Options",
"customServer_text": "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.", "customServer_text": "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.",
"delete the alias": "delete the alias", "delete the alias.": "delete the alias.",
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "Delete the room alias %(alias)s and remove %(name)s from the directory?", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Delete the room alias %(alias)s and remove %(name)s from the directory?",
"Describe your problem here.": "Describe your problem here.",
"Direct Chat": "Direct Chat", "Direct Chat": "Direct Chat",
"Directory": "Directory", "Directory": "Directory",
"Dismiss": "Dismiss", "Dismiss": "Dismiss",
@ -41,6 +49,7 @@
"Failed to get public room list": "Failed to get public room list", "Failed to get public room list": "Failed to get public room list",
"Failed to join the room": "Failed to join the room", "Failed to join the room": "Failed to join the room",
"Failed to remove tag %(tagName)s from room": "Failed to remove tag %(tagName)s from room", "Failed to remove tag %(tagName)s from room": "Failed to remove tag %(tagName)s from room",
"Failed to send report: ": "Failed to send report: ",
"Failed to set direct chat tag": "Failed to set direct chat tag", "Failed to set direct chat tag": "Failed to set direct chat tag",
"Failed to set Direct Message status of room": "Failed to set Direct Message status of room", "Failed to set Direct Message status of room": "Failed to set Direct Message status of room",
"Favourite": "Favourite", "Favourite": "Favourite",
@ -48,13 +57,17 @@
"Files": "Files", "Files": "Files",
"Filter room names": "Filter room names", "Filter room names": "Filter room names",
"Forget": "Forget", "Forget": "Forget",
"Forward Message": "Forward Message",
" from room": " from room", " from room": " from room",
"Guests can join": "Guests can join", "Guests can join": "Guests can join",
"Guest users can't invite users. Please register to invite": "Guest users can't invite users. Please register to invite", "Guest users can't invite users. Please register to invite.": "Guest users can't invite users. Please register to invite.",
"Hide panel": "Hide panel",
"I understand the risks and wish to continue": "I understand the risks and wish to continue", "I understand the risks and wish to continue": "I understand the risks and wish to continue",
"In order to diagnose problems, logs from this client will be sent with this bug report. If you would prefer to only send the text above, please untick:": "In order to diagnose problems, logs from this client will be sent with this bug report. If you would prefer to only send the text above, please untick:",
"Invite to this room": "Invite to this room", "Invite to this room": "Invite to this room",
"Keywords": "Keywords", "Keywords": "Keywords",
"Leave": "Leave", "Leave": "Leave",
"Loading bug report module": "Loading bug report module",
"Low Priority": "Low Priority", "Low Priority": "Low Priority",
"Members": "Members", "Members": "Members",
"Mentions only": "Mentions only", "Mentions only": "Mentions only",
@ -77,6 +90,8 @@
"On": "On", "On": "On",
"Operation failed": "Operation failed", "Operation failed": "Operation failed",
"Permalink": "Permalink", "Permalink": "Permalink",
"Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Please describe the bug. What did you do? What did you expect to happen? What actually happened?",
"Please describe the bug and/or send logs.": "Please describe the bug and/or send logs.",
"Please install <a href=\"https://www.google.com/chrome\">Chrome</a> or <a href=\"https://getfirefox.com\">Firefox</a> for the best experience.": "Please install <a href=\"https://www.google.com/chrome\">Chrome</a> or <a href=\"https://getfirefox.com\">Firefox</a> for the best experience.", "Please install <a href=\"https://www.google.com/chrome\">Chrome</a> or <a href=\"https://getfirefox.com\">Firefox</a> for the best experience.": "Please install <a href=\"https://www.google.com/chrome\">Chrome</a> or <a href=\"https://getfirefox.com\">Firefox</a> for the best experience.",
"Please Register": "Please Register", "Please Register": "Please Register",
"powered by Matrix": "powered by Matrix", "powered by Matrix": "powered by Matrix",
@ -85,14 +100,21 @@
"Reject": "Reject", "Reject": "Reject",
"Remove %(name)s from the directory?": "Remove %(name)s from the directory?", "Remove %(name)s from the directory?": "Remove %(name)s from the directory?",
"Remove": "Remove", "Remove": "Remove",
"remove %(name)s from the directory": "remove %(name)s from the directory", "remove %(name)s from the directory.": "remove %(name)s from the directory.",
"Remove from Directory": "Remove from Directory", "Remove from Directory": "Remove from Directory",
"Report a bug": "Report a bug",
"Resend": "Resend", "Resend": "Resend",
"Riot Desktop on %(platformName)s": "Riot Desktop on %(platformName)s",
"Riot does not know how to join a room on this network": "Riot does not know how to join a room on this network", "Riot does not know how to join a room on this network": "Riot does not know how to join a room on this network",
"Riot is not supported on mobile web. Install the app?": "Riot is not supported on mobile web. Install the app?",
"Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.", "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.",
"Room directory": "Room directory", "Room directory": "Room directory",
"Room not found": "Room not found", "Room not found": "Room not found",
"Search": "Search",
"Search…": "Search…",
"Search for a room": "Search for a room", "Search for a room": "Search for a room",
"Send": "Send",
"Send logs": "Send logs",
"Settings": "Settings", "Settings": "Settings",
"Source URL": "Source URL", "Source URL": "Source URL",
"Sorry, your browser is <b>not</b> able to run Riot.": "Sorry, your browser is <b>not</b> able to run Riot.", "Sorry, your browser is <b>not</b> able to run Riot.": "Sorry, your browser is <b>not</b> able to run Riot.",
@ -100,22 +122,31 @@
"The Home Server may be too old to support third party networks": "The Home Server may be too old to support third party networks", "The Home Server may be too old to support third party networks": "The Home Server may be too old to support third party networks",
"There are advanced notifications which are not shown here": "There are advanced notifications which are not shown here", "There are advanced notifications which are not shown here": "There are advanced notifications which are not shown here",
"The server may be unavailable or overloaded": "The server may be unavailable or overloaded", "The server may be unavailable or overloaded": "The server may be unavailable or overloaded",
"This room is inaccessible to guests. You may be able to join if you register": "This room is inaccessible to guests. You may be able to join if you register", "This Room": "This Room",
"This room is inaccessible to guests. You may be able to join if you register.": "This room is inaccessible to guests. You may be able to join if you register.",
" to room": " to room", " to room": " to room",
"Unable to fetch notification target list": "Unable to fetch notification target list", "Unable to fetch notification target list": "Unable to fetch notification target list",
"Unable to join network": "Unable to join network", "Unable to join network": "Unable to join network",
"Unable to look up room ID from server": "Unable to look up room ID from server", "Unable to look up room ID from server": "Unable to look up room ID from server",
"Unavailable": "Unavailable",
"Unhide Preview": "Unhide Preview", "Unhide Preview": "Unhide Preview",
"Unknown device": "Unknown device",
"unknown error code": "unknown error code", "unknown error code": "unknown error code",
"Unnamed room": "Unnamed room", "Unnamed room": "Unnamed room",
"Update": "Update",
"Uploaded on %(date)s by %(user)s": "Uploaded on %(date)s by %(user)s", "Uploaded on %(date)s by %(user)s": "Uploaded on %(date)s by %(user)s",
"Uploading report": "Uploading report",
"View Decrypted Source": "View Decrypted Source", "View Decrypted Source": "View Decrypted Source",
"View Source": "View Source", "View Source": "View Source",
"What's New": "What's New",
"What's new?": "What's new?",
"Waiting for response from server": "Waiting for response from server",
"When I'm invited to a room": "When I'm invited to a room", "When I'm invited to a room": "When I'm invited to a room",
"World readable": "World readable", "World readable": "World readable",
"You cannot delete this image. (%(code)s)": "You cannot delete this image. (%(code)s)", "You cannot delete this image. (%(code)s)": "You cannot delete this image. (%(code)s)",
"You cannot delete this message. (%(code)s)": "You cannot delete this message. (%(code)s)", "You cannot delete this message. (%(code)s)": "You cannot delete this message. (%(code)s)",
"You are not receiving desktop notifications": "You are not receiving desktop notifications", "You are not receiving desktop notifications": "You are not receiving desktop notifications",
"You are Rioting as a guest. <a>Register</a> or <a>sign in</a> to access more rooms and features!": "You are Rioting as a guest. <a>Register</a> or <a>sign in</a> to access more rooms and features!",
"You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply", "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply",
"Sunday": "Sunday", "Sunday": "Sunday",
"Monday": "Monday", "Monday": "Monday",
@ -126,6 +157,7 @@
"Saturday": "Saturday", "Saturday": "Saturday",
"Today": "Today", "Today": "Today",
"Yesterday": "Yesterday", "Yesterday": "Yesterday",
"You need to be using HTTPS to place a screen-sharing call.": "You need to be using HTTPS to place a screen-sharing call.",
"Welcome page": "Welcome page", "Welcome page": "Welcome page",
"With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!" "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!"
} }

View File

@ -11,7 +11,7 @@
"Couldn't find a matching Matrix room": "No se encontró una sala Matrix que coincidiera", "Couldn't find a matching Matrix room": "No se encontró una sala Matrix que coincidiera",
"Custom Server Options": "Opciones de Servidor Personalizado", "Custom Server Options": "Opciones de Servidor Personalizado",
"customServer_text": "Puedes utilizar las opciones de servidor personalizadas para iniciar sesión en otros servidores Matrix especificando una URL de Home server distinta.<br/>Esto te permite usar Riot con una cuenta Matrix existente en un Home server distinto.<br/><br/>También puedes configurar un servidor de identidad personalizado, pero no podrás invitar usuarios por dirección de email, ni ser invitado por email por ti mismo.", "customServer_text": "Puedes utilizar las opciones de servidor personalizadas para iniciar sesión en otros servidores Matrix especificando una URL de Home server distinta.<br/>Esto te permite usar Riot con una cuenta Matrix existente en un Home server distinto.<br/><br/>También puedes configurar un servidor de identidad personalizado, pero no podrás invitar usuarios por dirección de email, ni ser invitado por email por ti mismo.",
"delete the alias": "borrar el alias", "delete the alias.": "borrar el alias.",
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "¿Borrar la sala alias %(alias)s y retirar %(name)s del directorio?", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "¿Borrar la sala alias %(alias)s y retirar %(name)s del directorio?",
"Direct Chat": "Conversación directa", "Direct Chat": "Conversación directa",
"Directory": "Directorio", "Directory": "Directorio",
@ -43,7 +43,7 @@
"Forget": "Olvidar", "Forget": "Olvidar",
" from room": " de la sala", " from room": " de la sala",
"Guests can join": "Los invitados se pueden unir", "Guests can join": "Los invitados se pueden unir",
"Guest users can't invite users. Please register to invite": "Los usuarios invitados no pueden invitar usuarios. Por favor, regístrate para poder invitar", "Guest users can't invite users. Please register to invite.": "Los usuarios invitados no pueden invitar usuarios. Por favor, regístrate para poder invitar.",
"Invite to this room": "Invitar a esta sala", "Invite to this room": "Invitar a esta sala",
"Keywords": "Palabras clave", "Keywords": "Palabras clave",
"Leave": "Salir", "Leave": "Salir",
@ -73,7 +73,7 @@
"Reject": "Rechazar", "Reject": "Rechazar",
"Remove %(name)s from the directory?": "¿Retirar %(name)s del directorio?", "Remove %(name)s from the directory?": "¿Retirar %(name)s del directorio?",
"Remove": "Eliminar", "Remove": "Eliminar",
"remove %(name)s from the directory": "retirar %(name)s del directorio", "remove %(name)s from the directory.": "retirar %(name)s del directorio.",
"Remove from Directory": "Retirar del Directorio", "Remove from Directory": "Retirar del Directorio",
"Resend": "Reenviar", "Resend": "Reenviar",
"Riot does not know how to join a room on this network": "Riot no sabe cómo unirse a una sala en esta red", "Riot does not know how to join a room on this network": "Riot no sabe cómo unirse a una sala en esta red",
@ -86,7 +86,7 @@
"The Home Server may be too old to support third party networks": "El Home Server puede ser demasiado antiguo para soportar redes de terceros", "The Home Server may be too old to support third party networks": "El Home Server puede ser demasiado antiguo para soportar redes de terceros",
"There are advanced notifications which are not shown here": "Hay notificaciones avanzadas que no se muestran aquí", "There are advanced notifications which are not shown here": "Hay notificaciones avanzadas que no se muestran aquí",
"The server may be unavailable or overloaded": "El servidor puede estar no disponible o sobrecargado", "The server may be unavailable or overloaded": "El servidor puede estar no disponible o sobrecargado",
"This room is inaccessible to guests. You may be able to join if you register": "Esta sala es inaccesible para los invitados. Puedes unirse si te registras", "This room is inaccessible to guests. You may be able to join if you register.": "Esta sala es inaccesible para los invitados. Puedes unirse si te registras.",
" to room": " a la sala", " to room": " a la sala",
"Unable to fetch notification target list": "No se puede obtener la lista de objetivos de notificación", "Unable to fetch notification target list": "No se puede obtener la lista de objetivos de notificación",
"Unable to join network": "No se puede unir a la red", "Unable to join network": "No se puede unir a la red",

View File

@ -10,7 +10,7 @@
"Create new room": "Créer un nouveau salon", "Create new room": "Créer un nouveau salon",
"Couldn't find a matching Matrix room": "Impossible de trouver un salon Matrix", "Couldn't find a matching Matrix room": "Impossible de trouver un salon Matrix",
"Custom Server Options": "Options de serveur personnalisées", "Custom Server Options": "Options de serveur personnalisées",
"delete the alias": "Supprimer l'alias", "delete the alias.": "Supprimer l'alias.",
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "Supprimer l'alias %(alias)s du salon et supprimer %(name)s du répertoire ?", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Supprimer l'alias %(alias)s du salon et supprimer %(name)s du répertoire ?",
"Direct Chat": "Conversation Directe", "Direct Chat": "Conversation Directe",
"Directory": "Répertoire", "Directory": "Répertoire",
@ -70,7 +70,7 @@
"Filter room names": "Filtrer les salons par nom", "Filter room names": "Filtrer les salons par nom",
"Forget": "Oublier", "Forget": "Oublier",
" from room": " du salon", " from room": " du salon",
"Guest users can't invite users. Please register to invite": "Les visiteurs ne peuvent démarrer une discussion. Merci de vous enregistrer pour pouvoir démarrer une discussion", "Guest users can't invite users. Please register to invite.": "Les visiteurs ne peuvent démarrer une discussion. Merci de vous enregistrer pour pouvoir démarrer une discussion.",
"Invite to this room": "Inviter dans ce salon", "Invite to this room": "Inviter dans ce salon",
"Keywords": "Mots-clés", "Keywords": "Mots-clés",
"Leave": "Quitter", "Leave": "Quitter",
@ -94,7 +94,7 @@
"Off": "Désactivé", "Off": "Désactivé",
"On": "Activé", "On": "Activé",
"Permalink": "Permalien", "Permalink": "Permalien",
"remove %(name)s from the directory": "supprimer %(name)s du répertoire", "remove %(name)s from the directory.": "supprimer %(name)s du répertoire.",
"Remove from Directory": "Supprimer du répertoire", "Remove from Directory": "Supprimer du répertoire",
"Riot does not know how to join a room on this network": "Riot ne peut pas joindre un salon sur ce réseau", "Riot does not know how to join a room on this network": "Riot ne peut pas joindre un salon sur ce réseau",
"Room directory": "Répertoire des salons", "Room directory": "Répertoire des salons",
@ -104,7 +104,7 @@
"The Home Server may be too old to support third party networks": "Le Home Server semble trop ancien pour supporter des réseaux tiers", "The Home Server may be too old to support third party networks": "Le Home Server semble trop ancien pour supporter des réseaux tiers",
"There are advanced notifications which are not shown here": "Il existe une configuration avancée des notifications qui ne peut être affichée ici", "There are advanced notifications which are not shown here": "Il existe une configuration avancée des notifications qui ne peut être affichée ici",
"The server may be unavailable or overloaded": "Le serveur est indisponible ou surchargé", "The server may be unavailable or overloaded": "Le serveur est indisponible ou surchargé",
"This room is inaccessible to guests. You may be able to join if you register": "Ce salon n'est pas ouvert aux visiteurs. Vous pourrez peut-être le rejoindre si vous vous enregistrez", "This room is inaccessible to guests. You may be able to join if you register.": "Ce salon n'est pas ouvert aux visiteurs. Vous pourrez peut-être le rejoindre si vous vous enregistrez.",
"Unable to fetch notification target list": "Impossible de récupérer la liste des appareils recevant les notifications", "Unable to fetch notification target list": "Impossible de récupérer la liste des appareils recevant les notifications",
"Unable to join network": "Impossible de rejoindre le réseau", "Unable to join network": "Impossible de rejoindre le réseau",
"Unable to look up room ID from server": "Impossible de récupérer l'ID du salon sur le serveur", "Unable to look up room ID from server": "Impossible de récupérer l'ID du salon sur le serveur",

View File

@ -12,7 +12,7 @@
"Create new room": "Új szoba készítés", "Create new room": "Új szoba készítés",
"Couldn't find a matching Matrix room": "Nem található a keresett Matrix szoba", "Couldn't find a matching Matrix room": "Nem található a keresett Matrix szoba",
"Custom Server Options": "Egyedi szerver beállítások", "Custom Server Options": "Egyedi szerver beállítások",
"delete the alias": "becenév törlése", "delete the alias.": "becenév törlése.",
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "Törlöd a(z) %(alias)s szobát és kiveszed a könyvtárból ezt: %(name)s?", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Törlöd a(z) %(alias)s szobát és kiveszed a könyvtárból ezt: %(name)s?",
"Direct Chat": "Közvetlen csevegés", "Direct Chat": "Közvetlen csevegés",
"Directory": "Könyvtár", "Directory": "Könyvtár",
@ -46,7 +46,7 @@
"Forget": "Elfelejt", "Forget": "Elfelejt",
" from room": " szobából", " from room": " szobából",
"Guests can join": "Vendégek csatlakozhatnak", "Guests can join": "Vendégek csatlakozhatnak",
"Guest users can't invite users. Please register to invite": "Vendég felhasználó nem küldhet meghívót. Kérlek regisztrálj meghívó küldéshez", "Guest users can't invite users. Please register to invite.": "Vendég felhasználó nem küldhet meghívót. Kérlek regisztrálj meghívó küldéshez.",
"Invite to this room": "Meghívás a szobába", "Invite to this room": "Meghívás a szobába",
"Keywords": "Kulcsszavak", "Keywords": "Kulcsszavak",
"Leave": "Elhagy", "Leave": "Elhagy",
@ -84,7 +84,7 @@
"Reject": "Elutasít", "Reject": "Elutasít",
"Remove %(name)s from the directory?": "Törlöd a %(name)s szobát a listából?", "Remove %(name)s from the directory?": "Törlöd a %(name)s szobát a listából?",
"Remove": "Töröl", "Remove": "Töröl",
"remove %(name)s from the directory": "%(name)s szoba törlése a listából", "remove %(name)s from the directory.": "%(name)s szoba törlése a listából.",
"Remove from Directory": "Törlés a szobák listájából", "Remove from Directory": "Törlés a szobák listájából",
"Resend": "Újraküld", "Resend": "Újraküld",
"Riot does not know how to join a room on this network": "Riot nem tudja, hogy csatlakozzon ehhez a szobához ezen a hálózaton", "Riot does not know how to join a room on this network": "Riot nem tudja, hogy csatlakozzon ehhez a szobához ezen a hálózaton",
@ -99,7 +99,7 @@
"The Home Server may be too old to support third party networks": "A Saját szerver lehet, hogy túl régi ahhoz, hogy más hálózatokhoz tudjon kapcsolódni", "The Home Server may be too old to support third party networks": "A Saját szerver lehet, hogy túl régi ahhoz, hogy más hálózatokhoz tudjon kapcsolódni",
"There are advanced notifications which are not shown here": "Vannak haladó értesítések amik itt nincsenek megjelenítve", "There are advanced notifications which are not shown here": "Vannak haladó értesítések amik itt nincsenek megjelenítve",
"The server may be unavailable or overloaded": "A szerver nem érhető el vagy túl van terhelve", "The server may be unavailable or overloaded": "A szerver nem érhető el vagy túl van terhelve",
"This room is inaccessible to guests. You may be able to join if you register": "A szoba vendégek számára elérhetetlen. Csak regisztráció után tudsz csatlakozni", "This room is inaccessible to guests. You may be able to join if you register.": "A szoba vendégek számára elérhetetlen. Csak regisztráció után tudsz csatlakozni.",
" to room": " szobába", " to room": " szobába",
"Unable to fetch notification target list": "Nem sikerült letölteni az értesítési célok listáját", "Unable to fetch notification target list": "Nem sikerült letölteni az értesítési célok listáját",
"Unable to join network": "Nem sikerült kapcsolódni a hálózathoz", "Unable to join network": "Nem sikerült kapcsolódni a hálózathoz",

View File

@ -15,7 +15,7 @@
"Collapse panel": "Skjul panel", "Collapse panel": "Skjul panel",
"Custom Server Options": "Tilpassede serveralternativer", "Custom Server Options": "Tilpassede serveralternativer",
"customServer_text": "Du kan benytte de egendefinerte serveralternativene til å logge deg på andre Matrix-servere ved å spesifisere en annen Hjemmeserver-URL.<br/>Dette lar deg benytte Riot med en eksisterende Matrix konto på en annen hjemmeserver.<br/><br/>Du kan også angi en egendefinert identitetsserver, men du vil ikke kunne invitere brukere via e-post, eller bli invitert via e-post selv.", "customServer_text": "Du kan benytte de egendefinerte serveralternativene til å logge deg på andre Matrix-servere ved å spesifisere en annen Hjemmeserver-URL.<br/>Dette lar deg benytte Riot med en eksisterende Matrix konto på en annen hjemmeserver.<br/><br/>Du kan også angi en egendefinert identitetsserver, men du vil ikke kunne invitere brukere via e-post, eller bli invitert via e-post selv.",
"delete the alias": "Slett aliaset", "delete the alias.": "Slett aliaset.",
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "Slett rom alias %(alias)s og fjern %(name)s fra katalogen?", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Slett rom alias %(alias)s og fjern %(name)s fra katalogen?",
"Direct Chat": "Direkte Chat", "Direct Chat": "Direkte Chat",
"Directory": "Katalog", "Directory": "Katalog",
@ -49,7 +49,7 @@
"Forget": "Glem", "Forget": "Glem",
" from room": " fra rommet", " from room": " fra rommet",
"Guests can join": "Gjester kan bli med", "Guests can join": "Gjester kan bli med",
"Guest users can't invite users. Please register to invite": "Gjester kan ikke invitere brukere. Vennligst registrer deg for å invitere", "Guest users can't invite users. Please register to invite.": "Gjester kan ikke invitere brukere. Vennligst registrer deg for å invitere.",
"I understand the risks and wish to continue": "Jeg forstår risikoen og ønsker å fortsette", "I understand the risks and wish to continue": "Jeg forstår risikoen og ønsker å fortsette",
"Invite to this room": "Inviter til dette rommet", "Invite to this room": "Inviter til dette rommet",
"Keywords": "Nøkkelord", "Keywords": "Nøkkelord",
@ -80,7 +80,7 @@
"Reject": "Avvis", "Reject": "Avvis",
"Remove %(name)s from the directory?": "Fjern %(name)s fra katalogen?", "Remove %(name)s from the directory?": "Fjern %(name)s fra katalogen?",
"Remove": "Fjern", "Remove": "Fjern",
"remove %(name)s from the directory": "fjern %(name)s fra katalogen", "remove %(name)s from the directory.": "fjern %(name)s fra katalogen.",
"Remove from Directory": "Fjern fra katalogen", "Remove from Directory": "Fjern fra katalogen",
"Resend": "Send på nytt", "Resend": "Send på nytt",
"Riot does not know how to join a room on this network": "Riot vet ikke hvordan man kan komme inn på et rom på dette nettverket", "Riot does not know how to join a room on this network": "Riot vet ikke hvordan man kan komme inn på et rom på dette nettverket",
@ -95,7 +95,7 @@
"The Home Server may be too old to support third party networks": "Hjemme-serveren kan være for gammel til å støtte tredjeparts-nettverk", "The Home Server may be too old to support third party networks": "Hjemme-serveren kan være for gammel til å støtte tredjeparts-nettverk",
"There are advanced notifications which are not shown here": "Det er avanserte varsler som ikke vises her", "There are advanced notifications which are not shown here": "Det er avanserte varsler som ikke vises her",
"The server may be unavailable or overloaded": "Serveren kan være utilgjengelig eller overbelastet", "The server may be unavailable or overloaded": "Serveren kan være utilgjengelig eller overbelastet",
"This room is inaccessible to guests. You may be able to join if you register": "Dette rommet er ikke tilgjengelig for gjester. Du kan kanskje komme inn om du registrerer deg", "This room is inaccessible to guests. You may be able to join if you register.": "Dette rommet er ikke tilgjengelig for gjester. Du kan kanskje komme inn om du registrerer deg.",
" to room": " til rom", " to room": " til rom",
"Unable to fetch notification target list": "Kunne ikke hente varsel-mål liste", "Unable to fetch notification target list": "Kunne ikke hente varsel-mål liste",
"Unable to join network": "Kunne ikke bli med i nettverket", "Unable to join network": "Kunne ikke bli med i nettverket",

View File

@ -13,7 +13,7 @@
"Couldn't find a matching Matrix room": "Het is niet gelukt om een bijbehorende Matrix kamer te vinden", "Couldn't find a matching Matrix room": "Het is niet gelukt om een bijbehorende Matrix kamer te vinden",
"Custom Server Options": "Aangepaste server instellingen", "Custom Server Options": "Aangepaste server instellingen",
"customServer_text": "Je kunt de aangepaste server instellingen gebruiken om in te loggen bij andere Matrix servers door een andere home server URL in te voeren.<br/>Dit maakt het mogelijk om Riot te gebruiken met een bestaand Matrix account op een andere home server.<br/><br/>Je kunt ook een aangepaste identiteit server instellen, maar het is dan niet mogelijk om gebruikers uit te nodigen met behulp van een email adres of zelf uitgenodigt te worden met een email adres.", "customServer_text": "Je kunt de aangepaste server instellingen gebruiken om in te loggen bij andere Matrix servers door een andere home server URL in te voeren.<br/>Dit maakt het mogelijk om Riot te gebruiken met een bestaand Matrix account op een andere home server.<br/><br/>Je kunt ook een aangepaste identiteit server instellen, maar het is dan niet mogelijk om gebruikers uit te nodigen met behulp van een email adres of zelf uitgenodigt te worden met een email adres.",
"delete the alias": "verwijder de alias", "delete the alias.": "verwijder de alias.",
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "Verwijder de alias %(alias)s en verwijder %(name)s uit de map?", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Verwijder de alias %(alias)s en verwijder %(name)s uit de map?",
"Direct Chat": "Privé gesprek", "Direct Chat": "Privé gesprek",
"Directory": "Kamer lijst", "Directory": "Kamer lijst",
@ -45,7 +45,7 @@
"Forget": "Vergeten", "Forget": "Vergeten",
" from room": " van kamer", " from room": " van kamer",
"Guests can join": "Gasten kunnen toe treden", "Guests can join": "Gasten kunnen toe treden",
"Guest users can't invite users. Please register to invite": "Gasten kunnen geen gebruikers uitnodigen. Om anderen uit te nodigen zult u moeten registreren", "Guest users can't invite users. Please register to invite.": "Gasten kunnen geen gebruikers uitnodigen. Om anderen uit te nodigen zult u moeten registreren.",
"Invite to this room": "Uitnodigen voor deze kamer", "Invite to this room": "Uitnodigen voor deze kamer",
"Keywords": "Trefwoorden", "Keywords": "Trefwoorden",
"Leave": "Verlaten", "Leave": "Verlaten",
@ -76,7 +76,7 @@
"Reject": "Afwijzen", "Reject": "Afwijzen",
"Remove %(name)s from the directory?": "Verwijder %(name)s uit de kamer lijst?", "Remove %(name)s from the directory?": "Verwijder %(name)s uit de kamer lijst?",
"Remove": "Verwijder", "Remove": "Verwijder",
"remove %(name)s from the directory": "verwijder %(name)s uit de kamer lijst", "remove %(name)s from the directory.": "verwijder %(name)s uit de kamer lijst.",
"Remove from Directory": "Verwijder uit de kamer lijst", "Remove from Directory": "Verwijder uit de kamer lijst",
"Resend": "Opnieuw verzenden", "Resend": "Opnieuw verzenden",
"Riot does not know how to join a room on this network": "Riot weet niet hoe het moet toetreden tot een kamer op dit netwerk", "Riot does not know how to join a room on this network": "Riot weet niet hoe het moet toetreden tot een kamer op dit netwerk",
@ -89,7 +89,7 @@
"The Home Server may be too old to support third party networks": "De home server is misschien te oud om netwerken van derde partijen te ondersteunen", "The Home Server may be too old to support third party networks": "De home server is misschien te oud om netwerken van derde partijen te ondersteunen",
"There are advanced notifications which are not shown here": "Er zijn geavanceerde notificaties die hier niet worden laten zien", "There are advanced notifications which are not shown here": "Er zijn geavanceerde notificaties die hier niet worden laten zien",
"The server may be unavailable or overloaded": "De server is misschien niet beschikbaar of overbeladen", "The server may be unavailable or overloaded": "De server is misschien niet beschikbaar of overbeladen",
"This room is inaccessible to guests. You may be able to join if you register": "Deze kamer is niet toegankelijk voor gasten. Je zou misschien toe kunnen treden als je geregistreerd bent", "This room is inaccessible to guests. You may be able to join if you register.": "Deze kamer is niet toegankelijk voor gasten. Je zou misschien toe kunnen treden als je geregistreerd bent.",
" to room": " naar kamer", " to room": " naar kamer",
"Unable to fetch notification target list": "Het is mislukt om de lijst van notificatie doelen op te halen", "Unable to fetch notification target list": "Het is mislukt om de lijst van notificatie doelen op te halen",
"Unable to join network": "Het is mislukt om toe te treden tot dit netwerk", "Unable to join network": "Het is mislukt om toe te treden tot dit netwerk",

View File

@ -9,7 +9,7 @@
"Create new room": "Criar nova sala", "Create new room": "Criar nova sala",
"Couldn't find a matching Matrix room": "Não foi possível encontrar uma sala correspondente no servidor Matrix", "Couldn't find a matching Matrix room": "Não foi possível encontrar uma sala correspondente no servidor Matrix",
"Custom Server Options": "Opções de customização do servidor", "Custom Server Options": "Opções de customização do servidor",
"delete the alias": "apagar o apelido da sala", "delete the alias.": "apagar o apelido da sala.",
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "Apagar o apelido %(alias)s da sala e remover %(name)s da lista pública?", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Apagar o apelido %(alias)s da sala e remover %(name)s da lista pública?",
"Direct Chat": "Conversa pessoal", "Direct Chat": "Conversa pessoal",
"Directory": "Diretório", "Directory": "Diretório",
@ -43,7 +43,7 @@
"Forget": "Esquecer", "Forget": "Esquecer",
" from room": " da sala", " from room": " da sala",
"Guests can join": "Convidados podem entrar", "Guests can join": "Convidados podem entrar",
"Guest users can't invite users. Please register to invite": "Usuários convidados não podem convidar outros usuários. Por gentileza se registre para enviar convites", "Guest users can't invite users. Please register to invite.": "Usuários convidados não podem convidar outros usuários. Por gentileza se registre para enviar convites.",
"Invite to this room": "Convidar para esta sala", "Invite to this room": "Convidar para esta sala",
"Keywords": "Palavras-chave", "Keywords": "Palavras-chave",
"Leave": "Sair", "Leave": "Sair",
@ -69,7 +69,7 @@
"Reject": "Rejeitar", "Reject": "Rejeitar",
"Remove": "Remover", "Remove": "Remover",
"Remove %(name)s from the directory?": "Remover %(name)s da lista pública de salas?", "Remove %(name)s from the directory?": "Remover %(name)s da lista pública de salas?",
"remove %(name)s from the directory": "remover %(name)s da lista pública de salas", "remove %(name)s from the directory.": "remover %(name)s da lista pública de salas.",
"Remove from Directory": "Remover da lista pública de salas", "Remove from Directory": "Remover da lista pública de salas",
"Resend": "Reenviar", "Resend": "Reenviar",
"Riot does not know how to join a room on this network": "O sistema não sabe como entrar na sala desta rede", "Riot does not know how to join a room on this network": "O sistema não sabe como entrar na sala desta rede",
@ -82,7 +82,7 @@
"The Home Server may be too old to support third party networks": "O servidor pode ser muito antigo para suportar redes de terceiros", "The Home Server may be too old to support third party networks": "O servidor pode ser muito antigo para suportar redes de terceiros",
"There are advanced notifications which are not shown here": "Existem opções avançadas que não são exibidas aqui", "There are advanced notifications which are not shown here": "Existem opções avançadas que não são exibidas aqui",
"The server may be unavailable or overloaded": "O servidor pode estar inacessível ou sobrecarregado", "The server may be unavailable or overloaded": "O servidor pode estar inacessível ou sobrecarregado",
"This room is inaccessible to guests. You may be able to join if you register": "Esta sala é inacessível para convidados. Você poderá entrar caso se registre", "This room is inaccessible to guests. You may be able to join if you register.": "Esta sala é inacessível para convidados. Você poderá entrar caso se registre.",
" to room": " na sala", " to room": " na sala",
"Unable to fetch notification target list": "Não foi possível obter a lista de alvos de notificação", "Unable to fetch notification target list": "Não foi possível obter a lista de alvos de notificação",
"Unable to join network": "Não foi possível conectar na rede", "Unable to join network": "Não foi possível conectar na rede",

View File

@ -10,7 +10,7 @@
"Create new room": "Criar nova sala", "Create new room": "Criar nova sala",
"Couldn't find a matching Matrix room": "Não foi possível encontrar uma sala correspondente no servidor Matrix", "Couldn't find a matching Matrix room": "Não foi possível encontrar uma sala correspondente no servidor Matrix",
"Custom Server Options": "Opções para Servidor Personalizado", "Custom Server Options": "Opções para Servidor Personalizado",
"delete the alias": "apagar o apelido da sala", "delete the alias.": "apagar o apelido da sala.",
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "Apagar o apelido %(alias)s da sala e remover %(name)s da lista pública?", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Apagar o apelido %(alias)s da sala e remover %(name)s da lista pública?",
"Direct Chat": "Conversa pessoal", "Direct Chat": "Conversa pessoal",
"Directory": "Diretório", "Directory": "Diretório",
@ -42,9 +42,10 @@
"Files": "Arquivos", "Files": "Arquivos",
"Filter room names": "Filtrar salas por título", "Filter room names": "Filtrar salas por título",
"Forget": "Esquecer", "Forget": "Esquecer",
"Forward Message": "Encaminhar",
" from room": " da sala", " from room": " da sala",
"Guests can join": "Convidados podem entrar", "Guests can join": "Convidados podem entrar",
"Guest users can't invite users. Please register to invite": "Usuários convidados não podem convidar outros usuários. Por gentileza se registre para enviar convites", "Guest users can't invite users. Please register to invite.": "Usuários convidados não podem convidar outros usuários. Por gentileza se registre para enviar convites.",
"Invite to this room": "Convidar para esta sala", "Invite to this room": "Convidar para esta sala",
"Keywords": "Palavras-chave", "Keywords": "Palavras-chave",
"Leave": "Sair", "Leave": "Sair",
@ -76,7 +77,7 @@
"Reject": "Rejeitar", "Reject": "Rejeitar",
"Remove": "Remover", "Remove": "Remover",
"Remove %(name)s from the directory?": "Remover %(name)s da lista pública de salas?", "Remove %(name)s from the directory?": "Remover %(name)s da lista pública de salas?",
"remove %(name)s from the directory": "remover %(name)s da lista pública de salas", "remove %(name)s from the directory.": "remover %(name)s da lista pública de salas.",
"Remove from Directory": "Remover da lista pública de salas", "Remove from Directory": "Remover da lista pública de salas",
"Resend": "Reenviar", "Resend": "Reenviar",
"Riot does not know how to join a room on this network": "O sistema não sabe como entrar na sala desta rede", "Riot does not know how to join a room on this network": "O sistema não sabe como entrar na sala desta rede",
@ -89,7 +90,7 @@
"The Home Server may be too old to support third party networks": "O servidor pode ser muito antigo para suportar redes de terceiros", "The Home Server may be too old to support third party networks": "O servidor pode ser muito antigo para suportar redes de terceiros",
"There are advanced notifications which are not shown here": "Existem opções avançadas que não são exibidas aqui", "There are advanced notifications which are not shown here": "Existem opções avançadas que não são exibidas aqui",
"The server may be unavailable or overloaded": "O servidor pode estar inacessível ou sobrecarregado", "The server may be unavailable or overloaded": "O servidor pode estar inacessível ou sobrecarregado",
"This room is inaccessible to guests. You may be able to join if you register": "Esta sala é inacessível para convidados. Você poderá entrar caso se registre", "This room is inaccessible to guests. You may be able to join if you register.": "Esta sala é inacessível para convidados. Você poderá entrar caso se registre.",
" to room": " para sala", " to room": " para sala",
"Unable to fetch notification target list": "Não foi possível obter a lista de alvos de notificação", "Unable to fetch notification target list": "Não foi possível obter a lista de alvos de notificação",
"Unable to join network": "Não foi possível conectar na rede", "Unable to join network": "Não foi possível conectar na rede",

View File

@ -7,7 +7,7 @@
"Create new room": "Создать комнату", "Create new room": "Создать комнату",
"Couldn't find a matching Matrix room": "Не возможно найти подходящую Матрикс комнату", "Couldn't find a matching Matrix room": "Не возможно найти подходящую Матрикс комнату",
"Custom Server Options": "Настройки пользовательского сервера", "Custom Server Options": "Настройки пользовательского сервера",
"delete the alias": "удалить привязку", "delete the alias.": "удалить привязку.",
"Delete the room alias": "Удалить привязку комнаты", "Delete the room alias": "Удалить привязку комнаты",
"Direct Chat": "Персональное сообщение", "Direct Chat": "Персональное сообщение",
"Directory": "Каталог", "Directory": "Каталог",
@ -39,7 +39,7 @@
"from the directory": "из каталога", "from the directory": "из каталога",
" from room": " из комнаты", " from room": " из комнаты",
"Guests can join": "Гость может присоединиться", "Guests can join": "Гость может присоединиться",
"Guest users can't invite users. Please register to invite": "Гость не может приглашать пользователей. Зарегистрируйтесь для приглошений", "Guest users can't invite users. Please register to invite.": "Гость не может приглашать пользователей. Зарегистрируйтесь для приглошений.",
"Invite to this room": "Пригласить в эту комнату", "Invite to this room": "Пригласить в эту комнату",
"Keywords": "Ключевые слова", "Keywords": "Ключевые слова",
"Leave": "Покинуть", "Leave": "Покинуть",
@ -70,7 +70,7 @@
"The Home Server may be too old to support third party networks": "Пользовательский сервер может быть слишком старым для поддержки сторонних сетей", "The Home Server may be too old to support third party networks": "Пользовательский сервер может быть слишком старым для поддержки сторонних сетей",
"There are advanced notifications which are not shown here": "Здесь расширенные уведомления, которые здесь не показаны", "There are advanced notifications which are not shown here": "Здесь расширенные уведомления, которые здесь не показаны",
"The server may be unavailable or overloaded": "Возможно сервер недоступен или перегружен", "The server may be unavailable or overloaded": "Возможно сервер недоступен или перегружен",
"This room is inaccessible to guests. You may be able to join if you register": "Эта комната недоступна для гостей. Вы можете присоединиться, если зарегистрируетесь", "This room is inaccessible to guests. You may be able to join if you register.": "Эта комната недоступна для гостей. Вы можете присоединиться, если зарегистрируетесь.",
" to room": " к комнате", " to room": " к комнате",
"Unable to fetch notification target list": "Не удалось получить список целей уведомления", "Unable to fetch notification target list": "Не удалось получить список целей уведомления",
"Unable to join network": "Не возможно присоединиться к сети", "Unable to join network": "Не возможно присоединиться к сети",
@ -112,7 +112,7 @@
"Quote": "Цитата", "Quote": "Цитата",
"Redact": "Удалить", "Redact": "Удалить",
"Remove %(name)s from the directory?": "Удалить %(name)s из каталога?", "Remove %(name)s from the directory?": "Удалить %(name)s из каталога?",
"remove %(name)s from the directory": "удалить %(name)s из каталога", "remove %(name)s from the directory.": "удалить %(name)s из каталога.",
"Resend": "Переслать снова", "Resend": "Переслать снова",
"Source URL": "Исходный URL", "Source URL": "Исходный URL",
"Welcome page": "Домашняя страница", "Welcome page": "Домашняя страница",

View File

@ -13,7 +13,7 @@
"Couldn't find a matching Matrix room": "Kunde inte hitta ett matchande Matrix-rum", "Couldn't find a matching Matrix room": "Kunde inte hitta ett matchande Matrix-rum",
"Custom Server Options": "Egna serverinställningar", "Custom Server Options": "Egna serverinställningar",
"customServer_text": "Du kan använda serverinställningarna för att logga in i en annan Matrix-server genom att specifiera en URL till en annan hemserver.<br/>Så här kan du använda Riot med ett existerande Matrix-konto på en annan hemserver.<br/><br/>Du kan också specifiera en egen identitetsserver, men du kommer inte att kunna bjuda in andra via epostadress, eller bli inbjuden via epostadress.", "customServer_text": "Du kan använda serverinställningarna för att logga in i en annan Matrix-server genom att specifiera en URL till en annan hemserver.<br/>Så här kan du använda Riot med ett existerande Matrix-konto på en annan hemserver.<br/><br/>Du kan också specifiera en egen identitetsserver, men du kommer inte att kunna bjuda in andra via epostadress, eller bli inbjuden via epostadress.",
"delete the alias": "radera adressen", "delete the alias.": "radera adressen.",
"Direct Chat": "Direkt chatt", "Direct Chat": "Direkt chatt",
"Directory": "Katalog", "Directory": "Katalog",
"Dismiss": "Avvisa", "Dismiss": "Avvisa",

View File

@ -36,7 +36,7 @@
</head> </head>
<body style="height: 100%;"> <body style="height: 100%;">
<section id="matrixchat" style="height: 100%;"></section> <section id="matrixchat" style="height: 100%;"></section>
<noscript>Sorry, Riot requires JavaScript to be enabled.</noscript> <noscript>Sorry, Riot requires JavaScript to be enabled.</noscript> <!-- TODO: Translate this? -->
<% for (var i=0; i < htmlWebpackPlugin.files.js.length; i++) { <% for (var i=0; i < htmlWebpackPlugin.files.js.length; i++) {
// Not a particularly graceful way of not putting the indexeddb worker script // Not a particularly graceful way of not putting the indexeddb worker script
// into the main page // into the main page

View File

@ -245,13 +245,13 @@ async function loadApp() {
if (!preventRedirect) { if (!preventRedirect) {
if (/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) { if (/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) {
if (confirm("Riot is not supported on mobile web. Install the app?")) { if (confirm(languageHandler._t("Riot is not supported on mobile web. Install the app?"))) {
window.location = "https://itunes.apple.com/us/app/vector.im/id1083446067"; window.location = "https://itunes.apple.com/us/app/vector.im/id1083446067";
return; return;
} }
} }
else if (/Android/.test(navigator.userAgent)) { else if (/Android/.test(navigator.userAgent)) {
if (confirm("Riot is not supported on mobile web. Install the app?")) { if (confirm(languageHandler._t("Riot is not supported on mobile web. Install the app?"))) {
window.location = "https://play.google.com/store/apps/details?id=im.vector.alpha"; window.location = "https://play.google.com/store/apps/details?id=im.vector.alpha";
return; return;
} }
@ -278,7 +278,6 @@ async function loadApp() {
</div>, document.getElementById('matrixchat')); </div>, document.getElementById('matrixchat'));
} else if (validBrowser) { } else if (validBrowser) {
UpdateChecker.start(); UpdateChecker.start();
const MatrixChat = sdk.getComponent('structures.MatrixChat'); const MatrixChat = sdk.getComponent('structures.MatrixChat');
window.matrixChat = ReactDOM.render( window.matrixChat = ReactDOM.render(
<MatrixChat <MatrixChat

View File

@ -19,6 +19,7 @@ limitations under the License.
import VectorBasePlatform from './VectorBasePlatform'; import VectorBasePlatform from './VectorBasePlatform';
import dis from 'matrix-react-sdk/lib/dispatcher'; import dis from 'matrix-react-sdk/lib/dispatcher';
import { _t } from 'matrix-react-sdk/lib/languageHandler';
import q from 'q'; import q from 'q';
import electron, {remote, ipcRenderer} from 'electron'; import electron, {remote, ipcRenderer} from 'electron';
@ -68,7 +69,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
} }
getHumanReadableName(): string { getHumanReadableName(): string {
return 'Electron Platform'; return 'Electron Platform'; // no translation required: only used for analytics
} }
setNotificationCount(count: number) { setNotificationCount(count: number) {
@ -124,6 +125,10 @@ export default class ElectronPlatform extends VectorBasePlatform {
return notification; return notification;
} }
loudNotification(ev: Event, room: Object) {
ipcRenderer.send('loudNotification');
}
clearNotification(notif: Notification) { clearNotification(notif: Notification) {
notif.close(); notif.close();
} }
@ -146,7 +151,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
} }
getDefaultDeviceDisplayName(): string { getDefaultDeviceDisplayName(): string {
return 'Riot Desktop on ' + platformFriendlyName(); return _t('Riot Desktop on %(platformName)s', { platformName: platformFriendlyName() });
} }
screenCaptureErrorString(): ?string { screenCaptureErrorString(): ?string {

View File

@ -18,6 +18,8 @@ limitations under the License.
*/ */
import BasePlatform from 'matrix-react-sdk/lib/BasePlatform'; import BasePlatform from 'matrix-react-sdk/lib/BasePlatform';
import { _t } from 'matrix-react-sdk/lib/languageHandler';
import Favico from 'favico.js'; import Favico from 'favico.js';
/** /**
@ -36,7 +38,7 @@ export default class VectorBasePlatform extends BasePlatform {
} }
getHumanReadableName(): string { getHumanReadableName(): string {
return 'Vector Base Platform'; return 'Vector Base Platform'; // no translation required: only used for analytics
} }
_updateFavicon() { _updateFavicon() {
@ -94,6 +96,6 @@ export default class VectorBasePlatform extends BasePlatform {
* device Vector is running on * device Vector is running on
*/ */
getDefaultDeviceDisplayName(): string { getDefaultDeviceDisplayName(): string {
return "Unknown device"; return _t("Unknown device");
} }
} }

View File

@ -20,6 +20,7 @@ limitations under the License.
import VectorBasePlatform from './VectorBasePlatform'; import VectorBasePlatform from './VectorBasePlatform';
import request from 'browser-request'; import request from 'browser-request';
import dis from 'matrix-react-sdk/lib/dispatcher.js'; import dis from 'matrix-react-sdk/lib/dispatcher.js';
import { _t } from 'matrix-react-sdk/lib/languageHandler';
import q from 'q'; import q from 'q';
import url from 'url'; import url from 'url';
@ -32,7 +33,7 @@ export default class WebPlatform extends VectorBasePlatform {
} }
getHumanReadableName(): string { getHumanReadableName(): string {
return 'Web Platform'; return 'Web Platform'; // no translation required: only used for analytics
} }
/** /**
@ -159,13 +160,15 @@ export default class WebPlatform extends VectorBasePlatform {
const appName = u.format(); const appName = u.format();
const ua = new UAParser(); const ua = new UAParser();
return `${appName} via ${ua.getBrowser().name} on ${ua.getOS().name}`; const browserName = ua.getBrowser().name;
const osName = ua.getOS().name;
return _t('%(appName)s via %(browserName)s on %(osName)s', {appName: appName, browserName: browserName, osName: osName});
} }
screenCaptureErrorString(): ?string { screenCaptureErrorString(): ?string {
// it won't work at all if you're not on HTTPS so whine whine whine // it won't work at all if you're not on HTTPS so whine whine whine
if (!global.window || global.window.location.protocol !== "https:") { if (!global.window || global.window.location.protocol !== "https:") {
return "You need to be using HTTPS to place a screen-sharing call."; return _t("You need to be using HTTPS to place a screen-sharing call.");
} }
return null; return null;
} }

View File

@ -19,6 +19,7 @@ import q from "q";
import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg'; import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg';
import PlatformPeg from 'matrix-react-sdk/lib/PlatformPeg'; import PlatformPeg from 'matrix-react-sdk/lib/PlatformPeg';
import { _t } from 'matrix-react-sdk/lib/languageHandler';
import rageshake from './rageshake' import rageshake from './rageshake'
@ -53,7 +54,7 @@ export default async function sendBugReport(bugReportEndpoint, opts) {
opts = opts || {}; opts = opts || {};
const progressCallback = opts.progressCallback || (() => {}); const progressCallback = opts.progressCallback || (() => {});
progressCallback("Collecting app version information"); progressCallback(_t("Collecting app version information"));
let version = "UNKNOWN"; let version = "UNKNOWN";
try { try {
version = await PlatformPeg.get().getAppVersion(); version = await PlatformPeg.get().getAppVersion();
@ -81,7 +82,7 @@ export default async function sendBugReport(bugReportEndpoint, opts) {
} }
if (opts.sendLogs) { if (opts.sendLogs) {
progressCallback("Collecting logs"); progressCallback(_t("Collecting logs"));
const logs = await rageshake.getLogsForReport(); const logs = await rageshake.getLogsForReport();
for (let entry of logs) { for (let entry of logs) {
// encode as UTF-8 // encode as UTF-8
@ -94,7 +95,7 @@ export default async function sendBugReport(bugReportEndpoint, opts) {
} }
} }
progressCallback("Uploading report"); progressCallback(_t("Uploading report"));
await _submitReport(bugReportEndpoint, body, progressCallback); await _submitReport(bugReportEndpoint, body, progressCallback);
} }
@ -106,7 +107,7 @@ function _submitReport(endpoint, body, progressCallback) {
req.timeout = 5 * 60 * 1000; req.timeout = 5 * 60 * 1000;
req.onreadystatechange = function() { req.onreadystatechange = function() {
if (req.readyState === XMLHttpRequest.LOADING) { if (req.readyState === XMLHttpRequest.LOADING) {
progressCallback("Waiting for response from server"); progressCallback(_t("Waiting for response from server"));
} else if (req.readyState === XMLHttpRequest.DONE) { } else if (req.readyState === XMLHttpRequest.DONE) {
on_done(); on_done();
} }