# =============================================
# Eclipse Help System Workbench Properties File
# =============================================

# Part 1. (DO NOT TRANSLATE Part 1)
# These are the non-translatable properties.
# -----------------------------------------
back_icon= back.gif
forward_icon = forward.gif
s_topic_icon = topic.gif
search_icon = search_menu.gif
topic_icon = topic.gif


# Part 2. (DO TRANSLATE Part 2)
# These are the translatable properties.
# ------------------------------------------
back = Back
back_tip = Go Back
forward = Forward
forward_tip = Go Forward
Help_Error = Help Error
Help_Question = Help Question
Help_Info = Help Information
browserTitle = Help - {0}
no_browsers = There is no browser adapter configured to display {0}.  Ensure that you have a required browser and adapter installed, and that the browser program is available on the system path.
select_browser = The selected web browser adapter determines the web browser used to display\n\
                 help documents.  If only one browser adapter has been configured, the selection\n\
                 cannot be changed.
current_browser = Current &web browser adapter:
# search
Search_headers_only = Search headings only
expression = S&earch expression:
expression_label = * = any string, ? = any character, "" = phrase,\nAND, OR, NOT = boolean operators 
limit_to = Scope
singleSearchResult = "{0}" - 1 Help Document
multipleSearchResult = "{0}" - {1} Help Documents
HelpSearchPage.allBooks = &All
HelpSearchPage.allBooksText = All
HelpSearchPage.selectedBooks = Se&lected books
HelpSearchPage.choose = C&hoose...
HelpSearchPage.bookLabelSeparator = ;\ 
SearchFilteringOptions.description = &Select a set of books to be searched:
SearchFilteringOptions.title = Book Selection
StreamConsumer.linePrefix = Help browser message: {0}
SystemBrowser.noProgramForURL = Your system has no program registered for file {0}.  Change the file association or choose a different help web browser in the preferences.
SystemBrowser.noProgramForHTML= A program associated with ".html" extension could not be launched.  Change the file association or choose a different help web browser in the preferences.

# Error Messages 
# --------------
WE001 = The Help System viewer could not be initialized.\n\
	To display online documentation, the Help System requires \
	Internet Explorer, version 5.01 or later.\n\
	Please install or upgrade your current version of IE.
WE005 = Errors encountered while displaying help.
WE019 = Expected: {0} but got: {1}
WE021 = Exception occured executing help search
WE022 = Exception occured trying to obtain install location of Internet Explorer adapter.
WE023 = Internet Explorer adapter interrupted before Internet Explorer process has finished.
WE024 = Exception occured launching Internet Explorer help browser.  Executed command: {0}
WE025 = Exception occured reading from web browser.
WE026 = The following exception occured when reading commands: {0}
WE027 = Exception occured while creating browser control: {0}
WE028 = Unrecognized command: {0}
WE029 = Exception occured when when obtaining product icon.

# Warning Messages 
# ----------------
WW001 = Documentation is not installed.
WW002 = No description.
WW003 = Could not send command to Internet Explorer.  Possible that browser is not running.
WW004 = You have cancelled documentation indexing.  Indexing process happens only once after installation of new documentation.  You need to allow it to complete, before you can obtain any search results.  Subsequent searching of help will be fast.\n\nDo you want to restart indexing now?



   


	


