Merge branch 'develop' of github.com:vector-im/riot-web into t3chguy/devtools-118247
This commit is contained in:
commit
1f3321fb37
|
@ -3,7 +3,10 @@ dist: trusty
|
|||
|
||||
# we don't need sudo, so can run in a container, which makes startup much
|
||||
# quicker.
|
||||
sudo: false
|
||||
#
|
||||
# unfortunately we do temporarily require sudo as a workaround for
|
||||
# https://github.com/travis-ci/travis-ci/issues/8836
|
||||
sudo: required
|
||||
|
||||
language: node_js
|
||||
node_js:
|
||||
|
|
38
README.md
38
README.md
|
@ -319,31 +319,51 @@ For a developer guide, see the [translating dev doc](docs/translating-dev.md).
|
|||
Triaging issues
|
||||
===============
|
||||
|
||||
Issues will be triaged by the core team using the following primary set of tags:
|
||||
Issues will be triaged by the core team using the below set of tags.
|
||||
|
||||
priority:
|
||||
Tags are meant to be used in combination - e.g.:
|
||||
* P1 critical bug == really urgent stuff that should be next in the bugfixing todo list
|
||||
* "release blocker" == stuff which is blocking us from cutting the next release.
|
||||
* P1 feature type:voip == what VoIP features should we be working on next?
|
||||
|
||||
* P1: top priority; typically blocks releases
|
||||
priority: **compulsory**
|
||||
|
||||
* P1: top priority - i.e. pool of stuff which we should be working on next
|
||||
* P2: still need to fix, but lower than P1
|
||||
* P3: non-urgent
|
||||
* P4: intereseting idea - bluesky some day
|
||||
* P4: interesting idea - bluesky some day
|
||||
* P5: recorded for posterity/to avoid duplicates. No intention to resolves right now.
|
||||
|
||||
bug or feature:
|
||||
bug or feature: **compulsory**
|
||||
|
||||
* bug
|
||||
* feature
|
||||
|
||||
bug severity:
|
||||
bug severity: **compulsory, if bug**
|
||||
|
||||
* cosmetic - feature works functionally but UI/UX is broken
|
||||
* critical - whole app doesn't work
|
||||
* major - entire feature doesn't work
|
||||
* minor - partially broken feature (but still usable)
|
||||
* cosmetic - feature works functionally but UI/UX is broken
|
||||
|
||||
additional categories:
|
||||
types
|
||||
* type:* - refers to a particular part of the app; used to filter bugs
|
||||
on a given topic - e.g. VOIP, signup, timeline, etc.
|
||||
|
||||
additional categories (self-explanatory):
|
||||
|
||||
* release blocker
|
||||
* ui/ux (think of this as cosmetic)
|
||||
* network (specific to network conditions)
|
||||
* platform (platform specific)
|
||||
* platform specific
|
||||
* accessibility
|
||||
* maintenance
|
||||
* performance
|
||||
* i18n
|
||||
* blocked - whether this issue currently can't be progressed due to outside factors
|
||||
|
||||
community engagement
|
||||
* easy
|
||||
* hacktoberfest
|
||||
* bounty? - proposal to be included in a bounty programme
|
||||
* bounty - included in Status Open Bounty
|
||||
|
|
|
@ -74,8 +74,7 @@
|
|||
"pako": "^1.0.5",
|
||||
"prop-types": "^15.5.10",
|
||||
"react": "^15.6.0",
|
||||
"react-dnd": "^2.1.4",
|
||||
"react-dnd-html5-backend": "^2.1.2",
|
||||
"react-beautiful-dnd": "^4.0.1",
|
||||
"react-dom": "^15.6.0",
|
||||
"react-gemini-scrollbar": "matrix-org/react-gemini-scrollbar#5e97aef",
|
||||
"sanitize-html": "^1.11.1",
|
||||
|
|
|
@ -20,8 +20,8 @@ limitations under the License.
|
|||
var React = require('react');
|
||||
var ReactDOM = require('react-dom');
|
||||
var classNames = require('classnames');
|
||||
var DropTarget = require('react-dnd').DropTarget;
|
||||
var sdk = require('matrix-react-sdk');
|
||||
import { Droppable } from 'react-beautiful-dnd';
|
||||
import { _t } from 'matrix-react-sdk/lib/languageHandler';
|
||||
var dis = require('matrix-react-sdk/lib/dispatcher');
|
||||
var Unread = require('matrix-react-sdk/lib/Unread');
|
||||
|
@ -32,6 +32,7 @@ var AccessibleButton = require('matrix-react-sdk/lib/components/views/elements/A
|
|||
import Modal from 'matrix-react-sdk/lib/Modal';
|
||||
import { KeyCode } from 'matrix-react-sdk/lib/Keyboard';
|
||||
|
||||
|
||||
// turn this on for drop & drag console debugging galore
|
||||
var debug = false;
|
||||
|
||||
|
@ -326,9 +327,7 @@ var RoomSubList = React.createClass({
|
|||
});
|
||||
},
|
||||
|
||||
calcManualOrderTagData: function(room) {
|
||||
const index = this.state.sortedList.indexOf(room);
|
||||
|
||||
calcManualOrderTagData: function(index) {
|
||||
// we sort rooms by the lexicographic ordering of the 'order' metadata on their tags.
|
||||
// for convenience, we calculate this for now a floating point number between 0.0 and 1.0.
|
||||
|
||||
|
@ -375,12 +374,14 @@ var RoomSubList = React.createClass({
|
|||
makeRoomTiles: function() {
|
||||
var self = this;
|
||||
var DNDRoomTile = sdk.getComponent("rooms.DNDRoomTile");
|
||||
return this.state.sortedList.map(function(room) {
|
||||
return this.state.sortedList.map(function(room, index) {
|
||||
// XXX: is it evil to pass in self as a prop to RoomTile?
|
||||
return (
|
||||
<DNDRoomTile
|
||||
index={index} // For DND
|
||||
room={ room }
|
||||
roomSubList={ self }
|
||||
tagName={self.props.tagName}
|
||||
key={ room.roomId }
|
||||
collapsed={ self.props.collapsed || false}
|
||||
unread={ Unread.doesRoomHaveUnreadMessages(room) }
|
||||
|
@ -566,12 +567,18 @@ var RoomSubList = React.createClass({
|
|||
</TruncatedList>;
|
||||
}
|
||||
|
||||
return connectDropTarget(
|
||||
<div>
|
||||
{ this._getHeaderJsx() }
|
||||
{ subList }
|
||||
</div>
|
||||
);
|
||||
const subListContent = <div>
|
||||
{ this._getHeaderJsx() }
|
||||
{ subList }
|
||||
</div>;
|
||||
|
||||
return this.props.editable ? <Droppable droppableId={"room-sub-list-droppable_" + this.props.tagName}>
|
||||
{ (provided, snapshot) => (
|
||||
<div ref={provided.innerRef}>
|
||||
{ subListContent }
|
||||
</div>
|
||||
) }
|
||||
</Droppable> : subListContent;
|
||||
}
|
||||
else {
|
||||
var Loader = sdk.getComponent("elements.Spinner");
|
||||
|
@ -585,11 +592,4 @@ var RoomSubList = React.createClass({
|
|||
}
|
||||
});
|
||||
|
||||
// Export the wrapped version, inlining the 'collect' functions
|
||||
// to more closely resemble the ES7
|
||||
module.exports =
|
||||
DropTarget('RoomTile', roomListTarget, function(connect) {
|
||||
return {
|
||||
connectDropTarget: connect.dropTarget(),
|
||||
}
|
||||
})(RoomSubList);
|
||||
module.exports = RoomSubList;
|
||||
|
|
|
@ -275,7 +275,7 @@ module.exports = React.createClass({
|
|||
<div className={ alertMeClasses } onClick={this._onClickAlertMe} >
|
||||
<img className="mx_RoomTileContextMenu_notif_activeIcon" src="img/notif-active.svg" width="12" height="12" />
|
||||
<img className="mx_RoomTileContextMenu_notif_icon mx_filterFlipColor" src="img/icon-context-mute-off-copy.svg" width="16" height="12" />
|
||||
{ _t('All messages (loud)') }
|
||||
{ _t('All messages (noisy)') }
|
||||
</div>
|
||||
<div className={ allNotifsClasses } onClick={this._onClickAllNotifs} >
|
||||
<img className="mx_RoomTileContextMenu_notif_activeIcon" src="img/notif-active.svg" width="12" height="12" />
|
||||
|
|
|
@ -14,227 +14,51 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import React from 'react';
|
||||
import {DragSource} from 'react-dnd';
|
||||
import {DropTarget} from 'react-dnd';
|
||||
|
||||
import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg';
|
||||
import sdk from 'matrix-react-sdk';
|
||||
import { _t } from 'matrix-react-sdk/lib/languageHandler';
|
||||
import { Draggable } from 'react-beautiful-dnd';
|
||||
import RoomTile from 'matrix-react-sdk/lib/components/views/rooms/RoomTile';
|
||||
import * as Rooms from 'matrix-react-sdk/lib/Rooms';
|
||||
import Modal from 'matrix-react-sdk/lib/Modal';
|
||||
|
||||
/**
|
||||
* Defines a new Component, DNDRoomTile that wraps RoomTile, making it draggable.
|
||||
* Requires extra props:
|
||||
* roomSubList: React.PropTypes.object.isRequired,
|
||||
* refreshSubList: React.PropTypes.func.isRequired,
|
||||
*/
|
||||
import classNames from 'classnames';
|
||||
|
||||
/**
|
||||
* Specifies the drag source contract.
|
||||
* Only `beginDrag` function is required.
|
||||
*/
|
||||
var roomTileSource = {
|
||||
canDrag: function(props, monitor) {
|
||||
return props.roomSubList.props.editable;
|
||||
},
|
||||
|
||||
beginDrag: function (props) {
|
||||
// Return the data describing the dragged item
|
||||
var item = {
|
||||
room: props.room,
|
||||
originalList: props.roomSubList,
|
||||
originalIndex: props.roomSubList.findRoomTile(props.room).index,
|
||||
targetList: props.roomSubList, // at first target is same as original
|
||||
// lastTargetRoom: null,
|
||||
// lastYOffset: null,
|
||||
// lastYDelta: null,
|
||||
};
|
||||
|
||||
if (props.roomSubList.debug) console.log("roomTile beginDrag for " + item.room.roomId);
|
||||
|
||||
// doing this 'correctly' with state causes react-dnd to break seemingly due to the state transitions
|
||||
props.room._dragging = true;
|
||||
|
||||
return item;
|
||||
},
|
||||
|
||||
endDrag: function (props, monitor, component) {
|
||||
var item = monitor.getItem();
|
||||
|
||||
if (props.roomSubList.debug) console.log("roomTile endDrag for " + item.room.roomId + " with didDrop=" + monitor.didDrop());
|
||||
|
||||
props.room._dragging = false;
|
||||
if (monitor.didDrop()) {
|
||||
if (props.roomSubList.debug) console.log("force updating component " + item.targetList.props.label);
|
||||
item.targetList.forceUpdate(); // as we're not using state
|
||||
}
|
||||
|
||||
const prevTag = item.originalList.props.tagName;
|
||||
const newTag = item.targetList.props.tagName;
|
||||
|
||||
if (monitor.didDrop() && item.targetList.props.editable) {
|
||||
// Evil hack to get DMs behaving
|
||||
if ((prevTag === undefined && newTag === 'im.vector.fake.direct') ||
|
||||
(prevTag === 'im.vector.fake.direct' && newTag === undefined)
|
||||
) {
|
||||
Rooms.guessAndSetDMRoom(
|
||||
item.room, newTag === 'im.vector.fake.direct',
|
||||
).done(() => {
|
||||
item.originalList.removeRoomTile(item.room);
|
||||
}, (err) => {
|
||||
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
|
||||
console.error("Failed to set direct chat tag " + err);
|
||||
Modal.createTrackedDialog('Failed to set direct chat tag', '', ErrorDialog, {
|
||||
title: _t('Failed to set direct chat tag'),
|
||||
description: ((err && err.message) ? err.message : _t('Operation failed')),
|
||||
});
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// More evilness: We will still be dealing with moving to favourites/low prio,
|
||||
// but we avoid ever doing a request with 'im.vector.fake.direct`.
|
||||
|
||||
// if we moved lists, remove the old tag
|
||||
if (prevTag && prevTag !== 'im.vector.fake.direct' &&
|
||||
item.targetList !== item.originalList
|
||||
) {
|
||||
// commented out attempts to set a spinner on our target component as component is actually
|
||||
// the original source component being dragged, not our target. To fix we just need to
|
||||
// move all of this to endDrop in the target instead. FIXME later.
|
||||
|
||||
//component.state.set({ spinner: component.state.spinner ? component.state.spinner++ : 1 });
|
||||
MatrixClientPeg.get().deleteRoomTag(item.room.roomId, prevTag).finally(function() {
|
||||
//component.state.set({ spinner: component.state.spinner-- });
|
||||
}).catch(function(err) {
|
||||
var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
|
||||
console.error("Failed to remove tag " + prevTag + " from room: " + err);
|
||||
Modal.createTrackedDialog('Failed to remove tag from room', '', ErrorDialog, {
|
||||
title: _t('Failed to remove tag %(tagName)s from room', {tagName: prevTag}),
|
||||
description: ((err && err.message) ? err.message : _t('Operation failed')),
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
var newOrder= {};
|
||||
if (item.targetList.props.order === 'manual') {
|
||||
newOrder['order'] = item.targetList.calcManualOrderTagData(item.room);
|
||||
}
|
||||
|
||||
// if we moved lists or the ordering changed, add the new tag
|
||||
if (newTag && newTag !== 'im.vector.fake.direct' &&
|
||||
(item.targetList !== item.originalList || newOrder)
|
||||
) {
|
||||
MatrixClientPeg.get().setRoomTag(item.room.roomId, newTag, newOrder).catch(function(err) {
|
||||
var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
|
||||
console.error("Failed to add tag " + newTag + " to room: " + err);
|
||||
Modal.createTrackedDialog('Failed to add tag to room', '', ErrorDialog, {
|
||||
title: _t('Failed to add tag %(tagName)s to room', {tagName: newTag}),
|
||||
description: ((err && err.message) ? err.message : _t('Operation failed')),
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
else {
|
||||
// cancel the drop and reset our original position
|
||||
if (props.roomSubList.debug) console.log("cancelling drop & drag");
|
||||
props.roomSubList.moveRoomTile(item.room, item.originalIndex);
|
||||
if (item.targetList && item.targetList !== item.originalList) {
|
||||
item.targetList.removeRoomTile(item.room);
|
||||
}
|
||||
}
|
||||
export default class DNDRoomTile extends React.Component {
|
||||
constructor() {
|
||||
super();
|
||||
this.getClassName = this.getClassName.bind(this);
|
||||
}
|
||||
};
|
||||
|
||||
var roomTileTarget = {
|
||||
canDrop: function() {
|
||||
return false;
|
||||
},
|
||||
|
||||
hover: function(props, monitor) {
|
||||
var item = monitor.getItem();
|
||||
//var off = monitor.getClientOffset();
|
||||
// console.log("hovering on room " + props.room.roomId + ", isOver=" + monitor.isOver());
|
||||
|
||||
//console.log("item.targetList=" + item.targetList + ", roomSubList=" + props.roomSubList);
|
||||
|
||||
var switchedTarget = false;
|
||||
if (item.targetList !== props.roomSubList) {
|
||||
// we've switched target, so remove the tile from the previous target.
|
||||
// n.b. the previous target might actually be the source list.
|
||||
if (props.roomSubList.debug) console.log("switched target sublist");
|
||||
switchedTarget = true;
|
||||
item.targetList.removeRoomTile(item.room);
|
||||
item.targetList = props.roomSubList;
|
||||
}
|
||||
|
||||
if (!item.targetList.props.editable) return;
|
||||
|
||||
if (item.targetList.props.order === 'manual') {
|
||||
if (item.room.roomId !== props.room.roomId && props.room !== item.lastTargetRoom) {
|
||||
// find the offset of the target tile in the list.
|
||||
var roomTile = props.roomSubList.findRoomTile(props.room);
|
||||
// shuffle the list to add our tile to that position.
|
||||
props.roomSubList.moveRoomTile(item.room, roomTile.index);
|
||||
}
|
||||
|
||||
// stop us from flickering between our droptarget and the previous room.
|
||||
// whenever the cursor changes direction we have to reset the flicker-damping.
|
||||
/*
|
||||
var yDelta = off.y - item.lastYOffset;
|
||||
|
||||
if ((yDelta > 0 && item.lastYDelta < 0) ||
|
||||
(yDelta < 0 && item.lastYDelta > 0))
|
||||
{
|
||||
// the cursor changed direction - forget our previous room
|
||||
item.lastTargetRoom = null;
|
||||
}
|
||||
else {
|
||||
// track the last room we were hovering over so we can stop
|
||||
// bouncing back and forth if the droptarget is narrower than
|
||||
// the other list items. The other way to do this would be
|
||||
// to reduce the size of the hittarget on the list items, but
|
||||
// can't see an easy way to do that.
|
||||
item.lastTargetRoom = props.room;
|
||||
}
|
||||
|
||||
if (yDelta) item.lastYDelta = yDelta;
|
||||
item.lastYOffset = off.y;
|
||||
*/
|
||||
}
|
||||
else if (switchedTarget) {
|
||||
if (!props.roomSubList.findRoomTile(item.room).room) {
|
||||
// add to the list in the right place
|
||||
props.roomSubList.moveRoomTile(item.room, 0);
|
||||
}
|
||||
// we have to sort the list whatever to recalculate it
|
||||
props.roomSubList.sortList();
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
// Export the wrapped version, inlining the 'collect' functions
|
||||
// to more closely resemble the ES7
|
||||
module.exports =
|
||||
DropTarget('RoomTile', roomTileTarget, function(connect, monitor) {
|
||||
return {
|
||||
// Call this function inside render()
|
||||
// to let React DnD handle the drag events:
|
||||
connectDropTarget: connect.dropTarget(),
|
||||
isOver: monitor.isOver(),
|
||||
getClassName(isDragging) {
|
||||
return classNames({
|
||||
"mx_DNDRoomTile": true,
|
||||
"mx_DNDRoomTile_dragging": isDragging,
|
||||
});
|
||||
}
|
||||
})(
|
||||
DragSource('RoomTile', roomTileSource, function(connect, monitor) {
|
||||
return {
|
||||
// Call this function inside render()
|
||||
// to let React DnD handle the drag events:
|
||||
connectDragSource: connect.dragSource(),
|
||||
// You can ask the monitor about the current drag state:
|
||||
isDragging: monitor.isDragging()
|
||||
};
|
||||
})(RoomTile));
|
||||
|
||||
render() {
|
||||
const props = this.props;
|
||||
|
||||
return <div>
|
||||
<Draggable
|
||||
key={props.room.roomId}
|
||||
draggableId={props.tagName + '_' + props.room.roomId}
|
||||
index={props.index}
|
||||
>
|
||||
{ (provided, snapshot) => {
|
||||
return (
|
||||
<div>
|
||||
<div
|
||||
ref={provided.innerRef}
|
||||
{...provided.draggableProps}
|
||||
{...provided.dragHandleProps}
|
||||
>
|
||||
<div className={this.getClassName(snapshot.isDragging)}>
|
||||
<RoomTile {...props} />
|
||||
</div>
|
||||
</div>
|
||||
{ provided.placeholder }
|
||||
</div>
|
||||
);
|
||||
} }
|
||||
</Draggable>
|
||||
</div>;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
"All Rooms": "كل الغُرف",
|
||||
"<a href=\"http://apple.com/safari\">Safari</a> and <a href=\"http://opera.com\">Opera</a> work too.": "<a href=\"http://apple.com/safari\">متصفح سافاري</a> و <a href=\"http://opera.com\">متصفح أوبرا</a> يعملان أيضاً.",
|
||||
"Add an email address above to configure email notifications": "أضف بريداً إلكترونياً أعلاه من أجل تعديل إعدادت تنبيهات البريد الإلكتروني",
|
||||
"All messages (loud)": "كل الرسائل (صوت مرتفع)",
|
||||
"All messages (noisy)": "كل الرسائل (صوت مرتفع)",
|
||||
"All notifications are currently disabled for all targets.": "كل التنبيهات غير مفعلة حالياً للجميع.",
|
||||
"An error occurred whilst saving your email notification preferences.": "حدث خطأ ما خلال حفظ إعدادات التنبيهات للبريد الإلكتروني.",
|
||||
"Call invitation": "دعوة لمحادثة",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"Add an email address above to configure email notifications": "Дадайце адрас электроннай пошты вышэй, каб наладзіць апавяшчэнні",
|
||||
"All messages": "Усе паведамленні",
|
||||
"All messages (loud)": "Усе паведамленні (гучна)",
|
||||
"All messages (noisy)": "Усе паведамленні (гучна)",
|
||||
"All notifications are currently disabled for all targets.": "Усе апавяшчэнні ў цяперашні час адключаныя для ўсіх мэтаў.",
|
||||
"An error occurred whilst saving your email notification preferences.": "Адбылася памылка падчас захавання налады апавяшчэнняў па электроннай пошце.",
|
||||
"Cancel Sending": "Адмяніць адпраўку",
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
"Failed to remove tag %(tagName)s from room": "No s'ha pogut esborrar l'etiqueta %(tagName)s de la sala",
|
||||
"Filter room names": "Filtra els noms de les sales",
|
||||
"Couldn't load home page": "No s'ha pogut carregar la pàgina d'inici",
|
||||
"All messages (loud)": "Tots els missatges (sorollós)",
|
||||
"All messages (noisy)": "Tots els missatges (sorollós)",
|
||||
"Mentions only": "Només mencions",
|
||||
"Mute": "Silenciat",
|
||||
"Direct Chat": "Xat directe",
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
"Messages sent by bot": "Zprávy poslané robotem",
|
||||
"more": "více",
|
||||
"Mute": "Ztlumit",
|
||||
"All messages (loud)": "Všechny zprávy (hlasitě)",
|
||||
"All messages (noisy)": "Všechny zprávy (hlasitě)",
|
||||
"Couldn't load home page": "Nepodařilo se nahrát úvodní stránku",
|
||||
"All notifications are currently disabled for all targets.": "Veškeré notifikace jsou aktuálně pro všechny cíle vypnuty.",
|
||||
"Cancel Sending": "Zrušit odesílání",
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
"On": "An",
|
||||
"You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Du hast sie eventuell auf einem anderen Matrix-Client und nicht in Riot konfiguriert. Sie können in Riot nicht verändert werden, gelten aber trotzdem",
|
||||
"All messages": "Alle Nachrichten",
|
||||
"All messages (loud)": "Alle Nachrichten (laut)",
|
||||
"All messages (noisy)": "Alle Nachrichten (laut)",
|
||||
"Cancel Sending": "Senden abbrechen",
|
||||
"Close": "Schließen",
|
||||
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "Soll der Raum-Alias %(alias)s gelöscht und der %(name)s aus dem Verzeichnis entfernt werden?",
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
"Collecting app version information": "Συγκέντρωση πληροφοριών σχετικά με την έκδοση της εφαρμογής",
|
||||
"customServer_text": "Μπορείτε να χρησιμοποιήσετε τις προσαρμοσμένες ρυθμίσεις για να εισέλθετε σε άλλους διακομιστές Matrix επιλέγοντας μια διαφορετική διεύθυνση για το διακομιστή.<br/> Αυτό σας επιτρέπει να χρησιμοποιήσετε την εφαρμογή Riot με έναν υπάρχοντα λογαριασμό σε διαφορετικό διακομιστή.<br/><br/>Επίσης μπορείτε να επιλέξετε ένα διαφορετικό διακομιστή ταυτότητας αλλά δεν θα έχετε τη δυνατότητα να προσκαλέσετε άλλους χρήστες ή να σας προσκαλέσουν μέσω μηνυμάτων ηλεκτρονικής αλληλογραφίας.",
|
||||
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s μέσω %(browserName)s σε %(osName)s",
|
||||
"All messages (loud)": "Όλα τα μηνύματα (δυνατά)",
|
||||
"All messages (noisy)": "Όλα τα μηνύματα (δυνατά)",
|
||||
"delete the alias.": "διέγραψε το ψευδώνυμο.",
|
||||
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "Διαγραφή του ψευδώνυμου %(alias)s και αφαίρεση του %(name)s από το ευρετήριο;",
|
||||
"Dismiss": "Απόρριψη",
|
||||
|
|
|
@ -137,7 +137,7 @@
|
|||
"Failed to set Direct Message status of room": "Failed to set Direct Message status of room",
|
||||
"unknown error code": "unknown error code",
|
||||
"Failed to forget room %(errCode)s": "Failed to forget room %(errCode)s",
|
||||
"All messages (loud)": "All messages (loud)",
|
||||
"All messages (noisy)": "All messages (noisy)",
|
||||
"All messages": "All messages",
|
||||
"Mentions only": "Mentions only",
|
||||
"Mute": "Mute",
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"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 messages (noisy)": "All messages (noisy)",
|
||||
"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 while saving your email notification preferences.",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"A new version of Riot is available.": "Nova versio de \"Riot\" haveblas.",
|
||||
"All messages": "Ĉiuj mesaĝoj",
|
||||
"All messages (loud)": "Ĉiuj mesaĝoj (lauta)",
|
||||
"All messages (noisy)": "Ĉiuj mesaĝoj (lauta)",
|
||||
"All Rooms": "Ĉiuj babilejoj",
|
||||
"Cancel": "Nuligi",
|
||||
"delete the alias.": "Forviŝi la kromnomon.",
|
||||
|
|
|
@ -135,7 +135,7 @@
|
|||
"You have successfully set a password and an email address!": "¡Ha establecido exitosamente la contraseña y la dirección de email!",
|
||||
"You have successfully set a password!": "¡Ha establecido exitosamente una contraseña!",
|
||||
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s en %(osName)s",
|
||||
"All messages (loud)": "Todos los mensajes (ruidoso)",
|
||||
"All messages (noisy)": "Todos los mensajes (ruidoso)",
|
||||
"All notifications are currently disabled for all targets.": "Las notificaciones estan desactivadas para todos los objetivos.",
|
||||
"Collecting app version information": "Recolectando información de la versión de la aplicación",
|
||||
"Collecting logs": "Recolectando registros",
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"Add an email address above to configure email notifications": "Gehitu e-mail helbide bat goian e-mail bidezko jakinarazpenak konfiguratzeko",
|
||||
"Advanced notification settings": "Jakinarazpen aurreratuen ezarpenak",
|
||||
"All messages": "Mezu guztiak",
|
||||
"All messages (loud)": "Mezu guztiak (ozen)",
|
||||
"All messages (noisy)": "Mezu guztiak (ozen)",
|
||||
"All Rooms": "Gela guztiak",
|
||||
"All notifications are currently disabled for all targets.": "Une honetan jakinarazpen guztiak helburu guztietarako desgaituta daude.",
|
||||
"An error occurred whilst saving your email notification preferences.": "Errore bat gertatu da zure e-mail bidezko jakinarazpenen hobespenak gordetzean.",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"A new version of Riot is available.": "نسخهی جدید از رایوت موجود است.",
|
||||
"All messages": "همهی پیامها",
|
||||
"All messages (loud)": "همهی پیامها(بلند)",
|
||||
"All messages (noisy)": "همهی پیامها(بلند)",
|
||||
"All Rooms": "همهی گپها",
|
||||
"Cancel Sending": "فرستادن را لغو کن",
|
||||
"Changelog": "تغییراتِ بهوجودآمده",
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"Add an email address above to configure email notifications": "Lisää sähköpostiosoite yllä saadaksesi ilmoituksia sähköpostiisi",
|
||||
"Advanced notification settings": "Lisäasetukset ilmoituksille",
|
||||
"All messages": "Kaikki viestit",
|
||||
"All messages (loud)": "Kaikki viestit (äänekkäästi)",
|
||||
"All messages (noisy)": "Kaikki viestit (äänekkäästi)",
|
||||
"All Rooms": "Kaikki huoneet",
|
||||
"All notifications are currently disabled for all targets.": "Kaikki ilmoitukset on kytketty pois kaikilta kohteilta.",
|
||||
"An error occurred whilst saving your email notification preferences.": "Sähköposti-ilmoitusasetuksia tallettaessa tapahtui virhe.",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"Add an email address above to configure email notifications": "Ajouter une adresse e-mail pour la configuration des notifications par e-mail",
|
||||
"All messages": "Tous les messages",
|
||||
"All messages (loud)": "Tous les messages (fort)",
|
||||
"All messages (noisy)": "Tous les messages (fort)",
|
||||
"All notifications are currently disabled for all targets.": "Toutes les notifications sont désactivées pour tous les appareils.",
|
||||
"An error occurred whilst saving your email notification preferences.": "Une erreur est survenue lors de la sauvegarde de vos préférences de notification par e-mail.",
|
||||
"Cancel Sending": "Annuler l'envoi",
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"Add an email address above to configure email notifications": "Engada un enderezo de correo electrónico para configurar as notificacións",
|
||||
"Advanced notification settings": "Axustes avanzados de notificación",
|
||||
"All messages": "Todas as mensaxes",
|
||||
"All messages (loud)": "Todas as mensaxes (alto)",
|
||||
"All messages (noisy)": "Todas as mensaxes (alto)",
|
||||
"All Rooms": "Todas as Salas",
|
||||
"All notifications are currently disabled for all targets.": "Todas as notificacións están deshabilitadas para todos os destinos.",
|
||||
"An error occurred whilst saving your email notification preferences.": "Algo fallou mentras se gardaban as súas preferencias de notificaicón.",
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"Add an email address above to configure email notifications": "הוסף כתובת דואר אלקטורני למעלה בכדי להגדיר התראות",
|
||||
"Advanced notification settings": "הגדרות מתקדמות להתראות",
|
||||
"All messages": "כל ההודעות",
|
||||
"All messages (loud)": "כל ההודעות (צעקה)",
|
||||
"All messages (noisy)": "כל ההודעות (צעקה)",
|
||||
"All Rooms": "כל החדרים",
|
||||
"All notifications are currently disabled for all targets.": "התראות מנוטרלות לכלל המערכת.",
|
||||
"An error occurred whilst saving your email notification preferences.": "קרתה שגיאה בזמן שמירת הגדרות התראה באמצעות הדואר האלקטרוני.",
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"Add an email address above to configure email notifications": "E-mail értesítés beállításához írd be az e-mail címed",
|
||||
"Advanced notification settings": "Haladó értesítési beállítások",
|
||||
"All messages": "Minden üzenet",
|
||||
"All messages (loud)": "Minden üzenet (hangos)",
|
||||
"All messages (noisy)": "Minden üzenet (hangos)",
|
||||
"All notifications are currently disabled for all targets.": "Minden céleszközön minden értesítés tiltva van.",
|
||||
"An error occurred whilst saving your email notification preferences.": "Hiba történt az e-mail értesítés beállításánál.",
|
||||
"Call invitation": "Hívás meghívó",
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"Add an email address above to configure email notifications": "Tambahkan alamat email di atas untuk konfigurasi notifikasi email",
|
||||
"Advanced notification settings": "Pengaturan notifikasi lanjutan",
|
||||
"All messages": "Semua pesan",
|
||||
"All messages (loud)": "Semua pesan (keras)",
|
||||
"All messages (noisy)": "Semua pesan (keras)",
|
||||
"All Rooms": "Semua Ruang",
|
||||
"All notifications are currently disabled for all targets.": "Semua notifikasi saat ini dinonaktifkan untuk semua target.",
|
||||
"An error occurred whilst saving your email notification preferences.": "Terjadi kesalahan saat menyimpan preferensi notifikasi email Anda.",
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"Add an email address above to configure email notifications": "Aggiungi un indirizzo email sopra per configurare le notifiche via email",
|
||||
"Advanced notification settings": "Impostazioni di notifica avanzate",
|
||||
"All messages": "Tutti i messaggi",
|
||||
"All messages (loud)": "Tutti i messaggi (rumoroso)",
|
||||
"All messages (noisy)": "Tutti i messaggi (rumoroso)",
|
||||
"All Rooms": "Tutte le stanze",
|
||||
"An error occurred whilst saving your email notification preferences.": "Si è verificato un errore durante il salvataggio delle tue preferenze sulle notifiche email.",
|
||||
"Call invitation": "Invito ad una chiamata",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"All messages": "全ての発言",
|
||||
"All messages (loud)": "全ての発言(通知音あり)",
|
||||
"All messages (noisy)": "全ての発言(通知音あり)",
|
||||
"Cancel": "取消",
|
||||
"Close": "閉じる",
|
||||
"Direct Chat": "対話",
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"Add an email address above to configure email notifications": "이메일 알림을 설정하기 위해 이메일 주소를 추가해주세요",
|
||||
"Advanced notification settings": "고급 알림 설정",
|
||||
"All messages": "모든 메시지",
|
||||
"All messages (loud)": "모든 메시지 (크게)",
|
||||
"All messages (noisy)": "모든 메시지 (크게)",
|
||||
"All Rooms": "모든 방",
|
||||
"All notifications are currently disabled for all targets.": "현재 모든 알림이 모든 상대에게서 꺼졌어요.",
|
||||
"An error occurred whilst saving your email notification preferences.": "이메일 알림을 설정하다가 오류가 일어났어요.",
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"Add an email address above to configure email notifications": "Pievieno augšā epasta adresi, lai konfigurētu epasta notifikāciju paziņojumus",
|
||||
"Advanced notification settings": "Īpašie notifikāciju uzstādījumi",
|
||||
"All messages": "Visas ziņas",
|
||||
"All messages (loud)": "Visas ziņas (skaļi)",
|
||||
"All messages (noisy)": "Visas ziņas (skaļi)",
|
||||
"All Rooms": "Visas istabas",
|
||||
"All notifications are currently disabled for all targets.": "Visi notifikāciju paziņojumi ir atspējoti visiem saņēmējiem.",
|
||||
"An error occurred whilst saving your email notification preferences.": "Radās kļūda saglabājot tavus epasta notifikāciju ziņu uzstādījumus.",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"Add an email address above to configure email notifications": "ഇ മെയില് അറിയിപ്പുകൾ ലഭിക്കാന് മുകളില് ഇ-മെയില് വിലാസം നല്കൂ",
|
||||
"All messages": "എല്ലാ സന്ദേശങ്ങളും",
|
||||
"All messages (loud)": "എല്ലാ സന്ദേശങ്ങളും (ഉച്ചത്തിൽ)",
|
||||
"All messages (noisy)": "എല്ലാ സന്ദേശങ്ങളും (ഉച്ചത്തിൽ)",
|
||||
"%(appName)s via %(browserName)s on %(osName)s": "%(osName)sല് %(browserName)s വഴി %(appName)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\">സഫാരിയിലും</a>പിന്നെ <a href=\"http://opera.com\">ഓപ്പേറയിലും</a>പ്രവര്ത്തിക്കുന്നു.",
|
||||
"A new version of Riot is available.": "റയട്ടിന്റെ ഒരു പുതിയ പതിപ്പ് ലഭ്യമാണ്.",
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"Add an email address above to configure email notifications": "Legg til en epost adresse for å sette opp epost varsling",
|
||||
"Advanced notification settings": "Avanserte varslingsinnstillinger",
|
||||
"All messages": "Alle meldinger",
|
||||
"All messages (loud)": "Alle meldinger (høy)",
|
||||
"All messages (noisy)": "Alle meldinger (høy)",
|
||||
"All notifications are currently disabled for all targets.": "Alle varsler er deaktivert for alle mottakere.",
|
||||
"An error occurred whilst saving your email notification preferences.": "En feil oppsto i forbindelse med lagring av epost varsel innstillinger.",
|
||||
"Cancel Sending": "Avbryt sending",
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"Add an email address above to configure email notifications": "Voeg een e-mailadres toe om e-mailmeldingen te ontvangen",
|
||||
"Advanced notification settings": "Geavanceerde meldingsinstellingen",
|
||||
"All messages": "Alle berichten",
|
||||
"All messages (loud)": "Alle berichten (luid)",
|
||||
"All messages (noisy)": "Alle berichten (luid)",
|
||||
"All notifications are currently disabled for all targets.": "Alle meldingen zijn momenteel uitgeschakeld voor alle doelen.",
|
||||
"An error occurred whilst saving your email notification preferences.": "Er is een fout opgetreden tijdens het opslaan van uw e-mailmeldingsvoorkeuren.",
|
||||
"Call invitation": "Oproep-uitnodiging",
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"Add an email address above to configure email notifications": "Dodaj adres e-mail powyżej, aby skonfigurować powiadomienia e-mailowe",
|
||||
"Advanced notification settings": "Zaawansowane ustawienia powiadomień",
|
||||
"All messages": "Wszystkie wiadomości",
|
||||
"All messages (loud)": "Wszystkie wiadomości (głośno)",
|
||||
"All messages (noisy)": "Wszystkie wiadomości (głośno)",
|
||||
"All Rooms": "Wszystkie pokoje",
|
||||
"All notifications are currently disabled for all targets.": "Wszystkie powiadomienia są obecnie wyłączone dla wszystkich celów.",
|
||||
"An error occurred whilst saving your email notification preferences.": "Podczas zapisywania ustawień powiadomień e-mail wystąpił błąd.",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"Add an email address above to configure email notifications": "Insira um endereço de email no campo acima para configurar as notificações por email",
|
||||
"All messages": "Todas as mensagens",
|
||||
"All messages (loud)": "Todas as mensagens (alto)",
|
||||
"All messages (noisy)": "Todas as mensagens (alto)",
|
||||
"An error occurred whilst saving your email notification preferences.": "Ocorreu um erro ao guardar as suas preferências de notificação por email.",
|
||||
"Call invitation": "Convite para chamada",
|
||||
"Cancel Sending": "Cancelar o envio",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"Add an email address above to configure email notifications": "Insira um endereço de email no campo acima para configurar suas notificações por email",
|
||||
"All messages": "Todas as mensagens",
|
||||
"All messages (loud)": "Todas as mensagens (alto)",
|
||||
"All messages (noisy)": "Todas as mensagens (alto)",
|
||||
"An error occurred whilst saving your email notification preferences.": "Um erro ocorreu enquanto o sistema estava salvando suas preferências de notificação por email.",
|
||||
"Call invitation": "Convite para chamada",
|
||||
"Cancel Sending": "Cancelar o envio",
|
||||
|
|
|
@ -63,7 +63,7 @@
|
|||
"You are not receiving desktop notifications": "Вы не получаете уведомления на рабочем столе",
|
||||
"You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Возможно вы настроили их не в Riot, а в другом Matrix-клиенте. Настроить их в Riot не удастся, но они будут в нем применяться",
|
||||
"All messages": "Все сообщения",
|
||||
"All messages (loud)": "Все сообщения (со звуком)",
|
||||
"All messages (noisy)": "Все сообщения (со звуком)",
|
||||
"Cancel Sending": "Отменить отправку",
|
||||
"Close": "Закрыть",
|
||||
"Download this file": "Скачать этот файл",
|
||||
|
|
|
@ -135,7 +135,7 @@
|
|||
"Failed to set Direct Message status of room": "Nepodarilo sa nastaviť stav miestnosti priama konverzácia",
|
||||
"unknown error code": "neznámy kód chyby",
|
||||
"Failed to forget room %(errCode)s": "Nepodarilo sa zabudnuť miestnosť %(errCode)s",
|
||||
"All messages (loud)": "Všetky správy (hlučné)",
|
||||
"All messages (noisy)": "Všetky správy (hlučné)",
|
||||
"All messages": "Všetky správy",
|
||||
"Mentions only": "Len zmienky",
|
||||
"Mute": "Umlčať",
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"Add an email address above to configure email notifications": "Lägg till en epostadress här för att konfigurera epostaviseringar",
|
||||
"Advanced notification settings": "Avancerade aviseringsinställingar",
|
||||
"All messages": "Alla meddelanden",
|
||||
"All messages (loud)": "Alla meddelanden (högljudd)",
|
||||
"All messages (noisy)": "Alla meddelanden (högljudd)",
|
||||
"All notifications are currently disabled for all targets.": "Alla aviseringar är för tillfället avstängda för alla mål.",
|
||||
"An error occurred whilst saving your email notification preferences.": "Ett fel uppstod då epostaviseringsinställningarna sparades.",
|
||||
"Call invitation": "Inbjudan till samtal",
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"Add an email address above to configure email notifications": "மின்னஞ்சல் மூலம் அறிவிப்புகளை பெற உங்கள் மின்னஞ்சல் முகவரியை மேலே இணைக்கவும்",
|
||||
"Advanced notification settings": "மேம்பட்ட அறிவிப்பிற்கான அமைப்புகள்",
|
||||
"All messages": "அனைத்து செய்திகள்",
|
||||
"All messages (loud)": "அனைத்து செய்திகள் (உரக்க)",
|
||||
"All messages (noisy)": "அனைத்து செய்திகள் (உரக்க)",
|
||||
"All Rooms": "அனைத்து அறைகள்",
|
||||
"All notifications are currently disabled for all targets.": "அனைத்து இலக்குகளுக்கான அனைத்து அறிவுப்புகளும் தற்போது முடக்கி வைக்கப்பட்டுள்ளது.",
|
||||
"An error occurred whilst saving your email notification preferences.": "உங்கள் மின்னஞ்சல் அறிவிப்பு விருப்பங்களை சேமிப்பதில் ஏதோ பிழை ஏற்பட்டுள்ளது.",
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
"Add an email address above to configure email notifications": "ఇమెయిల్ ప్రకటనలను రూపశిల్పం చేయడానికి ఎగువ ఇమెయిల్ చిరునామాను జోడించండి",
|
||||
"Advanced notification settings": "ఆధునిక తాఖీదు అమరిక",
|
||||
"All messages": "అన్ని సందేశాలు",
|
||||
"All messages (loud)": "అన్ని సందేశాలు (గట్టిగ)",
|
||||
"All messages (noisy)": "అన్ని సందేశాలు (గట్టిగ)",
|
||||
"All Rooms": "అన్ని గదులు",
|
||||
"Call invitation": "మాట్లాడడానికి ఆహ్వానం",
|
||||
"Cancel Sending": "పంపడాన్ని ఆపేయండి",
|
||||
|
|
|
@ -81,7 +81,7 @@
|
|||
"Riot is not supported on mobile web. Install the app?": "Riot ไม่รองรับเว็บบนอุปกรณ์พกพา ติดตั้งแอป?",
|
||||
"Riot does not know how to join a room on this network": "Riot ไม่รู้วิธีเข้าร่วมห้องในเครือข่ายนี้",
|
||||
"Direct Chat": "แชทโดยตรง",
|
||||
"All messages (loud)": "ทุกข้อความ (เสียงดัง)",
|
||||
"All messages (noisy)": "ทุกข้อความ (เสียงดัง)",
|
||||
"Custom Server Options": "กำหนดเซิร์ฟเวอร์เอง",
|
||||
"Directory": "ไดเรกทอรี",
|
||||
"Enable audible notifications in web client": "เปิดใช้งานเสียงแจ้งเตือนบนเว็บไคลเอนต์",
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"Add an email address above to configure email notifications": "E-posta bildirimlerini yapılandırmak için yukarıya bir e-posta adresi ekleyin",
|
||||
"Advanced notification settings": "Gelişmiş bildirim ayarları",
|
||||
"All messages": "Tüm mesajlar",
|
||||
"All messages (loud)": "Tüm mesajlar (uzun)",
|
||||
"All messages (noisy)": "Tüm mesajlar (uzun)",
|
||||
"All Rooms": "Tüm Odalar",
|
||||
"All notifications are currently disabled for all targets.": "Tüm bildirimler şu anda tüm hedefler için devre dışı bırakılmıştır.",
|
||||
"An error occurred whilst saving your email notification preferences.": "E-posta bildirim tercihlerinizi kaydetme işlemi sırasında bir hata oluştu.",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"A new version of Riot is available.": "Доступне оновлення для Riot.",
|
||||
"All messages": "Усі повідомлення",
|
||||
"All messages (loud)": "Усі повідомлення (гучно)",
|
||||
"All messages (noisy)": "Усі повідомлення (гучно)",
|
||||
"All Rooms": "Усі кімнати",
|
||||
"All notifications are currently disabled for all targets.": "Сповіщення для усіх цілей на даний момент вимкнені.",
|
||||
"An error occurred whilst saving your email notification preferences.": "Під час збереження налаштувань сповіщень е-поштою трапилася помилка.",
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
"Add an email address above to configure email notifications": "请在上方输入电子邮件地址以接收邮件通知",
|
||||
"Advanced notification settings": "通知高级设置",
|
||||
"All messages": "全部消息",
|
||||
"All messages (loud)": "全部消息(高亮)",
|
||||
"All messages (noisy)": "全部消息(高亮)",
|
||||
"All Rooms": "全部聊天室",
|
||||
"All notifications are currently disabled for all targets.": "当前所有目标的通知均已禁用。",
|
||||
"An error occurred whilst saving your email notification preferences.": "保存邮件通知首选项设定时出现错误。",
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
"<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> 與 <a href=\"http://opera.com\">Opera</a> 也能使用。",
|
||||
"Advanced notification settings": "進階通知設定",
|
||||
"All messages": "所有訊息",
|
||||
"All messages (loud)": "所有訊息(吵鬧)",
|
||||
"All messages (noisy)": "所有訊息(吵鬧)",
|
||||
"All Rooms": "所有的聊天室",
|
||||
"Call invitation": "通話邀請",
|
||||
"Cancel": "取消",
|
||||
|
|
|
@ -20,6 +20,8 @@ limitations under the License.
|
|||
font-size: 13px;
|
||||
display: block;
|
||||
height: 34px;
|
||||
|
||||
background-color: $secondary-accent-color;
|
||||
}
|
||||
|
||||
.mx_RoomTile_tooltip {
|
||||
|
@ -155,6 +157,15 @@ limitations under the License.
|
|||
background-color: $roomtile-selected-bg-color;
|
||||
}
|
||||
|
||||
.mx_DNDRoomTile {
|
||||
transform: none;
|
||||
transition: transform 0.2s;
|
||||
}
|
||||
|
||||
.mx_DNDRoomTile_dragging {
|
||||
transform: scale(1.05, 1.05);
|
||||
}
|
||||
|
||||
.mx_RoomTile:focus {
|
||||
filter: none ! important;
|
||||
background-color: $roomtile-focused-bg-color;
|
||||
|
|
|
@ -104,6 +104,7 @@ $roomtile-name-color: rgba(69, 69, 69, 0.8);
|
|||
$roomtile-selected-bg-color: rgba(255, 255, 255, 0.8);
|
||||
$roomtile-focused-bg-color: rgba(255, 255, 255, 0.9);
|
||||
|
||||
$roomsublist-background: #badece;
|
||||
$roomsublist-label-fg-color: $h3-color;
|
||||
$roomsublist-label-bg-color: $tertiary-accent-color;
|
||||
$roomsublist-chevron-color: $accent-color;
|
||||
|
|
|
@ -100,9 +100,10 @@ $rte-code-bg-color: #000;
|
|||
// ********************
|
||||
|
||||
$roomtile-name-color: rgba(186, 186, 186, 0.8);
|
||||
$roomtile-selected-bg-color: rgba(255, 255, 255, 0.05);
|
||||
$roomtile-selected-bg-color: #333;
|
||||
$roomtile-focused-bg-color: rgba(255, 255, 255, 0.2);
|
||||
|
||||
$roomsublist-background: #222;
|
||||
$roomsublist-label-fg-color: $h3-color;
|
||||
$roomsublist-label-bg-color: $tertiary-accent-color;
|
||||
$roomsublist-chevron-color: $accent-color;
|
||||
|
|
|
@ -18,6 +18,8 @@ limitations under the License.
|
|||
display: table;
|
||||
table-layout: fixed;
|
||||
width: 100%;
|
||||
|
||||
background-color: $roomsublist-background;
|
||||
}
|
||||
|
||||
.mx_RoomSubList_labelContainer {
|
||||
|
@ -155,6 +157,8 @@ limitations under the License.
|
|||
position: relative;
|
||||
cursor: pointer;
|
||||
font-size: 13px;
|
||||
|
||||
background-color: $secondary-accent-color;
|
||||
}
|
||||
|
||||
.collapsed .mx_RoomSubList_ellipsis {
|
||||
|
|
|
@ -160,6 +160,7 @@ $roomtile-name-color: #ffffff;
|
|||
$roomtile-selected-bg-color: #465561;
|
||||
$roomtile-focused-bg-color: #6d8597;
|
||||
|
||||
$roomsublist-background: #465561;
|
||||
$roomsublist-label-fg-color: #ffffff;
|
||||
$roomsublist-label-bg-color: $secondary-accent-color;
|
||||
$roomsublist-chevron-color: #ffffff;
|
||||
|
|
Loading…
Reference in New Issue