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

View File

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

View File

@ -42,13 +42,13 @@ dodep matrix-org matrix-react-sdk
mkdir -p 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 ./
pushd matrix-js-sdk
npm install
popd
rm -r matrix-react-sdk 2> /dev/null
rm -r matrix-react-sdk 2> /dev/null || true
ln -s ../matrix-react-sdk ./
pushd matrix-react-sdk
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')) {
forwardButton = (
<div className="mx_MessageContextMenu_field" onClick={this.onForwardClick}>
Forward Message
{ _t('Forward Message') }
</div>
);
}

View File

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

View File

@ -17,6 +17,7 @@
import React from 'react';
import sdk from 'matrix-react-sdk';
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'];
@ -70,16 +71,16 @@ export default class ChangelogDialog extends React.Component {
const 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>
);
return (
<QuestionDialog
title="Changelog"
title={_t("Changelog")}
description={content}
button="Update"
button={_t("Update")}
onFinished={this.props.onFinished}
/>
)

View File

@ -15,7 +15,8 @@ limitations under the License.
*/
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({
displayName: 'GuestWarningBar',
@ -34,7 +35,17 @@ module.exports = React.createClass({
<div className="mx_GuestWarningBar">
<img className="mx_GuestWarningBar_warning" src="img/warning.svg" width="24" height="23" alt="/!\"/>
<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>
);

View File

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

View File

@ -15,6 +15,7 @@ limitations under the License.
*/
var React = require("react");
var sanitizeHtml = require("sanitize-html");
import { _t } from 'matrix-react-sdk/lib/languageHandler';
module.exports = React.createClass({
@ -30,7 +31,7 @@ module.exports = React.createClass({
{ _t('Custom Server Options') }
</div>
<div className="mx_Dialog_content">
<span dangerouslySetInnerHTML={{__html: _t('customServer_text')}} />
<span dangerouslySetInnerHTML={{__html: sanitizeHtml(_t('customServer_text'))}} />
</div>
<div className="mx_Dialog_buttons">
<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 classNames = require('classnames');
var AccessibleButton = require('matrix-react-sdk/lib/components/views/elements/AccessibleButton');
import { _t } from "matrix-react-sdk/lib/languageHandler";
module.exports = React.createClass({
displayName: 'SearchBar',
@ -59,10 +60,10 @@ module.exports = React.createClass({
return (
<div className="mx_SearchBar">
<input ref="search_term" className="mx_SearchBar_input" type="text" autoFocus={true} placeholder="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={ thisRoomClasses } onClick={this.onThisRoomClick}>This Room</AccessibleButton>
<AccessibleButton className={ allRoomsClasses } onClick={this.onAllRoomsClick}>All Rooms</AccessibleButton>
<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={_t("Search")}/></AccessibleButton>
<AccessibleButton className={ thisRoomClasses } onClick={this.onThisRoomClick}>{_t("This Room")}</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>
</div>
);

View File

@ -10,7 +10,7 @@
"Create new room": "Стварыць новы пакой",
"Couldn't find a matching Matrix room": "Не атрымалася знайсці адпаведны пакой Matrix",
"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 з каталога?",
"Direct Chat": "Прамы чат",
"Directory": "Каталог",
@ -44,7 +44,7 @@
"Forget": "Забыць",
" from room": " з пакоя",
"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": "Запрасіць у гэты пакой",
"Keywords": "Ключавыя словы",
"Leave": "Пакінуць",
@ -70,7 +70,7 @@
"Reject": "Адхіліць",
"Remove %(name)s from the directory?": "Выдаліць %(name)s з каталога?",
"Remove": "Выдалiць",
"remove %(name)s from the directory": "выдаліць %(name)s з каталога",
"remove %(name)s from the directory.": "выдаліць %(name)s з каталога.",
"Remove from Directory": "Выдалiць з каталога",
"Resend": "Паўторна",
"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": "Хатні сервер можа быць занадта стары для падтрымкі іншых сетак",
"There are advanced notifications which are not shown here": "Ёсць пашыраныя апавяшчэння, якія не паказаныя тут",
"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": " ў пакоі"
}

View File

@ -7,7 +7,7 @@
"Create new room": "Opret nyt rum",
"Couldn't find a matching Matrix room": "Kunne ikke finde et matchende Matrix-rum",
"Custom Server Options": "Brugerdefinerede serverindstillinger",
"delete the alias": "Slet aliaset",
"delete the alias.": "Slet aliaset.",
"Delete the room alias": "Slet room alias",
"Direct Chat": "Personligt Chat",
"Directory": "Rum fortegnelse",
@ -39,7 +39,7 @@
"from the directory": "fra fortegnelsen",
" from room": " fra rum",
"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",
"Keywords": "Søgeord",
"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",
"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",
"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",
"Unable to fetch notification target list": "Kan ikke hente meddelelsesmålliste",
"Unable to join network": "Kan ikke deltage i netværket",

View File

@ -29,7 +29,7 @@
"and remove": "und entfernen",
"Can't update user notification settings": "Kann Benutzerdefinierte Einstellungen nicht aktualisieren",
"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",
"Direct Chat": "Privater Chat",
"Drop here to": "Hier ablegen",
@ -54,7 +54,7 @@
"Forget": "Lösche",
"from the directory": "aus dem Verzeichnis",
" 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",
"Leave": "Verlassen",
"Low Priority": "Niedrige Priorität",
@ -71,7 +71,7 @@
"Room not found": "Raum nicht gefunden",
"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",
"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 join network": "Es ist nicht möglich, dem Netzwerk beizutreten",
"unknown error code": "Unbekannter Fehlercode",
@ -98,7 +98,7 @@
"Quote": "Zitat",
"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": "entferne %(name)s aus dem Verzeichnis",
"remove %(name)s from the directory.": "entferne %(name)s aus dem Verzeichnis.",
"Resend": "Erneut senden",
"Source URL": "Quell-URL",
"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 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",
"Advanced notification settings": "Advanced notification settings",
"All messages": "All messages",
"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.",
"An error occurred whilst saving your email notification preferences.": "An error occurred whilst saving your email notification preferences.",
"Call invitation": "Call invitation",
"Cancel": "Cancel",
"Cancel Sending": "Cancel Sending",
"Can't update user notification settings": "Can't update user notification settings",
"Changelog": "Changelog",
"Close": "Close",
"Collapse panel": "Collapse panel",
"Collecting app version information": "Collecting app version information",
"Collecting logs": "Collecting logs",
"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",
"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?",
"Describe your problem here.": "Describe your problem here.",
"Direct Chat": "Direct Chat",
"Directory": "Directory",
"Dismiss": "Dismiss",
@ -41,6 +49,7 @@
"Failed to get public room list": "Failed to get public room list",
"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 send report: ": "Failed to send report: ",
"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",
"Favourite": "Favourite",
@ -48,13 +57,17 @@
"Files": "Files",
"Filter room names": "Filter room names",
"Forget": "Forget",
"Forward Message": "Forward Message",
" 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",
"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",
"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",
"Keywords": "Keywords",
"Leave": "Leave",
"Loading bug report module": "Loading bug report module",
"Low Priority": "Low Priority",
"Members": "Members",
"Mentions only": "Mentions only",
@ -77,6 +90,8 @@
"On": "On",
"Operation failed": "Operation failed",
"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 Register": "Please Register",
"powered by Matrix": "powered by Matrix",
@ -85,14 +100,21 @@
"Reject": "Reject",
"Remove %(name)s from the directory?": "Remove %(name)s from the directory?",
"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",
"Report a bug": "Report a bug",
"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 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.",
"Room directory": "Room directory",
"Room not found": "Room not found",
"Search": "Search",
"Search…": "Search…",
"Search for a room": "Search for a room",
"Send": "Send",
"Send logs": "Send logs",
"Settings": "Settings",
"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.",
@ -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",
"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",
"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",
"Unable to fetch notification target list": "Unable to fetch notification target list",
"Unable to join network": "Unable to join network",
"Unable to look up room ID from server": "Unable to look up room ID from server",
"Unavailable": "Unavailable",
"Unhide Preview": "Unhide Preview",
"Unknown device": "Unknown device",
"unknown error code": "unknown error code",
"Unnamed room": "Unnamed room",
"Update": "Update",
"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 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",
"World readable": "World readable",
"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 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",
"Sunday": "Sunday",
"Monday": "Monday",
@ -126,6 +157,7 @@
"Saturday": "Saturday",
"Today": "Today",
"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",
"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",
"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.",
"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?",
"Direct Chat": "Conversación directa",
"Directory": "Directorio",
@ -43,7 +43,7 @@
"Forget": "Olvidar",
" from room": " de la sala",
"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",
"Keywords": "Palabras clave",
"Leave": "Salir",
@ -73,7 +73,7 @@
"Reject": "Rechazar",
"Remove %(name)s from the directory?": "¿Retirar %(name)s del directorio?",
"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",
"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",
@ -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",
"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",
"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",
"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",

View File

@ -10,7 +10,7 @@
"Create new room": "Créer un nouveau salon",
"Couldn't find a matching Matrix room": "Impossible de trouver un salon Matrix",
"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 ?",
"Direct Chat": "Conversation Directe",
"Directory": "Répertoire",
@ -70,7 +70,7 @@
"Filter room names": "Filtrer les salons par nom",
"Forget": "Oublier",
" 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",
"Keywords": "Mots-clés",
"Leave": "Quitter",
@ -94,7 +94,7 @@
"Off": "Désactivé",
"On": "Activé",
"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",
"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",
@ -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",
"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é",
"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 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",

View File

@ -12,7 +12,7 @@
"Create new room": "Új szoba készítés",
"Couldn't find a matching Matrix room": "Nem található a keresett Matrix szoba",
"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?",
"Direct Chat": "Közvetlen csevegés",
"Directory": "Könyvtár",
@ -46,7 +46,7 @@
"Forget": "Elfelejt",
" from room": " szobából",
"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",
"Keywords": "Kulcsszavak",
"Leave": "Elhagy",
@ -84,7 +84,7 @@
"Reject": "Elutasít",
"Remove %(name)s from the directory?": "Törlöd a %(name)s szobát a listábó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",
"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",
@ -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",
"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",
"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",
"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",

View File

@ -15,7 +15,7 @@
"Collapse panel": "Skjul panel",
"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.",
"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?",
"Direct Chat": "Direkte Chat",
"Directory": "Katalog",
@ -49,7 +49,7 @@
"Forget": "Glem",
" from room": " fra rommet",
"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",
"Invite to this room": "Inviter til dette rommet",
"Keywords": "Nøkkelord",
@ -80,7 +80,7 @@
"Reject": "Avvis",
"Remove %(name)s from the directory?": "Fjern %(name)s fra katalogen?",
"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",
"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",
@ -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",
"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",
"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",
"Unable to fetch notification target list": "Kunne ikke hente varsel-mål liste",
"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",
"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.",
"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?",
"Direct Chat": "Privé gesprek",
"Directory": "Kamer lijst",
@ -45,7 +45,7 @@
"Forget": "Vergeten",
" from room": " van kamer",
"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",
"Keywords": "Trefwoorden",
"Leave": "Verlaten",
@ -76,7 +76,7 @@
"Reject": "Afwijzen",
"Remove %(name)s from the directory?": "Verwijder %(name)s uit de kamer lijst?",
"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",
"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",
@ -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",
"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",
"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",
"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",

View File

@ -9,7 +9,7 @@
"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",
"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?",
"Direct Chat": "Conversa pessoal",
"Directory": "Diretório",
@ -43,7 +43,7 @@
"Forget": "Esquecer",
" from room": " da sala",
"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",
"Keywords": "Palavras-chave",
"Leave": "Sair",
@ -69,7 +69,7 @@
"Reject": "Rejeitar",
"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 from Directory": "Remover da lista pública de salas",
"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",
@ -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",
"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",
"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",
"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",

View File

@ -10,7 +10,7 @@
"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",
"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?",
"Direct Chat": "Conversa pessoal",
"Directory": "Diretório",
@ -42,9 +42,10 @@
"Files": "Arquivos",
"Filter room names": "Filtrar salas por título",
"Forget": "Esquecer",
"Forward Message": "Encaminhar",
" from room": " da sala",
"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",
"Keywords": "Palavras-chave",
"Leave": "Sair",
@ -76,7 +77,7 @@
"Reject": "Rejeitar",
"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 from Directory": "Remover da lista pública de salas",
"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",
@ -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",
"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",
"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",
"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",

View File

@ -7,7 +7,7 @@
"Create new room": "Создать комнату",
"Couldn't find a matching Matrix room": "Не возможно найти подходящую Матрикс комнату",
"Custom Server Options": "Настройки пользовательского сервера",
"delete the alias": "удалить привязку",
"delete the alias.": "удалить привязку.",
"Delete the room alias": "Удалить привязку комнаты",
"Direct Chat": "Персональное сообщение",
"Directory": "Каталог",
@ -39,7 +39,7 @@
"from the directory": "из каталога",
" from room": " из комнаты",
"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": "Пригласить в эту комнату",
"Keywords": "Ключевые слова",
"Leave": "Покинуть",
@ -70,7 +70,7 @@
"The Home Server may be too old to support third party networks": "Пользовательский сервер может быть слишком старым для поддержки сторонних сетей",
"There are advanced notifications which are not shown here": "Здесь расширенные уведомления, которые здесь не показаны",
"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": " к комнате",
"Unable to fetch notification target list": "Не удалось получить список целей уведомления",
"Unable to join network": "Не возможно присоединиться к сети",
@ -112,7 +112,7 @@
"Quote": "Цитата",
"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 из каталога.",
"Resend": "Переслать снова",
"Source URL": "Исходный URL",
"Welcome page": "Домашняя страница",

View File

@ -13,7 +13,7 @@
"Couldn't find a matching Matrix room": "Kunde inte hitta ett matchande Matrix-rum",
"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.",
"delete the alias": "radera adressen",
"delete the alias.": "radera adressen.",
"Direct Chat": "Direkt chatt",
"Directory": "Katalog",
"Dismiss": "Avvisa",

View File

@ -36,7 +36,7 @@
</head>
<body style="height: 100%;">
<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++) {
// Not a particularly graceful way of not putting the indexeddb worker script
// into the main page

View File

@ -245,13 +245,13 @@ async function loadApp() {
if (!preventRedirect) {
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";
return;
}
}
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";
return;
}
@ -278,7 +278,6 @@ async function loadApp() {
</div>, document.getElementById('matrixchat'));
} else if (validBrowser) {
UpdateChecker.start();
const MatrixChat = sdk.getComponent('structures.MatrixChat');
window.matrixChat = ReactDOM.render(
<MatrixChat

View File

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

View File

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

View File

@ -20,6 +20,7 @@ limitations under the License.
import VectorBasePlatform from './VectorBasePlatform';
import request from 'browser-request';
import dis from 'matrix-react-sdk/lib/dispatcher.js';
import { _t } from 'matrix-react-sdk/lib/languageHandler';
import q from 'q';
import url from 'url';
@ -32,7 +33,7 @@ export default class WebPlatform extends VectorBasePlatform {
}
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 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 {
// it won't work at all if you're not on HTTPS so whine whine whine
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;
}

View File

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