################################################################################
# Copyright (c) 2008 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:
#     Composent, Inc. - initial API and implementation
################################################################################
DocShare_EDITOR_SHARE_POPUP_MESSAGE=Editor share request from {0} for {1}.\n\nDo you want to accept and open editor?
DocShare_EDITOR_SHARE_POPUP_TITLE=Editor Share
DocShare_ERROR_STARTING_EDITOR_MESSAGE=Error Starting Editor Sharing {0}
DocShare_ERROR_STARTING_EDITOR_TITLE=Error
DocShare_EXCEPTION_HANDLE_MESSAGE=handleMessage exception
DocShare_EXCEPTION_INVALID_MESSAGE=message is invalid type {0}
DocShare_EXCEPTION_RECEIVING_MESSAGE_MESSAGE=Exception handling start message {0}
DocShare_EXCEPTION_RECEIVING_MESSAGE_TITLE=Exception receiving message
DocShare_EXCEPTION_SEND_MESSAGE=send message error
DocShare_REMOTE_USER_STOPPED=Remote user stopped shared editing
DocShare_STOP_SHARED_EDITOR_REMOTE=Remote user disconnected, and shared editing stopped
DocShare_STOP_SHARED_EDITOR_TITLE=Shared Editor Stopped
DocShare_STOP_SHARED_EDITOR_US=Local account was disconnected, and shared editing stopped
DocShareRosterMenuContributionItem_SHARE_EDITOR_MENU_TEXT=Share Editor With
DocShareRosterMenuContributionItem_STOP_SHARE_EDITOR_MENU_TEXT=Stop Sharing Editor with {0}
DocShareRosterMenuHandler_DOCSHARE_START_ERROR_TITLE=Error Starting Docshare
DocShareRosterMenuHandler_ERROR_EDITOR_ALREADY_SHARING=Editor is already sharing
DocShareRosterMenuHandler_ERROR_NO_SENDER=No sender available
DocShareRosterMenuHandler_ERROR_NOT_CONNECTED=Not connected
DocShareRosterMenuHandler_EXCEPTION_EDITOR_NOT_TEXT=Editor is not text editor
DocShareRosterMenuHandler_NO_FILENAME_WITH_CONTENT=No file name associated with content
ECFStart_ERROR_CONTAINER_MANAGER_NOT_AVAILABLE=Container manager not available
ECFStart_ERROR_DOCUMENT_SHARE_NOT_CREATED=Document share for container {0} not created.
