mirror of
https://github.com/igniterealtime/Spark.git
synced 2026-08-18 11:10:02 +00:00
1) i18n work.
git-svn-id: http://svn.igniterealtime.org/svn/repos/spark/trunk@5169 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
@ -10,6 +10,7 @@
|
||||
|
||||
package org.jivesoftware.spark.ui.rooms;
|
||||
|
||||
import org.jivesoftware.resource.Res;
|
||||
import org.jivesoftware.resource.SparkRes;
|
||||
import org.jivesoftware.smack.PacketListener;
|
||||
import org.jivesoftware.smack.Roster;
|
||||
@ -139,7 +140,7 @@ public class ChatRoomImpl extends ChatRoom {
|
||||
|
||||
// Create toolbar buttons.
|
||||
ChatRoomButton infoButton = new ChatRoomButton("", SparkRes.getImageIcon(SparkRes.PROFILE_IMAGE_24x24));
|
||||
infoButton.setToolTipText("View information about this user");
|
||||
infoButton.setToolTipText(Res.getString("message.view.information.about.this.user"));
|
||||
|
||||
// Create basic toolbar.
|
||||
getToolBar().addChatRoomButton(infoButton);
|
||||
@ -147,7 +148,7 @@ public class ChatRoomImpl extends ChatRoom {
|
||||
// If the user is not in the roster, then allow user to add them.
|
||||
if (entry == null && !StringUtils.parseResource(participantJID).equals(participantNickname)) {
|
||||
ChatRoomButton addToRosterButton = new ChatRoomButton("", SparkRes.getImageIcon(SparkRes.ADD_IMAGE_24x24));
|
||||
addToRosterButton.setToolTipText("Add this user to your roster.");
|
||||
addToRosterButton.setToolTipText(Res.getString("message.add.this.user.to.your.roster"));
|
||||
getToolBar().addChatRoomButton(addToRosterButton);
|
||||
addToRosterButton.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
@ -366,13 +367,13 @@ public class ChatRoomImpl extends ChatRoom {
|
||||
|
||||
if (presence.getType() == Presence.Type.unavailable && contactItem != null) {
|
||||
if (isOnline) {
|
||||
getTranscriptWindow().insertNotificationMessage("*** " + participantNickname + " went offline at " + time + ".");
|
||||
getTranscriptWindow().insertNotificationMessage("*** " + Res.getString("message.went.offline", participantNickname, time));
|
||||
}
|
||||
isOnline = false;
|
||||
}
|
||||
else if (presence.getType() == Presence.Type.available) {
|
||||
if (!isOnline) {
|
||||
getTranscriptWindow().insertNotificationMessage("*** " + participantNickname + " is online at " + time + ".");
|
||||
getTranscriptWindow().insertNotificationMessage("*** " + Res.getString("message.came.online", participantNickname, time));
|
||||
}
|
||||
isOnline = true;
|
||||
}
|
||||
@ -387,7 +388,7 @@ public class ChatRoomImpl extends ChatRoom {
|
||||
// Check to see if the user is online to recieve this message.
|
||||
RosterEntry entry = roster.getEntry(participantJID);
|
||||
if (presence == null && !offlineSent && entry != null) {
|
||||
getTranscriptWindow().insertErrorMessage("The user will be unable to receive offline messages.");
|
||||
getTranscriptWindow().insertErrorMessage(Res.getString("message.offline.error"));
|
||||
offlineSent = true;
|
||||
}
|
||||
}
|
||||
@ -397,7 +398,7 @@ public class ChatRoomImpl extends ChatRoom {
|
||||
// Check to see if the user is online to recieve this message.
|
||||
RosterEntry entry = roster.getEntry(participantJID);
|
||||
if (presence == null && !offlineSent && entry != null) {
|
||||
getTranscriptWindow().insertErrorMessage("The user is offline and will receive the message on their next login.");
|
||||
getTranscriptWindow().insertErrorMessage(Res.getString("message.offline"));
|
||||
offlineSent = true;
|
||||
}
|
||||
|
||||
@ -538,7 +539,7 @@ public class ChatRoomImpl extends ChatRoom {
|
||||
*/
|
||||
public void showTyping(boolean typing) {
|
||||
if (typing) {
|
||||
String isTypingText = participantNickname + " is typing a message...";
|
||||
String isTypingText = Res.getString("message.is.typing.a.message", participantNickname);
|
||||
getNotificationLabel().setText(isTypingText);
|
||||
getNotificationLabel().setIcon(SparkRes.getImageIcon(SparkRes.SMALL_MESSAGE_EDIT_IMAGE));
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@
|
||||
package org.jivesoftware.spark.ui.rooms;
|
||||
|
||||
import org.jivesoftware.resource.SparkRes;
|
||||
import org.jivesoftware.resource.Res;
|
||||
import org.jivesoftware.smack.XMPPException;
|
||||
import org.jivesoftware.smack.filter.AndFilter;
|
||||
import org.jivesoftware.smack.filter.FromContainsFilter;
|
||||
@ -143,7 +144,7 @@ public final class GroupChatRoom extends ChatRoom {
|
||||
}
|
||||
};
|
||||
|
||||
inviteAction.putValue(Action.NAME, "Invite Users");
|
||||
inviteAction.putValue(Action.NAME, Res.getString("menuitem.invite.users"));
|
||||
inviteAction.putValue(Action.SMALL_ICON, SparkRes.getImageIcon(SparkRes.SMALL_MESSAGE_IMAGE));
|
||||
|
||||
popup.add(inviteAction);
|
||||
@ -162,7 +163,7 @@ public final class GroupChatRoom extends ChatRoom {
|
||||
}
|
||||
};
|
||||
|
||||
configureAction.putValue(Action.NAME, "Configure Room");
|
||||
configureAction.putValue(Action.NAME, Res.getString("title.configure.room"));
|
||||
configureAction.putValue(Action.SMALL_ICON, SparkRes.getImageIcon(SparkRes.SMALL_ALL_AGENTS_IMAGE));
|
||||
if (SparkManager.getUserManager().isOwner((GroupChatRoom)getChatRoom(), chat.getNickname())) {
|
||||
popup.add(configureAction);
|
||||
@ -170,7 +171,7 @@ public final class GroupChatRoom extends ChatRoom {
|
||||
|
||||
Action subjectAction = new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
String newSubject = JOptionPane.showInputDialog(getChatRoom(), "Enter New Subject?", "Change Subject", JOptionPane.QUESTION_MESSAGE);
|
||||
String newSubject = JOptionPane.showInputDialog(getChatRoom(), Res.getString("message.enter.new.subject") + ":", Res.getString("title.change.subject"), JOptionPane.QUESTION_MESSAGE);
|
||||
if (ModelUtil.hasLength(newSubject)) {
|
||||
try {
|
||||
chat.changeSubject(newSubject);
|
||||
@ -182,19 +183,19 @@ public final class GroupChatRoom extends ChatRoom {
|
||||
}
|
||||
};
|
||||
|
||||
subjectAction.putValue(Action.NAME, "Change subject");
|
||||
subjectAction.putValue(Action.NAME, Res.getString("menuitem.change.subject"));
|
||||
subjectAction.putValue(Action.SMALL_ICON, SparkRes.getImageIcon(SparkRes.SMALL_MESSAGE_EDIT_IMAGE));
|
||||
popup.add(subjectAction);
|
||||
|
||||
// Define actions to modify/view room information
|
||||
Action destroyRoomAction = new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
int ok = JOptionPane.showConfirmDialog(getChatRoom(), "Destroying the room removes all users from the room. Continue?", "Destroy Room Confirmation", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
|
||||
int ok = JOptionPane.showConfirmDialog(getChatRoom(), Res.getString("message.confirm.destruction.of.room"), Res.getString("title.confirmation"), JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
|
||||
if (ok == JOptionPane.NO_OPTION) {
|
||||
return;
|
||||
}
|
||||
|
||||
String reason = JOptionPane.showInputDialog(getChatRoom(), "Reason for destroying the room?", "Enter Reason", JOptionPane.QUESTION_MESSAGE);
|
||||
String reason = JOptionPane.showInputDialog(getChatRoom(), Res.getString("message.room.destruction.reason"), Res.getString("title.enter.reason"), JOptionPane.QUESTION_MESSAGE);
|
||||
if (ModelUtil.hasLength(reason)) {
|
||||
try {
|
||||
chat.destroy(reason, null);
|
||||
@ -207,7 +208,7 @@ public final class GroupChatRoom extends ChatRoom {
|
||||
}
|
||||
};
|
||||
|
||||
destroyRoomAction.putValue(Action.NAME, "Destroy Room");
|
||||
destroyRoomAction.putValue(Action.NAME, Res.getString("menuitem.destroy.room"));
|
||||
destroyRoomAction.putValue(Action.SMALL_ICON, SparkRes.getImageIcon(SparkRes.SMALL_DELETE));
|
||||
if (SparkManager.getUserManager().isOwner((GroupChatRoom)getChatRoom(), getNickname())) {
|
||||
popup.add(destroyRoomAction);
|
||||
@ -441,7 +442,7 @@ public final class GroupChatRoom extends ChatRoom {
|
||||
getToolBar().setVisible(false);
|
||||
|
||||
// Update Room Notice To Inform Agent that he has left the chat.
|
||||
getTranscriptWindow().insertNotificationMessage(getNickname() + " has left the room.");
|
||||
getTranscriptWindow().insertNotificationMessage(Res.getString("message.user.left.room", getNickname()));
|
||||
|
||||
// Leave the Chat.
|
||||
try {
|
||||
@ -455,7 +456,7 @@ public final class GroupChatRoom extends ChatRoom {
|
||||
getTranscriptWindow().showDisabledWindowUI();
|
||||
|
||||
// Update Notification Label
|
||||
getNotificationLabel().setText("Chat session ended on " + SparkManager.DATE_SECOND_FORMATTER.format(new java.util.Date()));
|
||||
getNotificationLabel().setText(Res.getString("message.chat.session.ended", SparkManager.DATE_SECOND_FORMATTER.format(new java.util.Date())));
|
||||
getNotificationLabel().setIcon(null);
|
||||
getNotificationLabel().setEnabled(false);
|
||||
|
||||
@ -611,11 +612,11 @@ public final class GroupChatRoom extends ChatRoom {
|
||||
String errorMessage = "";
|
||||
|
||||
if (message.getError().getCode() == 403 && message.getSubject() != null) {
|
||||
errorMessage = "You are not allowed to change the subject of this room.";
|
||||
errorMessage = Res.getString("message.subject.change.error");
|
||||
}
|
||||
|
||||
else if (message.getError().getCode() == 403) {
|
||||
errorMessage = "Received a forbidden error from the server.";
|
||||
errorMessage = Res.getString("message.forbidden.error");
|
||||
}
|
||||
|
||||
if (ModelUtil.hasLength(errorMessage)) {
|
||||
@ -637,7 +638,7 @@ public final class GroupChatRoom extends ChatRoom {
|
||||
Destroy destroy = mucUser.getDestroy();
|
||||
if (destroy != null) {
|
||||
String reason = destroy.getReason();
|
||||
JOptionPane.showMessageDialog(this, "This room has been destroyed.\nReason: " + reason, "Room Destroyed", JOptionPane.INFORMATION_MESSAGE);
|
||||
JOptionPane.showMessageDialog(this, Res.getString("message.room.destroyed", reason), Res.getString("title.room.destroyed"), JOptionPane.INFORMATION_MESSAGE);
|
||||
leaveChatRoom();
|
||||
return;
|
||||
}
|
||||
@ -647,7 +648,7 @@ public final class GroupChatRoom extends ChatRoom {
|
||||
if (presence.getType() == Presence.Type.unavailable && !"303".equals(code)) {
|
||||
if (currentUserList.contains(from)) {
|
||||
if (showPresenceMessages) {
|
||||
getTranscriptWindow().insertNotificationMessage(nickname + " has left the room.");
|
||||
getTranscriptWindow().insertNotificationMessage(Res.getString("message.user.left.room", nickname));
|
||||
scrollToBottom();
|
||||
}
|
||||
currentUserList.remove(from);
|
||||
@ -658,7 +659,7 @@ public final class GroupChatRoom extends ChatRoom {
|
||||
currentUserList.add(from);
|
||||
getChatInputEditor().setEnabled(true);
|
||||
if (showPresenceMessages) {
|
||||
getTranscriptWindow().insertNotificationMessage(nickname + " has joined the room.");
|
||||
getTranscriptWindow().insertNotificationMessage(Res.getString("message.user.joined.room", nickname));
|
||||
scrollToBottom();
|
||||
}
|
||||
}
|
||||
@ -669,121 +670,123 @@ public final class GroupChatRoom extends ChatRoom {
|
||||
chat.addParticipantStatusListener(new DefaultParticipantStatusListener() {
|
||||
public void kicked(String participant) {
|
||||
String nickname = StringUtils.parseResource(participant);
|
||||
insertText(nickname + " has been kicked out of the room.");
|
||||
insertText(Res.getString("message.user.kicked.from.room", nickname));
|
||||
}
|
||||
|
||||
public void voiceGranted(String participant) {
|
||||
String nickname = StringUtils.parseResource(participant);
|
||||
insertText(nickname + " has been given a voice in this room.");
|
||||
insertText(Res.getString("message.user.given.voice", nickname));
|
||||
}
|
||||
|
||||
public void voiceRevoked(String participant) {
|
||||
String nickname = StringUtils.parseResource(participant);
|
||||
insertText(nickname + "'s voice has been revoked.");
|
||||
insertText(Res.getString("message.user.voice.revoked", nickname));
|
||||
}
|
||||
|
||||
public void banned(String participant) {
|
||||
String nickname = StringUtils.parseResource(participant);
|
||||
insertText(nickname + " has been banned from this room.");
|
||||
insertText(Res.getString("message.user.banned", nickname));
|
||||
}
|
||||
|
||||
public void membershipGranted(String participant) {
|
||||
String nickname = StringUtils.parseResource(participant);
|
||||
insertText(nickname + " has been given membership priviliges.");
|
||||
insertText(Res.getString("message.user.granted.membership", nickname));
|
||||
}
|
||||
|
||||
public void membershipRevoked(String participant) {
|
||||
String nickname = StringUtils.parseResource(participant);
|
||||
insertText(nickname + "'s membership has been revoked.");
|
||||
insertText(Res.getString("message.user.revoked.membership", nickname));
|
||||
}
|
||||
|
||||
public void moderatorGranted(String participant) {
|
||||
String nickname = StringUtils.parseResource(participant);
|
||||
insertText(nickname + " has been granted moderator privileges.");
|
||||
insertText(Res.getString("message.user.granted.moderator", nickname));
|
||||
}
|
||||
|
||||
public void moderatorRevoked(String participant) {
|
||||
String nickname = StringUtils.parseResource(participant);
|
||||
insertText(nickname + "'s moderator privileges have been revoked.");
|
||||
insertText(Res.getString("message.user.revoked.moderator", nickname));
|
||||
}
|
||||
|
||||
public void ownershipGranted(String participant) {
|
||||
String nickname = StringUtils.parseResource(participant);
|
||||
insertText(nickname + " has been granted owner privileges.");
|
||||
insertText(Res.getString("message.user.granted.owner", nickname));
|
||||
}
|
||||
|
||||
public void ownershipRevoked(String participant) {
|
||||
String nickname = StringUtils.parseResource(participant);
|
||||
insertText(nickname + "'s owner privileges have been revoked.");
|
||||
insertText(Res.getString("message.user.revoked.owner", nickname));
|
||||
}
|
||||
|
||||
public void adminGranted(String participant) {
|
||||
String nickname = StringUtils.parseResource(participant);
|
||||
insertText(nickname + " has been granted administrator privileges.");
|
||||
insertText(Res.getString("message.user.granted.admin", nickname));
|
||||
}
|
||||
|
||||
public void adminRevoked(String participant) {
|
||||
String nickname = StringUtils.parseResource(participant);
|
||||
insertText(nickname + " administrator privileges have been revoked.");
|
||||
insertText(Res.getString("message.user.revoked.admin", nickname));
|
||||
}
|
||||
|
||||
public void nicknameChanged(String participant, String nickname) {
|
||||
insertText(StringUtils.parseResource(participant) + " is now known as " + nickname);
|
||||
insertText(Res.getString("message.user.nickname.changed", StringUtils.parseResource(participant), nickname));
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
chat.addUserStatusListener(new DefaultUserStatusListener() {
|
||||
public void kicked(String s, String reason) {
|
||||
insertText("You have been kicked by " + s);
|
||||
insertText(Res.getString("message.your.kicked", s));
|
||||
getChatInputEditor().setEnabled(false);
|
||||
getSplitPane().setRightComponent(null);
|
||||
leaveChatRoom();
|
||||
}
|
||||
|
||||
public void voiceGranted() {
|
||||
insertText("You have been given a voice in this chat.");
|
||||
insertText(Res.getString("message.your.voice.revoked"));
|
||||
getChatInputEditor().setEnabled(true);
|
||||
}
|
||||
|
||||
public void voiceRevoked() {
|
||||
insertText("Your voice has been revoked.");
|
||||
insertText(Res.getString("message.your.voice.revoked"));
|
||||
getChatInputEditor().setEnabled(false);
|
||||
}
|
||||
|
||||
public void banned(String s, String reason) {
|
||||
insertText("You have been banned from this room.");
|
||||
insertText(Res.getString("message.your.banned"));
|
||||
}
|
||||
|
||||
public void membershipGranted() {
|
||||
insertText("You have been granted membership privileges.");
|
||||
insertText(Res.getString("message.your.membership.granted"));
|
||||
}
|
||||
|
||||
public void membershipRevoked() {
|
||||
insertText("Your membership has been revoked.");
|
||||
insertText(Res.getString("message.your.membership.revoked"));
|
||||
}
|
||||
|
||||
public void moderatorGranted() {
|
||||
insertText("You have been granted moderator privileges.");
|
||||
insertText(Res.getString("message.your.moderator.granted"));
|
||||
}
|
||||
|
||||
public void moderatorRevoked() {
|
||||
insertText("Your moderator privileges have been revoked.");
|
||||
insertText(Res.getString("message.your.moderator.revoked"));
|
||||
}
|
||||
|
||||
public void ownershipGranted() {
|
||||
insertText("You have been granted owner privileges.");
|
||||
insertText(Res.getString("message.your.ownership.granted"));
|
||||
}
|
||||
|
||||
public void ownershipRevoked() {
|
||||
insertText("Your owner privileges have been revoked.");
|
||||
insertText(Res.getString("message.your.ownership.revoked"));
|
||||
}
|
||||
|
||||
public void adminGranted() {
|
||||
insertText("You have been granted administrator privileges.");
|
||||
insertText(Res.getString("message.your.admin.granted"));
|
||||
}
|
||||
|
||||
public void adminRevoked() {
|
||||
insertText("Your admin privileges have been revoked.");
|
||||
insertText(Res.getString("message.your.revoked.granted"));
|
||||
}
|
||||
});
|
||||
|
||||
@ -805,12 +808,12 @@ public final class GroupChatRoom extends ChatRoom {
|
||||
private class SubjectListener implements SubjectUpdatedListener {
|
||||
|
||||
public void subjectUpdated(String subject, String by) {
|
||||
subjectLabel.setText("Subject: " + subject);
|
||||
subjectLabel.setText(Res.getString("subject") + ": " + subject);
|
||||
subjectLabel.setToolTipText(subject);
|
||||
|
||||
String nickname = StringUtils.parseResource(by);
|
||||
|
||||
String insertMessage = "The subject has been changed to: " + subject;
|
||||
String insertMessage = Res.getString("message.subject.has.been.changed.to", subject);
|
||||
getTranscriptWindow().insertNotificationMessage(insertMessage);
|
||||
|
||||
}
|
||||
@ -939,7 +942,7 @@ public final class GroupChatRoom extends ChatRoom {
|
||||
|
||||
if (bareAddress.equals(getRoomname())) {
|
||||
String nickname = StringUtils.parseResource(from);
|
||||
String isTypingText = nickname + " is typing a message...";
|
||||
String isTypingText = Res.getString("message.is.typing.a.message", nickname);
|
||||
getNotificationLabel().setText(isTypingText);
|
||||
getNotificationLabel().setIcon(SparkRes.getImageIcon(SparkRes.SMALL_MESSAGE_EDIT_IMAGE));
|
||||
typingTimer.restart();
|
||||
|
||||
@ -163,6 +163,50 @@ message.specify.information.for.conference = Specify information for conference
|
||||
message.no.description.available = No description available
|
||||
message.no.subject.available = No subject available
|
||||
message.room.information.for = Room information for {0}
|
||||
message.view.information.about.this.user = View information about this user.
|
||||
message.add.this.user.to.your.roster = Add this user to your buddy list.
|
||||
message.came.online = {0} is online at {1}
|
||||
message.went.offline = {0} went offline at {1}
|
||||
message.offline.error = The user will be unable to receive offline messages.
|
||||
message.offline = The user is offline and will receive the message on their next login.
|
||||
message.is.typing.a.message = {0} is typing a message...
|
||||
message.enter.new.subject = Enter new subject
|
||||
message.confirm.destruction.of.room = Destroying the room removes all users from the room. Continue?
|
||||
message.room.destruction.reason = Reason for destroying the room?
|
||||
message.user.left.room = {0} has left the room.
|
||||
message.user.joined.room = {0} has joined the room.
|
||||
message.chat.session.ended = Chat session has ended on {0}
|
||||
message.subject.change.error = You are not allowed to change the subject of this room.
|
||||
message.forbidden.error = Received a forbidden error from the server.
|
||||
message.room.destroyed = This room has been destroyed due to the following reason: {0}
|
||||
message.subject.has.been.changed.to = The subject has been changed to {0}.
|
||||
|
||||
message.user.kicked.from.room = {0} has been kicked out of the room.
|
||||
message.user.given.voice = {0} has been given a voice in this room.
|
||||
message.user.voice.revoked = Voice has been revoked for {0}.
|
||||
message.user.banned = {0} has been banned from this room.
|
||||
message.user.granted.membership = {0} has been given membership priviliges.
|
||||
message.user.revoked.membership = Membership has been revoked for {0}.
|
||||
message.user.granted.moderator = {0} has been granted moderator privileges.
|
||||
message.user.revoked.moderator = Moderator priviliges have been revoked for {0}.
|
||||
message.user.granted.owner = {0} has been granted owner privileges.
|
||||
message.user.revoked.owner = Owner priviliges have been revoked for {0}.
|
||||
message.user.granted.admin = {0} has been granted administrator priviliges.
|
||||
message.user.revoked.admin = Administrator privileges have been revoked for {0}.
|
||||
message.user.nickname.changed = {0} is now knowns as {1}.
|
||||
message.your.kicked = You have been kicked by {0}.
|
||||
message.your.voice.revoked = You have been given a voice in this chat.
|
||||
message.your.voice.revoked = Your voice has been revoked.
|
||||
message.your.banned = You have been banned from this room.
|
||||
message.your.membership.granted = You have been granted membership privileges.
|
||||
message.your.membership.revoked = Your membership has been revoked.
|
||||
message.your.moderator.granted = You have been granted moderator privileges.
|
||||
message.your.moderator.revoked = Your moderator privileges have been revoked.
|
||||
message.your.ownership.granted = Your have been granted owner privileges.
|
||||
message.your.ownership.revoked = Your owner privilieges have been revoked.
|
||||
message.your.admin.granted = You have been granted administrator privileges.
|
||||
message.your.revoked.granted = Your admin privileges have been revoked.
|
||||
|
||||
|
||||
title.passwords.no.match = Confirm passwords.
|
||||
title.create.problem = Account Creation Problem
|
||||
@ -205,6 +249,10 @@ title.configure.chat.room = Configure Chat Room
|
||||
title.conference.invitation = Conference Invitation
|
||||
title.join.conference.room = Join Conference Room
|
||||
title.view.room.information = View Room Information
|
||||
title.configure.room = Configure Room
|
||||
title.change.subject = Change Subject
|
||||
title.enter.reason = Enter Reason
|
||||
title.room.destroyed = Room Destroyed
|
||||
|
||||
|
||||
|
||||
@ -260,7 +308,8 @@ menuitem.revoke.moderator = Revoke Moderator
|
||||
menuitem.invite.users = Invite Users
|
||||
menuitem.invite.group.to.conference = Invite group to conference
|
||||
menuitem.start.a.conference = Start a conference...
|
||||
|
||||
menuitem.change.subject = Change Subject
|
||||
menuitem.destroy.room = Destroy Room
|
||||
|
||||
tree.conference.services = Conference Services
|
||||
tree.users.in.room = Users In Room
|
||||
|
||||
Reference in New Issue
Block a user