################################################################################
# Copyright (c) 2007 Remy Suen, Composent, Inc., and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#    Remy Suen <remy.suen@gmail.com> - initial API and implementation
################################################################################

##########################
# Messages for EN locale #
##########################

IRCRootContainer_TopicChange = {0} has changed the topic to: {1}
IRCRootContainer_UserKicked = {0} has kicked {1} from {2} ({3})
IRCRootContainer_Connecting=Connecting
IRCRootContainer_Disconnected = Disconnected from {0}
IRCRootContainer_Error = ERROR: {0}
IRCRootContainer_Unknown_Message = Unknown Message: {0}, {1}, {2}, {3}
IRCRootContainer_Command_Error = {0} is not a  command. Commands begin with {1}. For example, '/help'
IRCRootContainer_Connecting_To=connecting to {0}
IRCRootContainer_Command_Unrecognized = Unrecognized command: {0}
IRCRootContainer_353_Error = 353 reply for channel {0} not found
IRCRootContainer_Whois = whois {0}
IRCRootContainer_Server = server: {0} - {1}
IRCRootContainer_Idle = {0} seconds idle
IRCRootContainer_0=host
IRCRootContainer_Whois_End = whois end
IRCRootContainer_Channels = channels: {0}

IRCRootContainer_Exception_Already_Connected = Already connected
IRCRootContainer_Exception_TargetID_Null = targetID cannot be null
IRCRootContainer_Exception_TargetID_Wrong_Type = targetID {0} not instance of {1}
IRCRootContainer_Exception_Connect_Failed = Connect failed to {0}
IRCRootContainer_Exception_Unexplained_Disconnect = Unexplained disconnection
IRCRootContainer_EXCEPTION_CONNECTION_CANNOT_BE_NULL=connection cannot be null
IRCRootContainer_EXCEPTION_TARGETID_CANNOT_BE_NULL=targetID cannot be null
IRCRootContainer_Exception_Create_ChatRoom = Exception creating IRCChannelContainer
IRCRootContainer_Exception_Parse = EXCEPTION PARSING: {0}. Message: {1}
IRCRootContainer_Connect_Timeout=Timeout connecting to {0}
IRCRootContainer_Exception_Create_Not_Supported = Creation not supported

IRCRootContainer_CTCP_VERSION_Request = Received a CTCP VERSION from {0}

IRCChannelContainer_Exception_Connecting = Connecting
IRCNamespace_EXCEPTION_INVALID_PROTOCOL={0} has invalid protocol.  URI must have protocol {1}
IRCChannelContainer_Exception_TargetID_Null = targetID cannot be null
IRCChannelContainer_Exception_Connect_Failed = Connect failed to {0}
IRCChannelContainer_Exception_Connect_Timeout = Timeout connecting to {0}
IRCContainerInstantiator_Exception_CreateID_Failed = Exception creating ID
