###############################################################################
# Copyright (c) 2012 Ericsson AB 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:
#     Ericsson AB - initial API and implementation
###############################################################################
#
# File describing the string use in the SMTP plug-in
#
#
#
MailDialog.label.title=New Email...
MailDialog.label.toLabel=To:
MailDialog.label.subjectLabel=Subject:
MailDialog.label.send=Send
MailDialog.label.toLabel.tooltip=Mail deliver to the following users.
MailDialog.label.subjectLabel.tooltip=Subject this e-mail is looking information about.
MailDialog.label.send.tooltip=Send message to the list of Authors.
MailDialog.label.close.tooltip=Close the popup window 
#
#
#
basic_parameter=Basic Parameters
enter_meet_info=Enter Meeting Information
start_time_label=Starts: 
duration_label=Duration (minutes): 
location_label=Location: 
dialog_title_error= "R4E Error"
no_input_given=No Input given
duration_Error=No input given for duration field
location_Error=No input given for location field
to_Error=No destination input given for To: field
subject_Error=No input given for subject field
message_body_Error=No message input given
#
# SMTP Pref page
#
smtp_pref_title =Enter a SMTP Server
smtp_pref_dialog_msg=SMTP Server: 

