Sfoglia il codice sorgente

Use "Groupchat" instead of "Chatroom"

JC Brand 7 anni fa
parent
commit
e64edf19b4

+ 95 - 95
spec/chatroom.js

@@ -177,7 +177,7 @@
                             'membersonly': true,
                             'persistentroom': true,
                             'publicroom': true,
-                            'roomdesc': 'Welcome to this room',
+                            'roomdesc': 'Welcome to this groupchat',
                             'whois': 'anyone'
                         }
                     });
@@ -262,7 +262,7 @@
                             sent_stanza = sent_IQ_els.pop();
                         }
                         expect(sizzle('field[var="muc#roomconfig_roomname"] value', sent_stanza).pop().textContent).toBe('Room');
-                        expect(sizzle('field[var="muc#roomconfig_roomdesc"] value', sent_stanza).pop().textContent).toBe('Welcome to this room');
+                        expect(sizzle('field[var="muc#roomconfig_roomdesc"] value', sent_stanza).pop().textContent).toBe('Welcome to this groupchat');
                         expect(sizzle('field[var="muc#roomconfig_persistentroom"] value', sent_stanza).pop().textContent).toBe('1');
                         expect(sizzle('field[var="muc#roomconfig_publicroom"] value ', sent_stanza).pop().textContent).toBe('1');
                         expect(sizzle('field[var="muc#roomconfig_changesubject"] value', sent_stanza).pop().textContent).toBe('0');
@@ -390,7 +390,7 @@
 
                     _converse.connection._dataRecv(test_utils.createRequest(presence));
                     var info_text = view.el.querySelector('.chat-content .chat-info').textContent;
-                    expect(info_text).toBe('A new room has been created');
+                    expect(info_text).toBe('A new groupchat has been created');
 
                     // An instant room is created by saving the default configuratoin.
                     //
@@ -453,7 +453,7 @@
                     }).up()
                     .c('status', {code: '110'});
                 _converse.connection._dataRecv(test_utils.createRequest(presence));
-                expect($chat_content.find('div.chat-info:first').html()).toBe("some1 has entered the room");
+                expect($chat_content.find('div.chat-info:first').html()).toBe("some1 has entered the groupchat");
 
                 presence = $pres({
                         to: 'dummy@localhost/_converse.js-29092160',
@@ -467,7 +467,7 @@
                     });
                 _converse.connection._dataRecv(test_utils.createRequest(presence));
                 expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(2);
-                expect($chat_content.find('div.chat-info:last').html()).toBe("newguy has entered the room");
+                expect($chat_content.find('div.chat-info:last').html()).toBe("newguy has entered the groupchat");
 
                 // Add another entrant, otherwise the above message will be
                 // collapsed if "newguy" leaves immediately again
@@ -483,7 +483,7 @@
                     });
                 _converse.connection._dataRecv(test_utils.createRequest(presence));
                 expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(3);
-                expect($chat_content.find('div.chat-info:last').html()).toBe("newgirl has entered the room");
+                expect($chat_content.find('div.chat-info:last').html()).toBe("newgirl has entered the groupchat");
 
                 // Don't show duplicate join messages
                 presence = $pres({
@@ -525,7 +525,7 @@
                 _converse.connection._dataRecv(test_utils.createRequest(presence));
                 expect($chat_content.find('div.chat-info').length).toBe(4);
                 expect($chat_content.find('div.chat-info:last').html()).toBe(
-                    'newguy has left the room. '+
+                    'newguy has left the groupchat. '+
                     '"Disconnected: Replaced by new connection"');
 
                 // When the user immediately joins again, we collapse the
@@ -542,7 +542,7 @@
                 _converse.connection._dataRecv(test_utils.createRequest(presence));
                 expect($chat_content.find('div.chat-info').length).toBe(4);
                 var $msg_el = $chat_content.find('div.chat-info:last');
-                expect($msg_el.html()).toBe("newguy has left and re-entered the room");
+                expect($msg_el.html()).toBe("newguy has left and re-entered the groupchat");
                 expect($msg_el.data('leavejoin')).toBe('"newguy"');
 
                 presence = $pres({
@@ -559,7 +559,7 @@
                 _converse.connection._dataRecv(test_utils.createRequest(presence));
                 expect($chat_content.find('div.chat-info').length).toBe(4);
                 $msg_el = $chat_content.find('div.chat-info:last');
-                expect($msg_el.html()).toBe('newguy has left the room');
+                expect($msg_el.html()).toBe('newguy has left the groupchat');
                 expect($msg_el.data('leave')).toBe('"newguy"');
 
                 presence = $pres({
@@ -574,7 +574,7 @@
                     });
                 _converse.connection._dataRecv(test_utils.createRequest(presence));
                 expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(5);
-                expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered the room");
+                expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered the groupchat");
 
                 presence = $pres({
                         to: 'dummy@localhost/_converse.js-290918392',
@@ -588,7 +588,7 @@
                     });
                 _converse.connection._dataRecv(test_utils.createRequest(presence));
                 expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(5);
-                expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered and left the room");
+                expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered and left the groupchat");
 
                 presence = $pres({
                         to: 'dummy@localhost/_converse.js-29092160',
@@ -602,7 +602,7 @@
                     });
                 _converse.connection._dataRecv(test_utils.createRequest(presence));
                 expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(5);
-                expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered the room");
+                expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered the groupchat");
                 done();
             }));
 
@@ -622,7 +622,7 @@
                     expect(indicator.querySelector('time').textContent).toEqual(moment().startOf('day').format("dddd MMM Do YYYY"));
                     expect(chat_content.querySelectorAll('div.chat-info').length).toBe(1);
                     expect(chat_content.querySelector('div.chat-info').textContent).toBe(
-                        "dummy has entered the room"
+                        "dummy has entered the groupchat"
                     );
 
                     var baseTime = new Date();
@@ -659,7 +659,7 @@
                     expect(indicator.querySelector('time').textContent).toEqual(moment().startOf('day').format("dddd MMM Do YYYY"));
                     expect(chat_content.querySelectorAll('div.chat-info').length).toBe(2);
                     expect(chat_content.querySelector('div.chat-info:last-child').textContent).toBe(
-                        "some1 has entered the room"
+                        "some1 has entered the groupchat"
                     );
 
                     jasmine.clock().tick(ONE_DAY_LATER);
@@ -688,7 +688,7 @@
                     expect(indicator.querySelector('time').textContent).toEqual(moment().startOf('day').format("dddd MMM Do YYYY"));
                     expect(chat_content.querySelectorAll('div.chat-info').length).toBe(3);
                     expect($(chat_content).find('div.chat-info:last').html()).toBe(
-                        'some1 has left the room. '+
+                        'some1 has left the groupchat. '+
                         '"Disconnected: Replaced by new connection"');
 
                     jasmine.clock().tick(ONE_DAY_LATER);
@@ -722,7 +722,7 @@
                     expect($indicator.data('isodate')).toEqual(moment().startOf('day').format());
                     expect($indicator.find('time').text()).toEqual(moment().startOf('day').format("dddd MMM Do YYYY"));
                     expect(chat_content.querySelectorAll('div.chat-info').length).toBe(4);
-                    expect($chat_content.find('div.chat-info:last').html()).toBe("newguy has entered the room");
+                    expect($chat_content.find('div.chat-info:last').html()).toBe("newguy has entered the groupchat");
 
                     jasmine.clock().tick(ONE_DAY_LATER);
 
@@ -763,7 +763,7 @@
                     expect($indicator.find('time').text()).toEqual(moment().startOf('day').format("dddd MMM Do YYYY"));
                     expect(chat_content.querySelectorAll('div.chat-info').length).toBe(5);
                     expect($chat_content.find('div.chat-info:last').html()).toBe(
-                        'newguy has left the room. '+
+                        'newguy has left the groupchat. '+
                         '"Disconnected: Replaced by new connection"');
 
                     jasmine.clock().uninstall();
@@ -811,7 +811,7 @@
                                 .c('value').t('http://jabber.org/protocol/muc#roominfo').up().up()
                             .c('field', {'type':'text-single', 'var':'muc#roominfo_description', 'label':'Description'})
                                 .c('value').t('This is the description').up().up()
-                            .c('field', {'type':'text-single', 'var':'muc#roominfo_occupants', 'label':'Number of occupants'})
+                            .c('field', {'type':'text-single', 'var':'muc#roominfo_occupants', 'label':'Number of participants'})
                                 .c('value').t(0);
                 _converse.connection._dataRecv(test_utils.createRequest(features_stanza));
                 test_utils.waitUntil(() => _.get(view.el.querySelector('.chatroom-description'), 'textContent'))
@@ -1065,7 +1065,7 @@
                                 'var': 'muc#roomconfig_passwordprotectedroom'})
                                 .c('value').t(1).up().up()
                             .c('field', {'type': 'fixed'})
-                                .c('value').t('If a password is required to enter this room,'+
+                                .c('value').t('If a password is required to enter this groupchat,'+
                                             'you must specify the password below.').up().up()
                             .c('field', {
                                 'label': 'Password',
@@ -1113,7 +1113,7 @@
                 }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL));
             }));
 
-            it("shows all members even if they're not currently present in the room",
+            it("shows all members even if they're not currently present in the groupchat",
                 mock.initConverseWithPromises(
                     null, ['rosterGroupsFetched'], {},
                     function (done, _converse) {
@@ -1145,7 +1145,7 @@
                         expect(occupants.querySelectorAll('li .occupant-nick')[index].textContent.trim()).toBe(mock.chatroom_names[i]);
                     }
 
-                    // Test users leaving the room
+                    // Test users leaving the groupchat
                     // http://xmpp.org/extensions/xep-0045.html#exit
                     for (i=mock.chatroom_names.length-1; i>-1; i--) {
                         name = mock.chatroom_names[i];
@@ -1168,7 +1168,7 @@
                 }).catch(_.partial(console.error, _));
             }));
 
-            it("shows users currently present in the room",
+            it("shows users currently present in the groupchat",
                 mock.initConverseWithPromises(
                     null, ['rosterGroupsFetched'], {},
                     function (done, _converse) {
@@ -1200,7 +1200,7 @@
                         expect(occupants.querySelectorAll('li .occupant-nick')[index].textContent.trim()).toBe(mock.chatroom_names[i]);
                     }
 
-                    // Test users leaving the room
+                    // Test users leaving the groupchat
                     // http://xmpp.org/extensions/xep-0045.html#exit
                     for (i=mock.chatroom_names.length-1; i>-1; i--) {
                         name = mock.chatroom_names[i];
@@ -1310,7 +1310,7 @@
                     expect($(occupants).last().find('.badge').length).toBe(1);
                     expect($(occupants).last().find('.badge').last().text()).toBe('Visitor');
                     expect($(occupants).last().attr('title')).toBe(
-                        contact_jid + ' This user can NOT send messages in this room. Click to mention visitorwoman in your message.'
+                        contact_jid + ' This user can NOT send messages in this groupchat. Click to mention visitorwoman in your message.'
                     );
                     done();
                 }).catch(_.partial(console.error, _));
@@ -1395,7 +1395,7 @@
 
                     expect(view.join).toHaveBeenCalled();
 
-                    // The user has just entered the room (because join was called)
+                    // The user has just entered the groupchat (because join was called)
                     // and receives their own presence from the server.
                     // See example 24:
                     // http://xmpp.org/extensions/xep-0045.html#enter-pres
@@ -1437,7 +1437,7 @@
                 var view = _converse.chatboxviews.get('lounge@localhost');
 
                 // XXX: cheating a lttle bit, normally this'll be set after
-                // receiving the features for the room.
+                // receiving the features for the groupchat.
                 view.model.set('open', 'true');
 
                 spyOn(view.model, 'directInvite').and.callThrough();
@@ -1632,7 +1632,7 @@
                 });
             }));
 
-            it("shows received chatroom subject messages",
+            it("shows received groupchat subject messages",
                 mock.initConverseWithPromises(
                     null, ['rosterGroupsFetched'], {},
                     function (done, _converse) {
@@ -1724,7 +1724,7 @@
                     expect($occupants.children().first(0).find('.occupant-nick').text().trim()).toBe("oldnick");
 
                     expect($chat_content.find('div.chat-info').length).toBe(1);
-                    expect($chat_content.find('div.chat-info:first').html()).toBe("oldnick has entered the room");
+                    expect($chat_content.find('div.chat-info:first').html()).toBe("oldnick has entered the groupchat");
 
                     var presence = $pres().attrs({
                             from:'lounge@localhost/oldnick',
@@ -1765,7 +1765,7 @@
                         .c('status').attrs({code:'110'}).nodeTree;
 
                     _converse.connection._dataRecv(test_utils.createRequest(presence));
-                    // XXX: currently we still have an additional "has entered the room"
+                    // XXX: currently we still have an additional "has entered the groupchat"
                     // notification for the new nickname. Ideally we'd not have
                     // that, but that's probably not possible without some
                     // significant refactoring.
@@ -1780,7 +1780,7 @@
                 });
             }));
 
-            it("queries for the room information before attempting to join the user",
+            it("queries for the groupchat information before attempting to join the user",
                 mock.initConverseWithPromises(
                     null, ['rosterGroupsFetched'], {},
                     function (done, _converse) {
@@ -1794,7 +1794,7 @@
 
                 _converse.api.rooms.open('coven@chat.shakespeare.lit', {'nick': 'some1'});
 
-                // Check that the room queried for the feautures.
+                // Check that the groupchat queried for the feautures.
                 expect(sent_IQ.toLocaleString()).toBe(
                     "<iq from='dummy@localhost/resource' to='coven@chat.shakespeare.lit' type='get' xmlns='jabber:client' id='"+IQ_id+"'>"+
                         "<query xmlns='http://jabber.org/protocol/disco#info'/>"+
@@ -1854,7 +1854,7 @@
                 });
             }));
 
-            it("updates the shown features when the room configuration has changed",
+            it("updates the shown features when the groupchat configuration has changed",
                 mock.initConverseWithPromises(
                     null, ['rosterGroupsFetched'], {},
                     function (done, _converse) {
@@ -1954,7 +1954,7 @@
                         .c('status', {code: '172'});
                     _converse.connection._dataRecv(test_utils.createRequest(message));
                     var $chat_body = $(view.el.querySelector('.chatroom-body'));
-                    expect($chat_body.find('.message:last').text()).toBe('This room is now no longer anonymous');
+                    expect($chat_body.find('.message:last').text()).toBe('This groupchat is now no longer anonymous');
                     done();
                 });
             }));
@@ -2003,7 +2003,7 @@
                     const chat_body = view.el.querySelector('.chatroom-body');
                     expect(chat_body.querySelectorAll('.disconnect-msg').length).toBe(3);
                     expect(chat_body.querySelector('.disconnect-msg:first-child').textContent).toBe(
-                        'You have been kicked from this room');
+                        'You have been kicked from this groupchat');
                     expect(chat_body.querySelector('.disconnect-msg:nth-child(2)').textContent).toBe(
                         'This action was done by Fluellen.');
                     expect(chat_body.querySelector('.disconnect-msg:nth-child(3)').textContent).toBe(
@@ -2093,7 +2093,7 @@
         });
 
 
-        describe("Each chat room can take special commands", function () {
+        describe("Each chat groupchat can take special commands", function () {
 
             it("/help to show the available commands",
                 mock.initConverseWithPromises(
@@ -2104,7 +2104,7 @@
                     var view = _converse.chatboxviews.get('lounge@localhost');
                     spyOn(view, 'onMessageSubmitted').and.callThrough();
                     var textarea = view.el.querySelector('.chat-textarea');
-                    textarea.value = '/help This is the room subject';
+                    textarea.value = '/help This is the groupchat subject';
                     view.keyPressed({
                         target: textarea,
                         preventDefault: _.noop,
@@ -2115,26 +2115,26 @@
                     const info_messages = Array.prototype.slice.call(view.el.querySelectorAll('.chat-info'), 0);
                     expect(info_messages.length).toBe(17);
                     expect(info_messages.pop().textContent).toBe('/voice: Allow muted user to post messages');
-                    expect(info_messages.pop().textContent).toBe('/topic: Set room subject (alias for /subject)');
-                    expect(info_messages.pop().textContent).toBe('/subject: Set room subject');
+                    expect(info_messages.pop().textContent).toBe('/topic: Set groupchat subject (alias for /subject)');
+                    expect(info_messages.pop().textContent).toBe('/subject: Set groupchat subject');
                     expect(info_messages.pop().textContent).toBe('/revoke: Revoke user\'s membership');
-                    expect(info_messages.pop().textContent).toBe('/owner: Grant ownership of this room');
+                    expect(info_messages.pop().textContent).toBe('/owner: Grant ownership of this groupchat');
                     expect(info_messages.pop().textContent).toBe('/op: Grant moderator role to user');
                     expect(info_messages.pop().textContent).toBe('/nick: Change your nickname');
                     expect(info_messages.pop().textContent).toBe('/mute: Remove user\'s ability to post messages');
                     expect(info_messages.pop().textContent).toBe('/member: Grant membership to a user');
                     expect(info_messages.pop().textContent).toBe('/me: Write in 3rd person');
-                    expect(info_messages.pop().textContent).toBe('/kick: Kick user from room');
+                    expect(info_messages.pop().textContent).toBe('/kick: Kick user from groupchat');
                     expect(info_messages.pop().textContent).toBe('/help: Show this menu');
                     expect(info_messages.pop().textContent).toBe('/deop: Change user role to participant');
                     expect(info_messages.pop().textContent).toBe('/clear: Remove messages');
-                    expect(info_messages.pop().textContent).toBe('/ban: Ban user from room');
+                    expect(info_messages.pop().textContent).toBe('/ban: Ban user from groupchat');
                     expect(info_messages.pop().textContent).toBe('/admin: Change user\'s affiliation to admin');
                     done();
                 });
             }));
 
-            it("/topic to set the room topic",
+            it("/topic to set the groupchat topic",
                 mock.initConverseWithPromises(
                     null, ['rosterGroupsFetched'], {},
                     function (done, _converse) {
@@ -2149,7 +2149,7 @@
                     });
                     // Check the alias /topic
                     var textarea = view.el.querySelector('.chat-textarea');
-                    textarea.value = '/topic This is the room subject';
+                    textarea.value = '/topic This is the groupchat subject';
                     view.keyPressed({
                         target: textarea,
                         preventDefault: _.noop,
@@ -2157,7 +2157,7 @@
                     });
                     expect(view.onMessageSubmitted).toHaveBeenCalled();
                     expect(_converse.connection.send).toHaveBeenCalled();
-                    expect(sent_stanza.textContent).toBe('This is the room subject');
+                    expect(sent_stanza.textContent).toBe('This is the groupchat subject');
 
                     // Check /subject
                     textarea.value = '/subject This is a new subject';
@@ -2415,7 +2415,7 @@
                     spyOn(view, 'showChatEvent').and.callThrough();
                     spyOn(view, 'validateRoleChangeCommand').and.callThrough();
 
-                    // New user enters the room
+                    // New user enters the groupchat
                     /* <presence
                      *     from='coven@chat.shakespeare.lit/thirdwitch'
                      *     id='27C55F89-1C6A-459A-9EB5-77690145D624'
@@ -2438,7 +2438,7 @@
                             });
                     _converse.connection._dataRecv(test_utils.createRequest(presence));
                     var info_msgs = Array.prototype.slice.call(view.el.querySelectorAll('.chat-info'), 0);
-                    expect(info_msgs.pop().textContent).toBe("trustworthyguy has entered the room");
+                    expect(info_msgs.pop().textContent).toBe("trustworthyguy has entered the groupchat");
 
                     var textarea = view.el.querySelector('.chat-textarea')
                     textarea.value = '/op';
@@ -2555,7 +2555,7 @@
                     spyOn(view, 'showChatEvent').and.callThrough();
                     spyOn(view, 'validateRoleChangeCommand').and.callThrough();
 
-                    // New user enters the room
+                    // New user enters the groupchat
                     /* <presence
                      *     from='coven@chat.shakespeare.lit/thirdwitch'
                      *     id='27C55F89-1C6A-459A-9EB5-77690145D624'
@@ -2578,7 +2578,7 @@
                             });
                     _converse.connection._dataRecv(test_utils.createRequest(presence));
                     var info_msgs = Array.prototype.slice.call(view.el.querySelectorAll('.chat-info'), 0);
-                    expect(info_msgs.pop().textContent).toBe("annoyingGuy has entered the room");
+                    expect(info_msgs.pop().textContent).toBe("annoyingGuy has entered the groupchat");
 
                     var textarea = view.el.querySelector('.chat-textarea')
                     textarea.value = '/mute';
@@ -2677,9 +2677,9 @@
             }));
         });
 
-        describe("When attempting to enter a chatroom", function () {
+        describe("When attempting to enter a groupchat", function () {
 
-            it("will show an error message if the room requires a password",
+            it("will show an error message if the groupchat requires a password",
                 mock.initConverseWithPromises(
                     null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
                     function (done, _converse) {
@@ -2703,7 +2703,7 @@
                     var $chat_body = $(view.el).find('.chatroom-body');
                     expect(view.renderPasswordForm).toHaveBeenCalled();
                     expect($chat_body.find('form.chatroom-form').length).toBe(1);
-                    expect($chat_body.find('legend').text()).toBe('This chatroom requires a password');
+                    expect($chat_body.find('legend').text()).toBe('This groupchat requires a password');
 
                     // Let's submit the form
                     spyOn(view, 'join');
@@ -2715,7 +2715,7 @@
                 }).catch(_.partial(console.error, _));
             }));
 
-            it("will show an error message if the room is members-only and the user not included",
+            it("will show an error message if the groupchat is members-only and the user not included",
                 mock.initConverseWithPromises(
                     null, ['rosterGroupsFetched'], {},
                     function (done, _converse) {
@@ -2734,7 +2734,7 @@
                     spyOn(view, 'showErrorMessage').and.callThrough();
                     _converse.connection._dataRecv(test_utils.createRequest(presence));
                     expect(view.el.querySelector('.chatroom-body .disconnect-container .disconnect-msg:last-child').textContent)
-                        .toBe('You are not on the member list of this room.');
+                        .toBe('You are not on the member list of this groupchat.');
                     done();
                 }).catch(_.partial(console.error, _));
             }));
@@ -2758,7 +2758,7 @@
                     spyOn(view, 'showErrorMessage').and.callThrough();
                     _converse.connection._dataRecv(test_utils.createRequest(presence));
                     expect(view.el.querySelector('.chatroom-body .disconnect-container .disconnect-msg:last-child').textContent)
-                        .toBe('You have been banned from this room.');
+                        .toBe('You have been banned from this groupchat.');
                     done();
                 }).catch(_.partial(console.error, _));
             }));
@@ -2825,7 +2825,7 @@
                     spyOn(view, 'showErrorMessage').and.callThrough();
                     spyOn(view, 'join').and.callThrough();
 
-                    // Simulate repeatedly that there's already someone in the room
+                    // Simulate repeatedly that there's already someone in the groupchat
                     // with that nickname
                     _converse.connection._dataRecv(test_utils.createRequest(presence));
                     expect(view.join).toHaveBeenCalledWith('dummy-2');
@@ -2852,7 +2852,7 @@
                 }).catch(_.partial(console.error, _));
             }));
 
-            it("will show an error message if the user is not allowed to have created the room",
+            it("will show an error message if the user is not allowed to have created the groupchat",
                 mock.initConverseWithPromises(
                     null, ['rosterGroupsFetched'], {},
                     function (done, _converse) {
@@ -2895,12 +2895,12 @@
                     spyOn(view, 'showErrorMessage').and.callThrough();
                     _converse.connection._dataRecv(test_utils.createRequest(presence));
                     expect(view.el.querySelector('.chatroom-body .disconnect-container .disconnect-msg:last-child').textContent)
-                        .toBe("Your nickname doesn't conform to this room's policies.");
+                        .toBe("Your nickname doesn't conform to this groupchat's policies.");
                     done();
                 }).catch(_.partial(console.error, _));
             }));
 
-            it("will show an error message if the room doesn't yet exist",
+            it("will show an error message if the groupchat doesn't yet exist",
                 mock.initConverseWithPromises(
                     null, ['rosterGroupsFetched'], {},
                     function (done, _converse) {
@@ -2919,12 +2919,12 @@
                     spyOn(view, 'showErrorMessage').and.callThrough();
                     _converse.connection._dataRecv(test_utils.createRequest(presence));
                     expect(view.el.querySelector('.chatroom-body .disconnect-container .disconnect-msg:last-child').textContent)
-                        .toBe("This room does not (yet) exist.");
+                        .toBe("This groupchat does not (yet) exist.");
                     done();
                 }).catch(_.partial(console.error, _));
             }));
 
-            it("will show an error message if the room has reached its maximum number of occupants",
+            it("will show an error message if the groupchat has reached its maximum number of participants",
                 mock.initConverseWithPromises(
                     null, ['rosterGroupsFetched'], {},
                     function (done, _converse) {
@@ -2943,7 +2943,7 @@
                     spyOn(view, 'showErrorMessage').and.callThrough();
                     _converse.connection._dataRecv(test_utils.createRequest(presence));
                     expect(view.el.querySelector('.chatroom-body .disconnect-container .disconnect-msg:last-child').textContent)
-                        .toBe("This room has reached its maximum number of occupants.");
+                        .toBe("This groupchat has reached its maximum number of participants.");
                     done();
                 }).catch(_.partial(console.error, _));
             }));
@@ -3272,7 +3272,7 @@
                 mock.initConverseWithPromises(
                     null, ['rosterGroupsFetched'], {'allow_bookmarks': false},
                     function (done, _converse) {
-                // XXX: we set `allow_bookmarks` to false, so that the rooms
+                // XXX: we set `allow_bookmarks` to false, so that the groupchats
                 // list gets rendered. Otherwise we would have to mock
                 // the bookmark stanza exchange.
 
@@ -3360,7 +3360,7 @@
                                 .c('status', {code: '110'});
                             _converse.connection._dataRecv(test_utils.createRequest(presence));
                             expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(2);
-                            expect($chat_content.find('div.chat-info:first').html()).toBe("some1 has entered the room");
+                            expect($chat_content.find('div.chat-info:first').html()).toBe("some1 has entered the groupchat");
                             expect($chat_content.find('div.chat-info:last').html()).toBe("some1 is now a moderator");
 
                             presence = $pres({
@@ -3375,7 +3375,7 @@
                                 });
                             _converse.connection._dataRecv(test_utils.createRequest(presence));
                             expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(3);
-                            expect($chat_content.find('div.chat-info:last').html()).toBe("newguy has entered the room");
+                            expect($chat_content.find('div.chat-info:last').html()).toBe("newguy has entered the groupchat");
 
                             presence = $pres({
                                     to: 'dummy@localhost/_converse.js-29092160',
@@ -3389,7 +3389,7 @@
                                 });
                             _converse.connection._dataRecv(test_utils.createRequest(presence));
                             expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(4);
-                            expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered the room");
+                            expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered the groupchat");
 
                             // See XEP-0085 http://xmpp.org/extensions/xep-0085.html#definitions
 
@@ -3406,10 +3406,10 @@
                             // Check that the notification appears inside the chatbox in the DOM
                             var events = view.el.querySelectorAll('.chat-event');
                             expect(events.length).toBe(4);
-                            expect(events[0].textContent).toEqual('some1 has entered the room');
+                            expect(events[0].textContent).toEqual('some1 has entered the groupchat');
                             expect(events[1].textContent).toEqual('some1 is now a moderator');
-                            expect(events[2].textContent).toEqual('newguy has entered the room');
-                            expect(events[3].textContent).toEqual('nomorenicks has entered the room');
+                            expect(events[2].textContent).toEqual('newguy has entered the groupchat');
+                            expect(events[3].textContent).toEqual('nomorenicks has entered the groupchat');
 
                             var notifications = view.el.querySelectorAll('.chat-state-notification');
                             expect(notifications.length).toBe(1);
@@ -3431,10 +3431,10 @@
 
                             events = view.el.querySelectorAll('.chat-event');
                             expect(events.length).toBe(4);
-                            expect(events[0].textContent).toEqual('some1 has entered the room');
+                            expect(events[0].textContent).toEqual('some1 has entered the groupchat');
                             expect(events[1].textContent).toEqual('some1 is now a moderator');
-                            expect(events[2].textContent).toEqual('newguy has entered the room');
-                            expect(events[3].textContent).toEqual('nomorenicks has entered the room');
+                            expect(events[2].textContent).toEqual('newguy has entered the groupchat');
+                            expect(events[3].textContent).toEqual('nomorenicks has entered the groupchat');
 
                             notifications = view.el.querySelectorAll('.chat-state-notification');
                             expect(notifications.length).toBe(1);
@@ -3452,10 +3452,10 @@
                             view.model.onMessage(msg);
                             events = view.el.querySelectorAll('.chat-event');
                             expect(events.length).toBe(4);
-                            expect(events[0].textContent).toEqual('some1 has entered the room');
+                            expect(events[0].textContent).toEqual('some1 has entered the groupchat');
                             expect(events[1].textContent).toEqual('some1 is now a moderator');
-                            expect(events[2].textContent).toEqual('newguy has entered the room');
-                            expect(events[3].textContent).toEqual('nomorenicks has entered the room');
+                            expect(events[2].textContent).toEqual('newguy has entered the groupchat');
+                            expect(events[3].textContent).toEqual('nomorenicks has entered the groupchat');
 
                             notifications = view.el.querySelectorAll('.chat-state-notification');
                             expect(notifications.length).toBe(2);
@@ -3483,10 +3483,10 @@
                             timeout_functions[0]();
                             events = view.el.querySelectorAll('.chat-event');
                             expect(events.length).toBe(4);
-                            expect(events[0].textContent).toEqual('some1 has entered the room');
+                            expect(events[0].textContent).toEqual('some1 has entered the groupchat');
                             expect(events[1].textContent).toEqual('some1 is now a moderator');
-                            expect(events[2].textContent).toEqual('newguy has entered the room');
-                            expect(events[3].textContent).toEqual('nomorenicks has entered the room');
+                            expect(events[2].textContent).toEqual('newguy has entered the groupchat');
+                            expect(events[3].textContent).toEqual('nomorenicks has entered the groupchat');
 
                             notifications = view.el.querySelectorAll('.chat-state-notification');
                             expect(notifications.length).toBe(1);
@@ -3495,10 +3495,10 @@
                             timeout_functions[1]();
                             events = view.el.querySelectorAll('.chat-event');
                             expect(events.length).toBe(4);
-                            expect(events[0].textContent).toEqual('some1 has entered the room');
+                            expect(events[0].textContent).toEqual('some1 has entered the groupchat');
                             expect(events[1].textContent).toEqual('some1 is now a moderator');
-                            expect(events[2].textContent).toEqual('newguy has entered the room');
-                            expect(events[3].textContent).toEqual('nomorenicks has entered the room');
+                            expect(events[2].textContent).toEqual('newguy has entered the groupchat');
+                            expect(events[3].textContent).toEqual('nomorenicks has entered the groupchat');
 
                             notifications = view.el.querySelectorAll('.chat-state-notification');
                             expect(notifications.length).toBe(0);
@@ -3537,7 +3537,7 @@
                             }).up()
                             .c('status', {code: '110'});
                         _converse.connection._dataRecv(test_utils.createRequest(presence));
-                        expect($chat_content.find('div.chat-info:first').html()).toBe("some1 has entered the room");
+                        expect($chat_content.find('div.chat-info:first').html()).toBe("some1 has entered the groupchat");
 
                         presence = $pres({
                                 to: 'dummy@localhost/_converse.js-29092160',
@@ -3551,7 +3551,7 @@
                             });
                         _converse.connection._dataRecv(test_utils.createRequest(presence));
                         expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(2);
-                        expect($chat_content.find('div.chat-info:last').html()).toBe("newguy has entered the room");
+                        expect($chat_content.find('div.chat-info:last').html()).toBe("newguy has entered the groupchat");
 
                         presence = $pres({
                                 to: 'dummy@localhost/_converse.js-29092160',
@@ -3565,7 +3565,7 @@
                             });
                         _converse.connection._dataRecv(test_utils.createRequest(presence));
                         expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(3);
-                        expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered the room");
+                        expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered the groupchat");
 
                         // See XEP-0085 http://xmpp.org/extensions/xep-0085.html#definitions
 
@@ -3581,9 +3581,9 @@
                         // Check that the notification appears inside the chatbox in the DOM
                         var events = view.el.querySelectorAll('.chat-event');
                         expect(events.length).toBe(3);
-                        expect(events[0].textContent).toEqual('some1 has entered the room');
-                        expect(events[1].textContent).toEqual('newguy has entered the room');
-                        expect(events[2].textContent).toEqual('nomorenicks has entered the room');
+                        expect(events[0].textContent).toEqual('some1 has entered the groupchat');
+                        expect(events[1].textContent).toEqual('newguy has entered the groupchat');
+                        expect(events[2].textContent).toEqual('nomorenicks has entered the groupchat');
 
                         var notifications = view.el.querySelectorAll('.chat-state-notification');
                         expect(notifications.length).toBe(1);
@@ -3600,9 +3600,9 @@
 
                         events = view.el.querySelectorAll('.chat-event');
                         expect(events.length).toBe(3);
-                        expect(events[0].textContent).toEqual('some1 has entered the room');
-                        expect(events[1].textContent).toEqual('newguy has entered the room');
-                        expect(events[2].textContent).toEqual('nomorenicks has entered the room');
+                        expect(events[0].textContent).toEqual('some1 has entered the groupchat');
+                        expect(events[1].textContent).toEqual('newguy has entered the groupchat');
+                        expect(events[2].textContent).toEqual('nomorenicks has entered the groupchat');
 
                         notifications = view.el.querySelectorAll('.chat-state-notification');
                         expect(notifications.length).toBe(1);
@@ -3618,9 +3618,9 @@
                         view.model.onMessage(msg);
                         events = view.el.querySelectorAll('.chat-event');
                         expect(events.length).toBe(3);
-                        expect(events[0].textContent).toEqual('some1 has entered the room');
-                        expect(events[1].textContent).toEqual('newguy has entered the room');
-                        expect(events[2].textContent).toEqual('nomorenicks has entered the room');
+                        expect(events[0].textContent).toEqual('some1 has entered the groupchat');
+                        expect(events[1].textContent).toEqual('newguy has entered the groupchat');
+                        expect(events[2].textContent).toEqual('nomorenicks has entered the groupchat');
 
                         notifications = view.el.querySelectorAll('.chat-state-notification');
                         expect(notifications.length).toBe(2);
@@ -3637,9 +3637,9 @@
                         view.model.onMessage(msg);
                         events = view.el.querySelectorAll('.chat-event');
                         expect(events.length).toBe(3);
-                        expect(events[0].textContent).toEqual('some1 has entered the room');
-                        expect(events[1].textContent).toEqual('newguy has entered the room');
-                        expect(events[2].textContent).toEqual('nomorenicks has entered the room');
+                        expect(events[0].textContent).toEqual('some1 has entered the groupchat');
+                        expect(events[1].textContent).toEqual('newguy has entered the groupchat');
+                        expect(events[2].textContent).toEqual('nomorenicks has entered the groupchat');
 
                         notifications = view.el.querySelectorAll('.chat-state-notification');
                         expect(notifications.length).toBe(2);

+ 3 - 3
spec/roomslist.js

@@ -54,7 +54,7 @@
         ));
     });
 
-    describe("A room shown in the rooms list", function () {
+    describe("A room shown in the groupchats list", function () {
 
         it("has an info icon which opens a details modal when clicked", mock.initConverseWithPromises(
             null, ['rosterGroupsFetched'],
@@ -182,7 +182,7 @@
             var close_el = _converse.rooms_list_view.el.querySelector(".close-room");
             close_el.click();
             expect(window.confirm).toHaveBeenCalledWith(
-                'Are you sure you want to leave the room lounge@conference.shakespeare.lit?');
+                'Are you sure you want to leave the groupchat lounge@conference.shakespeare.lit?');
             room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room");
             expect(room_els.length).toBe(0);
             expect(_converse.chatboxes.length).toBe(1);
@@ -215,7 +215,7 @@
                             type: 'groupchat'
                         }).c('body').t('foo').tree());
 
-                    // If the user isn't mentioned, the counter doesn't get incremented, but the text of the room is bold
+                    // If the user isn't mentioned, the counter doesn't get incremented, but the text of the groupchat is bold
                     var room_el = _converse.rooms_list_view.el.querySelector(
                         ".available-chatroom"
                     );

+ 8 - 8
src/converse-bookmarks.js

@@ -67,7 +67,7 @@
                           { __ } = _converse;
                     const bookmark_button = tpl_chatroom_bookmark_toggle(
                         _.assignIn(this.model.toJSON(), {
-                            info_toggle_bookmark: __('Bookmark this room'),
+                            info_toggle_bookmark: __('Bookmark this groupchat'),
                             bookmarked: this.model.get('bookmarked')
                         }));
                     const close_button = this.el.querySelector('.close-chatbox-button');
@@ -143,10 +143,10 @@
                     body.insertAdjacentHTML(
                         'beforeend',
                         tpl_chatroom_bookmark_form({
-                            heading: __('Bookmark this room'),
+                            heading: __('Bookmark this groupchat'),
                             label_name: __('The name for this bookmark:'),
-                            label_autojoin: __('Would you like this room to be automatically joined upon startup?'),
-                            label_nick: __('What should your nickname for this room be?'),
+                            label_autojoin: __('Would you like this groupchat to be automatically joined upon startup?'),
+                            label_nick: __('What should your nickname for this groupchat be?'),
                             default_nick: this.model.get('nick'),
                             label_submit: __('Save'),
                             label_cancel: __('Cancel')
@@ -410,13 +410,13 @@
                         'hidden': _converse.hide_open_bookmarks &&
                                   _converse.chatboxes.where({'jid': this.model.get('jid')}).length,
                         'bookmarked': true,
-                        'info_leave_room': __('Leave this room'),
+                        'info_leave_room': __('Leave this groupchat'),
                         'info_remove': __('Remove this bookmark'),
-                        'info_remove_bookmark': __('Unbookmark this room'),
-                        'info_title': __('Show more information on this room'),
+                        'info_remove_bookmark': __('Unbookmark this groupchat'),
+                        'info_title': __('Show more information on this groupchat'),
                         'jid': this.model.get('jid'),
                         'name': Strophe.xmlunescape(this.model.get('name')),
-                        'open_title': __('Click to open this room')
+                        'open_title': __('Click to open this groupchat')
                     });
                 }
             });

+ 52 - 52
src/converse-muc-views.js

@@ -196,24 +196,24 @@
              */
             _converse.muc = {
                 info_messages: {
-                    100: __('This room is not anonymous'),
-                    102: __('This room now shows unavailable members'),
-                    103: __('This room does not show unavailable members'),
-                    104: __('The room configuration has changed'),
-                    170: __('Room logging is now enabled'),
-                    171: __('Room logging is now disabled'),
-                    172: __('This room is now no longer anonymous'),
-                    173: __('This room is now semi-anonymous'),
-                    174: __('This room is now fully-anonymous'),
-                    201: __('A new room has been created')
+                    100: __('This groupchat is not anonymous'),
+                    102: __('This groupchat now shows unavailable members'),
+                    103: __('This groupchat does not show unavailable members'),
+                    104: __('The groupchat configuration has changed'),
+                    170: __('groupchat logging is now enabled'),
+                    171: __('groupchat logging is now disabled'),
+                    172: __('This groupchat is now no longer anonymous'),
+                    173: __('This groupchat is now semi-anonymous'),
+                    174: __('This groupchat is now fully-anonymous'),
+                    201: __('A new groupchat has been created')
                 },
 
                 disconnect_messages: {
-                    301: __('You have been banned from this room'),
-                    307: __('You have been kicked from this room'),
-                    321: __("You have been removed from this room because of an affiliation change"),
-                    322: __("You have been removed from this room because the room has changed to members-only and you're not a member"),
-                    332: __("You have been removed from this room because the MUC (Multi-user chat) service is being shut down")
+                    301: __('You have been banned from this groupchat'),
+                    307: __('You have been kicked from this groupchat'),
+                    321: __("You have been removed from this groupchat because of an affiliation change"),
+                    322: __("You have been removed from this groupchat because the groupchat has changed to members-only and you're not a member"),
+                    332: __("You have been removed from this groupchat because the MUC (Multi-user chat) service is being shut down")
                 },
 
                 action_info_messages: {
@@ -271,19 +271,19 @@
                         'temporary': sizzle('feature[var="muc_temporary"]', stanza).length,
                         'unmoderated': sizzle('feature[var="muc_unmoderated"]', stanza).length,
                         'label_desc': __('Description:'),
-                        'label_jid': __('Room Address (JID):'),
-                        'label_occ': __('Occupants:'),
+                        'label_jid': __('Groupchat Address (JID):'),
+                        'label_occ': __('Participants:'),
                         'label_features': __('Features:'),
                         'label_requires_auth': __('Requires authentication'),
                         'label_hidden': __('Hidden'),
                         'label_requires_invite': __('Requires an invitation'),
                         'label_moderated': __('Moderated'),
                         'label_non_anon': __('Non-anonymous'),
-                        'label_open_room': __('Open room'),
-                        'label_permanent_room': __('Permanent room'),
+                        'label_open_room': __('Open'),
+                        'label_permanent_room': __('Permanent'),
                         'label_public': __('Public'),
                         'label_semi_anon':  __('Semi-anonymous'),
-                        'label_temp_room':  __('Temporary room'),
+                        'label_temp_room':  __('Temporary'),
                         'label_unmoderated': __('Unmoderated')
                     }));
             }
@@ -321,7 +321,7 @@
 
                 toHTML () {
                     return tpl_list_chatrooms_modal(_.extend(this.model.toJSON(), {
-                        'heading_list_chatrooms': __('Query for Chatrooms'),
+                        'heading_list_chatrooms': __('Query for Groupchats'),
                         'label_server_address': __('Server address'),
                         'label_query': __('Show rooms'),
                         'server_placeholder': __('conference.example.org')
@@ -362,8 +362,8 @@
                     div.innerHTML = tpl_room_item({
                         'name': Strophe.xmlunescape(name),
                         'jid': room.getAttribute('jid'),
-                        'open_title': __('Click to open this room'),
-                        'info_title': __('Show more information on this room')
+                        'open_title': __('Click to open this groupchat'),
+                        'info_title': __('Show more information on this groupchat')
                     });
                     return div.firstElementChild;
                 },
@@ -447,8 +447,8 @@
 
                 toHTML () {
                     return tpl_add_chatroom_modal(_.extend(this.model.toJSON(), {
-                        'heading_new_chatroom': __('Enter a new Chatroom'),
-                        'label_room_address': __('Room address'),
+                        'heading_new_chatroom': __('Enter a new Groupchat'),
+                        'label_room_address': __('Groupchat address'),
                         'label_nickname': __('Optional nickname'),
                         'chatroom_placeholder': __('name@conference.example.org'),
                         'label_join': __('Join'),
@@ -663,9 +663,9 @@
                     return tpl_chatroom_head(
                         _.extend(this.model.toJSON(), {
                             'Strophe': Strophe,
-                            'info_close': __('Close and leave this room'),
-                            'info_configure': __('Configure this room'),
-                            'info_details': __('Show more details about this room'),
+                            'info_close': __('Close and leave this groupchat'),
+                            'info_configure': __('Configure this groupchat'),
+                            'info_details': __('Show more details about this groupchat'),
                             'description': this.model.get('description') || ''
                     }));
                 },
@@ -709,7 +709,7 @@
                     return _.extend(
                         _converse.ChatBoxView.prototype.getToolbarOptions.apply(this, arguments),
                         {
-                          label_hide_occupants: __('Hide the list of occupants'),
+                          label_hide_occupants: __('Hide the list of participants'),
                           show_occupants_toggle: this.is_chatroom && _converse.visible_toolbar_buttons.toggle_occupants
                         }
                     );
@@ -868,20 +868,20 @@
                         case 'help':
                             this.showHelpMessages([
                                 `<strong>/admin</strong>: ${__("Change user's affiliation to admin")}`,
-                                `<strong>/ban</strong>: ${__('Ban user from room')}`,
+                                `<strong>/ban</strong>: ${__('Ban user from groupchat')}`,
                                 `<strong>/clear</strong>: ${__('Remove messages')}`,
                                 `<strong>/deop</strong>: ${__('Change user role to participant')}`,
                                 `<strong>/help</strong>: ${__('Show this menu')}`,
-                                `<strong>/kick</strong>: ${__('Kick user from room')}`,
+                                `<strong>/kick</strong>: ${__('Kick user from groupchat')}`,
                                 `<strong>/me</strong>: ${__('Write in 3rd person')}`,
                                 `<strong>/member</strong>: ${__('Grant membership to a user')}`,
                                 `<strong>/mute</strong>: ${__("Remove user's ability to post messages")}`,
                                 `<strong>/nick</strong>: ${__('Change your nickname')}`,
                                 `<strong>/op</strong>: ${__('Grant moderator role to user')}`,
-                                `<strong>/owner</strong>: ${__('Grant ownership of this room')}`,
+                                `<strong>/owner</strong>: ${__('Grant ownership of this groupchat')}`,
                                 `<strong>/revoke</strong>: ${__("Revoke user's membership")}`,
-                                `<strong>/subject</strong>: ${__('Set room subject')}`,
-                                `<strong>/topic</strong>: ${__('Set room subject (alias for /subject)')}`,
+                                `<strong>/subject</strong>: ${__('Set groupchat subject')}`,
+                                `<strong>/topic</strong>: ${__('Set groupchat subject (alias for /subject)')}`,
                                 `<strong>/voice</strong>: ${__('Allow muted user to post messages')}`
                             ]);
                             break;
@@ -1227,7 +1227,7 @@
                         tpl_chatroom_nickname_form({
                             heading: __('Please choose your nickname'),
                             label_nickname: __('Nickname'),
-                            label_join: __('Enter room'),
+                            label_join: __('Enter groupchat'),
                             validation_message: message
                         }));
                     this.model.save('connection_status', converse.ROOMSTATUS.NICKNAME_REQUIRED);
@@ -1250,7 +1250,7 @@
 
                     container_el.insertAdjacentHTML('beforeend',
                         tpl_chatroom_password_form({
-                            heading: __('This chatroom requires a password'),
+                            heading: __('This groupchat requires a password'),
                             label_password: __('Password: '),
                             label_submit: __('Submit')
                         }));
@@ -1395,14 +1395,14 @@
                                 'data': `data-leavejoin="${nick}"`,
                                 'isodate': moment().format(),
                                 'extra_classes': 'chat-event',
-                                'message': __('%1$s has left and re-entered the room', nick)
+                                'message': __('%1$s has left and re-entered the groupchat', nick)
                             });
                     } else {
                         let  message;
                         if (_.isNil(stat)) {
-                            message = __('%1$s has entered the room', nick);
+                            message = __('%1$s has entered the groupchat', nick);
                         } else {
-                            message = __('%1$s has entered the room. "%2$s"', nick, stat);
+                            message = __('%1$s has entered the groupchat. "%2$s"', nick, stat);
                         }
                         const data = {
                             'data': `data-join="${nick}"`,
@@ -1435,9 +1435,9 @@
 
                         let message;
                         if (_.isNil(stat)) {
-                            message = __('%1$s has entered and left the room', nick);
+                            message = __('%1$s has entered and left the groupchat', nick);
                         } else {
-                            message = __('%1$s has entered and left the room. "%2$s"', nick, stat);
+                            message = __('%1$s has entered and left the groupchat. "%2$s"', nick, stat);
                         }
                         last_el.outerHTML =
                             tpl_info({
@@ -1449,9 +1449,9 @@
                     } else {
                         let message;
                         if (_.isNil(stat)) {
-                            message = __('%1$s has left the room', nick);
+                            message = __('%1$s has left the groupchat', nick);
                         } else {
-                            message = __('%1$s has left the room. "%2$s"', nick, stat);
+                            message = __('%1$s has left the groupchat. "%2$s"', nick, stat);
                         }
                         const data = {
                             'message': message,
@@ -1494,9 +1494,9 @@
                         if (!_.isNull(error.querySelector('not-authorized'))) {
                             this.renderPasswordForm();
                         } else if (!_.isNull(error.querySelector('registration-required'))) {
-                            this.showDisconnectMessages(__('You are not on the member list of this room.'));
+                            this.showDisconnectMessages(__('You are not on the member list of this groupchat.'));
                         } else if (!_.isNull(error.querySelector('forbidden'))) {
-                            this.showDisconnectMessages(__('You have been banned from this room.'));
+                            this.showDisconnectMessages(__('You have been banned from this groupchat.'));
                         }
                     } else if (error.getAttribute('type') === 'modify') {
                         if (!_.isNull(error.querySelector('jid-malformed'))) {
@@ -1506,13 +1506,13 @@
                         if (!_.isNull(error.querySelector('not-allowed'))) {
                             this.showDisconnectMessages(__('You are not allowed to create new rooms.'));
                         } else if (!_.isNull(error.querySelector('not-acceptable'))) {
-                            this.showDisconnectMessages(__("Your nickname doesn't conform to this room's policies."));
+                            this.showDisconnectMessages(__("Your nickname doesn't conform to this groupchat's policies."));
                         } else if (!_.isNull(error.querySelector('conflict'))) {
                             this.onNicknameClash(presence);
                         } else if (!_.isNull(error.querySelector('item-not-found'))) {
-                            this.showDisconnectMessages(__("This room does not (yet) exist."));
+                            this.showDisconnectMessages(__("This groupchat does not (yet) exist."));
                         } else if (!_.isNull(error.querySelector('service-unavailable'))) {
-                            this.showDisconnectMessages(__("This room has reached its maximum number of occupants."));
+                            this.showDisconnectMessages(__("This groupchat has reached its maximum number of participants."));
                         } else if (!_.isNull(error.querySelector('remote-server-not-found'))) {
                             const messages = [__("Remote server not found")];
                             const reason = _.get(error.querySelector('text'), 'textContent');
@@ -1602,7 +1602,7 @@
 
                 render () {
                     this.el.innerHTML = tpl_room_panel({
-                        'heading_chatrooms': __('Chatrooms'),
+                        'heading_chatrooms': __('Groupchats'),
                         'title_new_room': __('Add a new room'),
                         'title_list_rooms': __('Query for rooms')
                     });
@@ -1643,8 +1643,8 @@
                               'hint_show': _converse.PRETTY_CHAT_STATUS[show],
                               'hint_occupant': __('Click to mention %1$s in your message.', this.model.get('nick')),
                               'desc_moderator': __('This user is a moderator.'),
-                              'desc_participant': __('This user can send messages in this room.'),
-                              'desc_visitor': __('This user can NOT send messages in this room.'),
+                              'desc_participant': __('This user can send messages in this groupchat.'),
+                              'desc_visitor': __('This user can NOT send messages in this groupchat.'),
                               'label_moderator': __('Moderator'),
                               'label_visitor': __('Visitor'),
                               'label_owner': __('Owner'),
@@ -1701,7 +1701,7 @@
                     this.el.innerHTML = tpl_chatroom_sidebar(
                         _.extend(this.chatroomview.model.toJSON(), {
                             'allow_muc_invitations': _converse.allow_muc_invitations,
-                            'label_occupants': __('Occupants')
+                            'label_occupants': __('Participants')
                         })
                     );
                     if (_converse.allow_muc_invitations) {

+ 8 - 8
src/converse-roomslist.js

@@ -118,12 +118,12 @@
                             // supported by the XMPP server. So we can use it
                             // as a check for support (other ways of checking are async).
                             'allow_bookmarks': _converse.allow_bookmarks && _converse.bookmarks,
-                            'info_leave_room': __('Leave this room'),
-                            'info_remove_bookmark': __('Unbookmark this room'),
-                            'info_add_bookmark': __('Bookmark this room'),
-                            'info_title': __('Show more information on this room'),
+                            'info_leave_room': __('Leave this groupchat'),
+                            'info_remove_bookmark': __('Unbookmark this groupchat'),
+                            'info_add_bookmark': __('Bookmark this groupchat'),
+                            'info_title': __('Show more information on this groupchat'),
                             'name': this.getRoomsListElementName(),
-                            'open_title': __('Click to open this room')
+                            'open_title': __('Click to open this groupchat')
                         }));
                 },
 
@@ -181,8 +181,8 @@
                 render () {
                     this.el.innerHTML = tpl_rooms_list({
                         'toggle_state': this.list_model.get('toggle-state'),
-                        'desc_rooms': __('Click to toggle the rooms list'),
-                        'label_rooms': __('Open Rooms'),
+                        'desc_rooms': __('Click to toggle the list of open groupchats'),
+                        'label_rooms': __('Open Groupchats'),
                         '_converse': _converse
                     });
                     if (this.list_model.get('toggle-state') !== _converse.OPENED) {
@@ -225,7 +225,7 @@
                     ev.preventDefault();
                     const name = ev.target.getAttribute('data-room-name');
                     const jid = ev.target.getAttribute('data-room-jid');
-                    if (confirm(__("Are you sure you want to leave the room %1$s?", name))) {
+                    if (confirm(__("Are you sure you want to leave the groupchat %1$s?", name))) {
                         // TODO: replace with API call
                         _converse.chatboxviews.get(jid).close();
                     }

+ 11 - 11
src/templates/chatroom_features.html

@@ -3,40 +3,40 @@
 {[ } ]}
 <ul class="features-list">
 {[ if (o.passwordprotected) { ]}
-<li class="feature" title="{{{ o.__('This room requires a password before entry') }}}"><span class="fa fa-lock"></span>{{{ o.__('Password protected') }}}</li>
+<li class="feature" title="{{{ o.__('This groupchat requires a password before entry') }}}"><span class="fa fa-lock"></span>{{{ o.__('Password protected') }}}</li>
 {[ } ]}
 {[ if (o.unsecured) { ]}
-<li class="feature" title="{{{ o.__('This room does not require a password upon entry') }}}"><span class="fa fa-unlock"></span>{{{ o.__('No password') }}}</li>
+<li class="feature" title="{{{ o.__('This groupchat does not require a password upon entry') }}}"><span class="fa fa-unlock"></span>{{{ o.__('No password') }}}</li>
 {[ } ]}
 {[ if (o.hidden) { ]}
-<li class="feature" title="{{{ o.__('This room is not publicly searchable') }}}"><span class="fa fa-eye-slash"></span>{{{ o.__('Hidden') }}}</li>
+<li class="feature" title="{{{ o.__('This groupchat is not publicly searchable') }}}"><span class="fa fa-eye-slash"></span>{{{ o.__('Hidden') }}}</li>
 {[ } ]}
 {[ if (o.public_room) { ]}
-<li class="feature" title="{{{ o.__('This room is publicly searchable') }}}"><span class="fa fa-eye"></span>{{{ o.__('Public') }}}</li>
+<li class="feature" title="{{{ o.__('This groupchat is publicly searchable') }}}"><span class="fa fa-eye"></span>{{{ o.__('Public') }}}</li>
 {[ } ]}
 {[ if (o.membersonly) { ]}
-<li class="feature" title="{{{ o.__('this room is restricted to members only') }}}"><span class="fa fa-address-book"></span>{{{ o.__('Members only') }}}</li>
+<li class="feature" title="{{{ o.__('this groupchat is restricted to members only') }}}"><span class="fa fa-address-book"></span>{{{ o.__('Members only') }}}</li>
 {[ } ]}
 {[ if (o.open) { ]}
-<li class="feature" title="{{{ o.__('Anyone can join this room') }}}"><span class="fa fa-globe"></span>{{{ o.__('Open') }}}</li>
+<li class="feature" title="{{{ o.__('Anyone can join this groupchat') }}}"><span class="fa fa-globe"></span>{{{ o.__('Open') }}}</li>
 {[ } ]}
 {[ if (o.persistent) { ]}
-<li class="feature" title="{{{ o.__('This room persists even if it\'s unoccupied') }}}"><span class="fa fa-save"></span>{{{ o.__('Persistent') }}}</li>
+<li class="feature" title="{{{ o.__('This groupchat persists even if it\'s unoccupied') }}}"><span class="fa fa-save"></span>{{{ o.__('Persistent') }}}</li>
 {[ } ]}
 {[ if (o.temporary) { ]}
-<li class="feature" title="{{{ o.__('This room will disappear once the last person leaves') }}}"><span class="fa fa-snowflake-o"></span>{{{ o.__('Temporary') }}}</li>
+<li class="feature" title="{{{ o.__('This groupchat will disappear once the last person leaves') }}}"><span class="fa fa-snowflake-o"></span>{{{ o.__('Temporary') }}}</li>
 {[ } ]}
 {[ if (o.nonanonymous) { ]}
-<li class="feature" title="{{{ o.__('All other room occupants can see your XMPP username') }}}"><span class="fa fa-id-card"></span>{{{ o.__('Not anonymous') }}}</li>
+<li class="feature" title="{{{ o.__('All other groupchat participants can see your XMPP username') }}}"><span class="fa fa-id-card"></span>{{{ o.__('Not anonymous') }}}</li>
 {[ } ]}
 {[ if (o.semianonymous) { ]}
 <li class="feature" title="{{{ o.__('Only moderators can see your XMPP username') }}}"><span class="fa fa-user-secret"></span>{{{ o.__('Semi-anonymous') }}}</li>
 {[ } ]}
 {[ if (o.moderated) { ]}
-<li class="feature" title="{{{ o.__('This room is being moderated') }}}"><span class="fa fa-gavel"></span>{{{ o.__('Moderated') }}}</li>
+<li class="feature" title="{{{ o.__('This groupchat is being moderated') }}}"><span class="fa fa-gavel"></span>{{{ o.__('Moderated') }}}</li>
 {[ } ]}
 {[ if (o.unmoderated) { ]}
-<li class="feature" title="{{{ o.__('This room is not being moderated') }}}"><span class="fa fa-info-circle"></span>{{{ o.__('Not moderated') }}}</li>
+<li class="feature" title="{{{ o.__('This groupchat is not being moderated') }}}"><span class="fa fa-info-circle"></span>{{{ o.__('Not moderated') }}}</li>
 {[ } ]}
 {[ if (o.mam_enabled) { ]}
 <li class="feature" title="{{{ o.__('Messages are archived on the server') }}}"><span class="fa fa-database"></span>{{{ o.__('Message archiving') }}}</li>