Merge pull request #4122 from vector-im/kegan/translation-macaque
Finish translations for vector-im/riot-web
This commit is contained in:
commit
6f9d94f72f
|
@ -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>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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}
|
||||||
|
|
|
@ -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}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
|
|
|
@ -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>
|
||||||
);
|
);
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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}>
|
||||||
|
|
|
@ -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>
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,15 +1,19 @@
|
||||||
{
|
{
|
||||||
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s on %(osName)s",
|
"%(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 app version information": "Collecting app version information",
|
||||||
|
@ -20,6 +24,7 @@
|
||||||
"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",
|
||||||
|
@ -44,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",
|
||||||
|
@ -51,13 +57,16 @@
|
||||||
"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",
|
||||||
"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",
|
||||||
|
@ -80,6 +89,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",
|
||||||
|
@ -90,6 +101,7 @@
|
||||||
"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)": "Riot Desktop on %(platformName)",
|
"Riot Desktop on %(platformName)": "Riot Desktop on %(platformName)",
|
||||||
"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",
|
||||||
|
@ -97,7 +109,11 @@
|
||||||
"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.",
|
||||||
|
@ -105,25 +121,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": "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",
|
"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 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",
|
"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",
|
"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",
|
||||||
|
|
Loading…
Reference in New Issue