switch back to simple TextForEvent

I haven't found anyone who can justify to me why we need
more complicated plurals for i18n (even in Polish) for
%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.
This commit is contained in:
Matthew Hodgson 2018-09-17 18:20:12 +01:00
parent 003083d9fc
commit dc7212ec2b
5 changed files with 36 additions and 25 deletions

View file

@ -85,15 +85,15 @@
"react-dom": "^15.6.0", "react-dom": "^15.6.0",
"react-gemini-scrollbar": "matrix-org/react-gemini-scrollbar#5e97aef", "react-gemini-scrollbar": "matrix-org/react-gemini-scrollbar#5e97aef",
"resize-observer-polyfill": "^1.5.0", "resize-observer-polyfill": "^1.5.0",
"sanitize-html": "^1.18.4",
"slate": "0.34.7", "slate": "0.34.7",
"slate-react": "^0.12.4",
"slate-html-serializer": "^0.6.1", "slate-html-serializer": "^0.6.1",
"slate-md-serializer": "matrix-org/slate-md-serializer#f7c4ad3", "slate-md-serializer": "matrix-org/slate-md-serializer#f7c4ad3",
"sanitize-html": "^1.18.4", "slate-react": "^0.12.4",
"text-encoding-utf-8": "^1.0.1", "text-encoding-utf-8": "^1.0.1",
"url": "^0.11.0", "url": "^0.11.0",
"velocity-vector": "vector-im/velocity#059e3b2", "velocity-vector": "vector-im/velocity#059e3b2",
"whatwg-fetch": "^1.0.0" "whatwg-fetch": "^1.1.1"
}, },
"devDependencies": { "devDependencies": {
"babel-cli": "^6.5.2", "babel-cli": "^6.5.2",

View file

@ -199,7 +199,7 @@ function textForMessageEvent(ev) {
} }
function textForRoomAliasesEvent(ev) { function textForRoomAliasesEvent(ev) {
const senderName = event.sender ? event.sender.name : event.getSender(); const senderName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
const oldAliases = ev.getPrevContent().aliases || []; const oldAliases = ev.getPrevContent().aliases || [];
const newAliases = ev.getContent().aliases || []; const newAliases = ev.getContent().aliases || [];
@ -211,13 +211,13 @@ function textForRoomAliasesEvent(ev) {
} }
if (addedAliases.length && !removedAliases.length) { if (addedAliases.length && !removedAliases.length) {
return _t('%(senderName)s added %(addedAddresses)s as addresses for this room.', { return _t('%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.', {
senderName: senderName, senderName: senderName,
count: addedAliases.length, count: addedAliases.length,
addedAddresses: addedAliases.join(', '), addedAddresses: addedAliases.join(', '),
}); });
} else if (!addedAliases.length && removedAliases.length) { } else if (!addedAliases.length && removedAliases.length) {
return _t('%(senderName)s removed %(removedAddresses)s as addresses for this room.', { return _t('%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.', {
senderName: senderName, senderName: senderName,
count: removedAliases.length, count: removedAliases.length,
removedAddresses: removedAliases.join(', '), removedAddresses: removedAliases.join(', '),
@ -228,17 +228,10 @@ function textForRoomAliasesEvent(ev) {
addedAddresses: addedAliases.join(', '), addedAddresses: addedAliases.join(', '),
removedAddresses: removedAliases.join(', '), removedAddresses: removedAliases.join(', '),
}; };
/* eslint-disable max-len */ return _t(
if (addedAliases.length === 1 && removedAliases.length === 1) { '%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.',
return _t('%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.|one,one', args); args,
} else if (addedAliases.length !== 1 && removedAliases.length === 1) { );
return _t('%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.|other,one', args);
} else if (addedAliases.length === 1 && removedAliases.length !== 1) {
return _t('%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.|one,other', args);
} else {
return _t('%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.|other,other', args);
}
/* eslint-enable max-len */
} }
} }

View file

@ -14,6 +14,16 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
/****************************************************************
** **
** THIS CLASS IS NOT USED TO RENDER ALIAS CHANGES, IN ORDER **
** TO TRY TO KEEP THINGS SIMPLE AND JUST USE TextualEvent. **
** **
** The code is kept here for ease of reference in future **
** should we need the GenericEventListSummary stuff **
** **
****************************************************************/
'use strict'; 'use strict';
import React from 'react'; import React from 'react';
@ -69,10 +79,8 @@ export class GenericEventListSummary extends React.Component {
let summaryContainer = null; let summaryContainer = null;
if (showSummary) { if (showSummary) {
summaryContainer = ( summaryContainer = (
<div className="mx_EventTile_line"> <div>
<div className="mx_EventTile_info"> {this.props.summary}
{this.props.summary}
</div>
</div> </div>
); );
} }
@ -140,10 +148,14 @@ export default class RoomAliasesEvent extends React.Component {
const changes = []; const changes = [];
addedAliases.forEach((alias) => { addedAliases.forEach((alias) => {
changes.push(<div key={'+' + alias}>Added {alias}</div>); changes.push(<div key={'+' + alias}>{_t('%(senderName)s added %(alias)s', {
senderName, alias,
})}</div>);
}); });
removedAliases.forEach((alias) => { removedAliases.forEach((alias) => {
changes.push(<div key={'-' + alias}>Removed {alias}</div>); changes.push(<div key={'-' + alias}>{_t('%(senderName)s removed %(alias)s', {
senderName, alias,
})}</div>);
}); });
const summary = _t('%(senderName)s changed the addresses of this room.', {senderName}); const summary = _t('%(senderName)s changed the addresses of this room.', {senderName});

View file

@ -47,7 +47,8 @@ const eventTileTypes = {
}; };
const stateEventTileTypes = { const stateEventTileTypes = {
'm.room.aliases': 'messages.RoomAliasesEvent', 'm.room.aliases': 'messages.TextualEvent',
// 'm.room.aliases': 'messages.RoomAliasesEvent', // too complex
'm.room.create': 'messages.RoomCreate', 'm.room.create': 'messages.RoomCreate',
'm.room.member': 'messages.TextualEvent', 'm.room.member': 'messages.TextualEvent',
'm.room.name': 'messages.TextualEvent', 'm.room.name': 'messages.TextualEvent',
@ -484,7 +485,9 @@ module.exports = withMatrixClient(React.createClass({
const eventType = this.props.mxEvent.getType(); const eventType = this.props.mxEvent.getType();
// Info messages are basically information about commands processed on a room // Info messages are basically information about commands processed on a room
const isInfoMessage = (eventType !== 'm.room.message' && eventType !== 'm.sticker' && eventType != 'm.room.create'); const isInfoMessage = (
eventType !== 'm.room.message' && eventType !== 'm.sticker' && eventType != 'm.room.create'
);
const tileHandler = getHandlerTile(this.props.mxEvent); const tileHandler = getHandlerTile(this.props.mxEvent);
// This shouldn't happen: the caller should check we support this type // This shouldn't happen: the caller should check we support this type

View file

@ -1250,7 +1250,10 @@
"%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|other": "%(senderName)s added %(addedAddresses)s as addresses for this room.", "%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|other": "%(senderName)s added %(addedAddresses)s as addresses for this room.",
"%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|one": "%(senderName)s removed %(removedAddresses)s as an address for this room.", "%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|one": "%(senderName)s removed %(removedAddresses)s as an address for this room.",
"%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|other": "%(senderName)s removed %(removedAddresses)s as addresses for this room.", "%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|other": "%(senderName)s removed %(removedAddresses)s as addresses for this room.",
"%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.": "%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.",
"%(senderName)s changed the addresses of this room.": "%(senderName)s changed the addresses of this room.", "%(senderName)s changed the addresses of this room.": "%(senderName)s changed the addresses of this room.",
"%(senderName)s added %(addedAddresses)s": "%(senderName)s added %(addedAddresses)s",
"%(senderName)s removed %(addedAddresses)s": "%(senderName)s removed %(addedAddresses)s",
"File to import": "File to import", "File to import": "File to import",
"Import": "Import", "Import": "Import",
"Failed to set direct chat tag": "Failed to set direct chat tag", "Failed to set direct chat tag": "Failed to set direct chat tag",