###############################################################################
# Copyright (c) 2010 Tasktop Technologies 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:
#     Tasktop Technologies - initial API and implementation
###############################################################################
CheckForUploadJob_Check_For_Upload=Check for Statistics Upload
InteractionEventLogger_Reading_History_From_File=Reading Interaction History from File
MonitorFileRolloverJob_Mylyn_Monitor_Log_Rollover=Mylyn Monitor Log Rollover
ReportGenerator_Generate_Statistics_Job=Generate statistics job
ReportGenerator_Mylyn_Usage_Summary_Generation=Generating Usage Summary Statistics
StudyParameters_All_Events_Submitted_To_Y=All events will be submitted to {0}
StudyParameters_Only_Events_From_X_Submitted_To_Y=Only events from {0}packages will be submitted to {1}
StudyParameters_Previously_Downloaded_X_Monitor=NOTE: You have previously downloaded the Mylyn monitor and the {0} user study plug-in with id: {1}\nIf you are not familiar with this plug-in do not upload data.
UiUsageMonitorPlugin_All_Data_Public=All data that is submitted to mylyn.eclipse.org will be publicly available under the Eclipse Public License (EPL).  By submitting your data, you are agreeing that it can be publicly available. Please press cancel on the submission dialog box if you do not wish to share your data.
UiUsageMonitorPlugin_Consent=Consent
UiUsageMonitorPlugin_Dont_Ask_Again=Don't ask again
UiUsageMonitorPlugin_Eclipse_Mylyn=Eclipse.org Mylyn
UiUsageMonitorPlugin_Fill_Out_Form=Fill out the following form to help us improve Mylyn based on your input.\n
UiUsageMonitorPlugin_Help_Improve_Eclipse_And_Mylyn=To help improve the Eclipse and Mylyn user experience please consider uploading your UI usage statistics.
UiUsageMonitorPlugin_Mylyn_Feedback=Mylyn Feedback
UiUsageMonitorPlugin_Submit_Feedback=Submit Feedback
UiUsageMonitorPlugin_Remind_Me_In_X_Days=Remind me in {0} day{1}
UiUsageMonitorPlugin_Send_Usage_Feedback=Send Usage Feedback
UsageUploadManager_Error_Getting_Uid_Http_Response=There was an error getting a user id: \nHTTP Response Code {0}\nPlease try again later
UsageUploadManager_Error_Getting_Uid_No_Network=There was an error getting a new user id: \nNo network connection.  Please try again later
UsageUploadManager_Error_Getting_Uid_X=There was an error getting a new user id: \n{0}
UsageUploadManager_Error_Getting_Uid_X_Y=There was an error getting a new user id: \n{0}{1}
UsageUploadManager_Error_Getting_UidX_Y=There was an error getting a new user id: \n{0}{1}
UsageUploadManager_Error_Uploading_Http_Response=There was an error uploading the {0}: \nHTTP Response Code {1}\nPlease try again later
UsageUploadManager_Error_Uploading_Proxy_Authentication=Could not upload because proxy server authentication failed.  Please check your proxy server settings.
UsageUploadManager_Error_Uploading_Uid_Incorrect=There was an error uploading the {0}: \nYour uid was incorrect: {1}\n
UsageUploadManager_Error_Uploading_X_No_Network=There was an error uploading the file: {0}\nNo network connection.  Please try again later
UsageUploadManager_Error_Uploading_X_Y=There was an error uploading the file{0}: \n{1}
