
# <copyright>
# </copyright>
#
#

# ====================================================================
# To code developer:
#   Do NOT change the properties between this line and the
#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
#   Make a new property name, append to the end of the file and change
#   the code to use the new property.
# ====================================================================

# ====================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# ====================================================================

pluginName = Workspace Edit Support
providerName = www.example.org

_UI_CreateChild_text = {0}
_UI_CreateChild_text2 = {1} {0}
_UI_CreateChild_text3 = {1}
_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.

_UI_PropertyDescriptor_description = The {0} of the {1}

_UI_Workspace_type = Workspace
_UI_ServerInfo_type = Server Info
_UI_Usersession_type = Usersession
_UI_ProjectSpace_type = Project Space
_UI_Unknown_type = Object

_UI_Unknown_datatype= Value

_UI_Workspace_projectSpaces_feature = Project Spaces
_UI_Workspace_serverInfos_feature = Server Infos
_UI_ServerInfo_name_feature = Name
_UI_ServerInfo_url_feature = Url
_UI_ServerInfo_port_feature = Port
_UI_ServerInfo_displayName_feature = Display Name
_UI_Usersession_username_feature = Username
_UI_Usersession_password_feature = Password
_UI_Usersession_sessionId_feature = Session Id
_UI_Usersession_serverInfo_feature = Server Info
_UI_ProjectSpace_project_feature = Project
_UI_ProjectSpace_baseVersion_feature = Base Version
_UI_ProjectSpace_localChanges_feature = Local Changes
_UI_ProjectSpace_usersession_feature = Usersession
_UI_Unknown_feature = Unspecified

_UI_ProjectSpace_lastUpdated_feature = Last Updated
_UI_ServerInfoAggregation_type = Server Info Aggregation
_UI_Workspace_serverInfoAggregation_feature = Server Info Aggregation
_UI_ServerInfoAggregation_serverInfos_feature = Server Infos
_UI_ProjectSpace_projectInfo_feature = Project Info
_UI_ProjectSpace_projectId_feature = Project Id
_UI_ProjectSpace_projectName_feature = Project Name
_UI_ProjectSpace_projectDescription_feature = Project Description
_UI_ServerInfo_usersession_feature = Usersession
_UI_ServerInfo_projectInfos_feature = Project Infos
_UI_Workspace_usersession_feature = Usersession
_UI_ServerInfo_lastUsersession_feature = Last Usersession
_UI_Usersession_persistentPassword_feature = Persistent Password
_UI_Usersession_savePassword_feature = Save Password
_UI_Workspace_usersessions_feature = Usersessions
_UI_Workspace_activeProjectSpace_feature = Active Project Space
_UI_Usersession_ACUser_feature = AC User
_UI_ProjectSpace_resourceCount_feature = Resource Count
_UI_ProjectSpace_dirty_feature = Dirty
_UI_ProjectSpace_operations_feature = Operations
_UI_ProjectSpace_oldLogMessages_feature = Old Log Messages
_UI_ProjectSpace_events_feature = Events
_UI_OperationComposite_type = Operation Composite
_UI_ProjectSpace_localOperations_feature = Local Operations
_UI_OperationComposite_operations_feature = Operations
_UI_WorkspaceModelVersion_type = Model Version
_UI_WorkspaceModelVersion_modelReleaseNumber_feature = Model Release Number
_UI_ProjectSpace_notifications_feature = Notifications
_UI_ServerInfo_certificateAlias_feature = Certificate Alias
_UI_PendingFileTransfer_type = Pending File Transfer
_UI_ProjectSpace_pendingFileTransfers_feature = Pending File Transfers
_UI_PendingFileTransfer_attachmentId_feature = Attachment Id
_UI_PendingFileTransfer_fileVersion_feature = File Version
_UI_PendingFileTransfer_filePath_feature = File Path
_UI_PendingFileTransfer_chunkNumber_feature = Chunk Number
_UI_PendingFileTransfer_upload_feature = Upload
_UI_PendingFileTransfer_fileName_feature = File Name
_UI_PendingFileTransfer_preliminaryFileName_feature = Preliminary File Name
_UI_EventComposite_type = Event Composite
_UI_EventComposite_events_feature = Events
_UI_ProjectSpace_eventComposite_feature = Event Composite
_UI_NotificationComposite_type = Notification Composite
_UI_ProjectSpace_notificationComposite_feature = Notification Composite
_UI_NotificationComposite_notifications_feature = Notifications
_UI_Usersession_changedProperties_feature = Changed Properties
_UI_ProjectSpace_waitingUploads_feature = Waiting Uploads
_UI_ProjectSpace_properties_feature = Properties
_UI_ProjectSpace_changedSharedProperties_feature = Changed Shared Properties
_UI_ProjectSpace_workspace_feature = Workspace
_UI_ProjectSpace_localChangePackage_feature = Local Change Package
_UI_ProjectSpace_mergedVersion_feature = Merged Version
