# @file          Resource Bundle Manager Base Class
# @fileEncoding  
# @fileLanguage  English
# @fileCountry   U.S.
# @fileVariant   
# @fileManager   Jared Jackson
# @fileComment   This is the Base Class of the translation resource bundle used by this application


#
# @group Base Class Groups Pane
#
# @groupComment Translation Items for the Base Class Group tabbed pane

# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
basegroup_group_comment=Group\ Comment\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
basegroup_group_name=Group\ Name\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
basegroup_group_options=Resource\ Group\ Options
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
basegroup_item_options=Resource\ Item\ Options
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
basestats_file_group=Resource\ Files

#
# @group Base Class Statistics Pane
#
# @groupComment All translations for strings appearing on the statistics pane for the base class

# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
basestats_duplicates_count=Number\ of\ Duplicate\ Resource\ Keys\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
basestats_file_count=Number\ of\ Resource\ Files\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
basestats_group_count=Number\ of\ Resource\ Groups\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
basestats_group_group=Resource\ Groups
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
basestats_item_count=Number\ of\ Resource\ Items\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
basestats_item_group=Resource\ Items

#
# @group Base Class Untranslated Items Pane
#
# @groupComment Translations appearing on the Base Class Untranslated Items pane

# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Indication of the file being viewed
baseuntrans_file=File\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Indication of the number of resource items not translated in the file
baseuntrans_untrans_count=Number\ of\ Untranslated\ Items\:

#
# @group Button Names
#
# @groupComment The names displayed on the various buttons

# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Button for creating a new resource language file
button_add_file=Add\ a\ New\ Resource\ File
# @translated true @created 2001-01-23 @modified 2001-01-23 @creator Jared Jackson @modifier Jared Jackson
# @comment 
button_add_file_trigger=n
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Button for creating a new resource group
button_add_group=Add\ a\ New\ Resource\ Group
# @translated true @created 2001-01-23 @modified 2001-01-23 @creator Jared Jackson @modifier Jared Jackson
# @comment 
button_add_group_trigger=g
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Button for creating a new resource translation item
button_add_resource=Add\ a\ New\ Resource\ Item
# @translated true @created 2001-01-23 @modified 2001-01-23 @creator Jared Jackson @modifier Jared Jackson
# @comment 
button_add_resource_trigger=r
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator a @modifier a
# @comment Generic button for canceling actions
button_cancel=Cancel
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Generic button for a choice or selection option
button_choose=Choose
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment 
button_choose_trigger=c
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Button for generic creation of groups, items, files, etc.
button_create=Create
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator a @modifier a
# @comment For creation of a resource group
button_create_group=Create\ Group
# @translated true @created 2001-01-23 @modified 2001-01-23 @creator Jared Jackson @modifier Jared Jackson
# @comment 
button_create_group_trigger=g
# @translated true @created 2001-02-02 @modified 2001-02-02 @creator Jared Jackson @modifier Jared Jackson
# @comment Button title for creating an item then continuing creating more items
button_create_more=Create\ &\ Continue
# @translated true @created 2001-02-02 @modified 2001-02-02 @creator Jared Jackson @modifier Jared Jackson
# @comment 
button_create_more_trigger=r
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator a @modifier a
# @comment Button for creating a resource translation item
button_create_resource=Create\ Resource
# @translated true @created 2001-01-23 @modified 2001-01-23 @creator Jared Jackson @modifier Jared Jackson
# @comment 
button_create_resource_trigger=c
# @translated true @created 2001-02-02 @modified 2001-02-02 @creator Jared Jackson @modifier Jared Jackson
# @comment 
button_create_trigger=c
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator a @modifier a
# @comment Button for removing a group and its contents
button_delete_group=Delete\ Group
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator a @modifier a
# @comment Button for permanently removing a resource from the bundle
button_delete_resource=Delete\ Resource
# @translated true @created 2001-01-23 @modified 2001-01-23 @creator Jared Jackson @modifier Jared Jackson
# @comment 
button_delete_resource_trigger=d
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Generic edit button
button_edit=Edit
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator a @modifier a
# @comment Button for editing group name and comment
button_edit_group=Edit\ Group
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator a @modifier a
# @comment Button for editing resource information, including key and translation
button_edit_resource=Edit\ Resource
# @translated true @created 2001-01-23 @modified 2001-01-23 @creator Jared Jackson @modifier Jared Jackson
# @comment 
button_edit_resource_trigger=e
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Button title for initiating an import of resources from an alternate source
button_import=Import
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment 
button_import_trigger=i
# @translated true @created 2001-01-23 @modified 2001-01-23 @creator Jared Jackson @modifier Jared Jackson
# @comment Button allows a selected resource to be marked as translated without further editing
button_mark_translated=Mark\ Resource\ as\ Translated
# @translated true @created 2001-01-23 @modified 2001-01-23 @creator Jared Jackson @modifier Jared Jackson
# @comment 
button_mark_translated_trigger=t
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment Button for adding the current resource bundle in the main application to the project
button_project_add=Add\ Current\ Bundle
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment 
button_project_add_trigger=a
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment Button for closing the project window
button_project_close=Close\ Project
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment 
button_project_close_trigger=c
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment Button for creating a new resource bundle project
button_project_new=New\ Project
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment 
button_project_new_trigger=n
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment Button for opening a project file
button_project_open=Open\ Project
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment 
button_project_open_trigger=o
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment Button for removing the currently selected resource bundle from the project
button_project_remove=Remove\ Selection
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment 
button_project_remove_trigger=r
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment Button for causing the selected resource bundle to be the one being edited in the main application
button_project_select=Edit\ Selected
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment 
button_project_select_trigger=e
# @translated true @created 2001-02-06 @modified 2001-02-06 @creator Jared Jackson @modifier Jared Jackson
# @comment Title for performing a complete search
button_search_find_all=Find\ All
# @translated true @created 2001-02-06 @modified 2001-02-06 @creator Jared Jackson @modifier Jared Jackson
# @comment 
button_search_find_all_trigger=f
# @translated true @created 2001-02-06 @modified 2001-02-06 @creator Jared Jackson @modifier Jared Jackson
# @comment Title for performing complete search and replace
button_search_replace_all=Replace\ All
# @translated true @created 2001-02-06 @modified 2001-02-06 @creator Jared Jackson @modifier Jared Jackson
# @comment 
button_search_replace_all_trigger=r
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Generic button for updating information
button_update=Update
# @translated true @created 2001-01-23 @modified 2001-01-23 @creator Jared Jackson @modifier Jared Jackson
# @comment 
button_update_trigger=u

#
# @group Dialogs
#
# @groupComment Translations associated with the applications various dialog boxes

# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Indication of wether or not a new file will be populated from the elements in the base class
dialog_checkbox_copy_elements=Copy\ entries\ from\ the\ base\ class\ to\ the\ new\ file
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Indicator of wether an item is translated or not
dialog_checkbox_translated=Translated
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_comment=Comment\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_country=Country
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_created=Created\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_creator=Created\ By\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @{1} The date
# @{0} The name of the person involved
# @comment The date and person associated with a creation or modification of an item
dialog_date_person={0}\ by\ {1}
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_default_comment=Default\ Comment\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_default_translation=Default\ Translation\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_delete_file=Delete\ a\ Resource\ File
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_delete_group=Delete\ a\ Resource\ Group
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_delete_item=Delete\ a\ Resource\ Item
# @translated true @created 2001-06-27 @modified 2001-06-27 @creator Unknown @modifier Unknown
# @comment Warning displayed when a user asks for a deletion of a file. Prompts for 'Yes' or 'No'
dialog_delete_warning=Warning\!\ The\ deletion\ operation\ can\ no\ be\ undone.\nAre\ you\ sure\ you\ want\ to\ continue?
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_encoding=Encoding\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_file_comment=Resource\ File\ Comment\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_file_filter_description=Base\ Class\ Property\ Files
# @translated true @created 2001-02-06 @modified 2001-02-06 @creator Jared Jackson @modifier Jared Jackson
# @comment Description of File Filter for RBReporter XML scan configuration files
dialog_file_filter_description_scan=XML\ RBReporter\ Scan\ Files
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_file_info=File\ Information
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_file_manager=Resource\ Manager\ Name\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_file_title=Resource\ File\ Title\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_group=Group\ Name\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_group_comment=Group\ Comment\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_key=Entry\ Key\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_language=Language
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_lookups=Lookups\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_modified=Last\ Modified\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_modifier=Last\ Modified\ By\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment The name of a language, country, or variant of a language file
dialog_name=Name\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Prompts the user to enter a name for the resource bundle, before creating that bundle
dialog_new_baseclass=Please\ enter\ a\ base\ class\ name\ for\ the\ new\ resource\ bundle.
# @translated true @created 2001-12-19 @modified 2001-12-19 @creator Unknown @modifier Unknown
# @comment Dialog popup window text prompting the user for the name of a resource bundle project
dialog_new_project=Please\ enter\ a\ title\ for\ your\ new\ Resource\ Bundle\ Project.
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment A description of the files making it through the filter upon opening a resource bundle
dialog_open_file_filter=Base\ Class\ Property\ Files
# @translated true @created 2000-11-10 @modified 2000-11-06 @creator Jared @modifier Jared
# @comment This is a section heading for setting the locale
dialog_preferences_locale=Locale
# @translated true @created 2000-11-10 @modified 2000-11-06 @creator Jared @modifier Jared
# @comment Locales currently defined in the properties files for the application
dialog_preferences_locale_defined=Defined\ for\ RBManager\:
# @translated true @created 2000-11-10 @modified 2000-11-07 @creator Jared Jackson @modifier Jared Jackson
# @comment 
dialog_preferences_locale_iso=ISO\ Standards\:
# @translated true @created 2000-11-10 @modified 2000-11-06 @creator Jared @modifier Jared
# @comment Locales that are supported by the host Java Virtual Machine
dialog_preferences_locale_machine=Machine\ Supported\:
# @translated true @created 2000-11-10 @modified 2000-11-07 @creator Jared Jackson @modifier Jared Jackson
# @comment 
dialog_preferences_locale_warning=NOTE\:\ Locale\ changes\ are\ not\ applied\ until\ application\ is\ restarted
# @translated true @created 2000-11-10 @modified 2000-11-06 @creator Jared @modifier Jared
# @comment 
dialog_preferences_lookandfeel=Look\ And\ Feel\:
# @translated true @created 2000-11-10 @modified 2000-11-06 @creator Jared @modifier Jared
# @comment 
dialog_preferences_username=User\ Name\:
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment Descriptor that goes into GUI file chooser
dialog_project_file_filter_description=RBManager\ Project\ Files
# @translated true @created 2001-12-17 @modified 2001-12-17 @creator Unknown @modifier Unknown
# @comment File Filter description for resource bundle project files
dialog_project_filter_description=Resource\ Bundle\ Projects
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment An indication that no project is open, placed in the title of the dialog where the project name would normally go
dialog_project_none_selected=No\ Active\ Project
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @{0} The name of the project
# @comment Title for the window showing all the resource bundles in a project
dialog_project_title=Resource\ Bundle\ Project\:\ {0}
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Prompts the user if they would like to save changes before exiting
dialog_quit_save=Would\ you\ like\ to\ save\ your\ changes\ before\ quiting\ RBManager?
# @translated true @created 2000-11-10 @modified 2000-11-10 @creator Jared Jackson @modifier Jared Jackson
# @comment A generic propmpt to ask the user if they wish to save changes
dialog_save=Would\ you\ like\ to\ save\ your\ changes\ to\ the\ resource\ bundle?
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_search_options=Search\ Options
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_search_param=Search\ For\:
# @translated true @created 2000-11-10 @modified 2000-11-06 @creator Jared @modifier Jared
# @comment The title of the about dialog box
dialog_title_about_rbmanager=About\ RBManager
# @translated true @created 2001-01-22 @modified 2001-01-22 @creator Jared Jackson @modifier Jared Jackson
# @comment Title for dialog prompting for deletion of an entire resource group
dialog_title_delete_group=Delete\ Resource\ Group
# @translated true @created 2001-01-22 @modified 2001-01-22 @creator Jared Jackson @modifier Jared Jackson
# @comment Title when prompting to delete a resource
dialog_title_delete_item=Delete\ Resource
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_title_edit_group=Edit\ a\ Resource\ Group
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_title_edit_item=Edit\ a\ Resource\ Item
# @translated true @created 2001-12-19 @modified 2001-12-19 @creator Unknown @modifier Unknown
# @comment 
dialog_title_error=Error
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_title_error_creating_bundle=Error\ Creating\ Resource\ Bundle
# @translated true @created 2001-01-22 @modified 2001-01-22 @creator Jared Jackson @modifier Jared Jackson
# @comment Dialog title when opening a resource bundle not created by RBManager
dialog_title_error_not_rbmanager_format=Error\:\ Unreadable\ Resource\ Bundle
# @translated true @created 2001-06-27 @modified 2001-06-27 @creator Unknown @modifier Unknown
# @comment Title on a warning dialog that I/O malfunctioned opening a file
dialog_title_error_opening_file=Error\ Opening\ File
# @translated true @created 2001-06-27 @modified 2001-06-27 @creator Unknown @modifier Unknown
# @comment Dialog title for a dialog box for entering special parameters needed to export a resource bundle to java class code
dialog_title_export_java_options=Export\ Parameters\:\ Java\ class
# @translated true @created 2001-02-07 @modified 2001-02-07 @creator Jared Jackson @modifier Jared Jackson
# @comment Title for a dialog with a progress bar governing import status
dialog_title_import_progress=Import\ Progress
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Title for creating new bundle
dialog_title_new_bundle=Create\ a\ New\ Resource\ Bundle
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Title for creating a new resource file
dialog_title_new_file=Create\ a\ New\ Resource\ File
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Title for creating a new resource group
dialog_title_new_group=Create\ a\ New\ Resource\ Group
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Title for creating resource
dialog_title_new_item=Create\ a\ New\ Resource\ Item
# @translated true @created 2001-12-19 @modified 2001-12-19 @creator Unknown @modifier Unknown
# @comment Title of the dialog box showing when creating a new project
dialog_title_new_project=New\ Resource\ Bundle\ Project
# @translated true @created 2000-11-10 @modified 2000-11-06 @creator Jared @modifier Jared
# @comment 
dialog_title_preferences=Preferences
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Title for confirming exit from application
dialog_title_quit=Quit\ RBManager
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_title_search=Search
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_title_user_name=Enter\ User\ Name
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_translation=Translation\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_user_name=Please\ enter\ your\ name.
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_variant=Variant
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_warning_delete_group=Deleting\ this\ group\ will\ cause\ all\ items\ in\ the\ group\ to\ be\ permanently\ removed.\ Do\ you\ wish\ to\ continue?
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
dialog_warning_delete_item=Deleting\ the\ rsource\ item\ will\ cause\ it\ to\ be\ permanently\ removed.\ Do\ you\ wish\ to\ continue?

#
# @group Error Messages
#
# @groupComment 

# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
error=Error
# @translated true @created 2001-12-19 @modified 2001-12-19 @creator Unknown @modifier Unknown
# @comment General error message when trying to add a resource bundle to a project.
error_adding_project_bundle=An\ error\ occurred\ trying\ to\ add\ the\ Resource\ Bundle\ you\ selected.
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
error_baseclass_whitespace=Resource\ names\ can\ not\ have\ any\ white\ space\ characters\ in\ them.
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
error_bundle_not_created=No\ Resource\ Bundle\ was\ created.
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
error_create_file=A\ problem\ was\ encountered\ trying\ to\ create\ the\ resource\ file.
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
error_create_group=A\ problem\ was\ encountered\ trying\ to\ create\ the\ group.
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
error_create_item=A\ problem\ was\ encountered\ trying\ to\ create\ the\ entry.
# @translated true @created 2001-12-19 @modified 2001-12-19 @creator Unknown @modifier Unknown
# @comment General error message when creating a project
error_creating_project=An\ error\ was\ encountered\ trying\ to\ create\ a\ Resource\ Bundle\ Project.
# @translated true @created 2001-06-27 @modified 2001-06-27 @creator Unknown @modifier Unknown
# @{0} The message from an IOException that is thrown
# @comment Error message when trying to delete a file
error_deleting=There\ was\ an\ error\ trying\ to\ delete\ the\ file\:\ {0}
# @translated true @created 2001-06-27 @modified 2001-06-27 @creator Unknown @modifier Unknown
# @comment An error that occurs when an attempt is made to delete a file, but the virtual machine can not do so
error_deletion_not_possible=RBManager\ was\ unable\ to\ delete\ the\ file.\ Permission\ denied.
# @translated true @created 2001-02-07 @modified 2001-02-07 @creator Jared Jackson @modifier Jared Jackson
# @comment General error message for exporting resource bundles
error_export=There\ has\ been\ an\ error\ exporting\ the\ resource\ bundle
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
error_internal=Internal\ Error
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
error_modify_file=An\ error\ was\ encountered\ trying\ to\ modify\ the\ resource\ file.
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
error_modify_group=There\ was\ a\ problem\ trying\ to\ modify\ this\ group.
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
error_modify_item=An\ problem\ was\ encountered\ trying\ to\ modify\ the\ entry
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
error_no_bundle_for_file=In\ order\ to\ create\ a\ resource\ file,\ you\ must\ first\ open\ or\ create\ a\ Resource\ Bundle.
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
error_no_bundle_for_group=In\ order\ to\ create\ a\ group,\ you\ must\ first\ open\ or\ create\ a\ Resource\ Bundle.
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Error message displayed when the user tries to create a resource, without an open resource bundle
error_no_bundle_for_item=Please\ create\ or\ open\ a\ resource\ bundle\ before\ attempting\ to\ create\ a\ resource\ item.
# @translated true @created 2001-02-06 @modified 2001-02-06 @creator Jared Jackson @modifier Jared Jackson
# @comment 
error_no_key_replace=Replace\ does\ not\ function\ for\ Resource\ Keys.\ All\ other\ replaces\ will\ be\ performed
# @translated true @created 2001-01-22 @modified 2001-01-22 @creator Jared Jackson @modifier Jared Jackson
# @comment Indication that RBManager can not read the file as created by RBManager
error_not_rbmanager_format=The\ selected\ resource\ bundle\ was\ not\ created\ by\ RBManager\ or\ has\ been\ damaged.
# @translated true @created 2001-06-27 @modified 2001-06-27 @creator Unknown @modifier Unknown
# @{0} The name of the file that would not open
# @comment Error message occuring on an I/O error trying to open a file
error_opening_file=Could\ not\ open\ the\ file\ {0}
# @translated true @created 2001-01-15 @modified 2001-01-15 @creator Jared Jackson @modifier Jared Jackson
# @comment Error message displayed when RBManager encounters an error writing preferences to the file system
error_preferences_save=There\ was\ an\ error\ attempting\ to\ save\ your\ preferences.
# @translated true @created 2000-11-10 @modified 2000-11-10 @creator Jared Jackson @modifier Jared Jackson
# @{0} The error message generated
# @comment A message presented to the user when an error occurs in saving the resource bundle
error_saving=There\ was\ an\ error\ saving\ the\ resource\ bundle\:\ {0}
# @translated true @created 2001-12-19 @modified 2001-12-19 @creator Unknown @modifier Unknown
# @comment General error message when saving a project
error_saving_project=An\ error\ was\ encountered\ trying\ to\ save\ the\ Resource\ Bundle\ Project.
# @translated true @created 2001-01-22 @modified 2001-01-22 @creator Jared Jackson @modifier Jared Jackson
# @comment Suggest trying to import the resource bundle instead of opening it.
error_suggest_import_properties=Try\ importing\ the\ resource\ bundle\ instead
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
error_try_again_file=Please\ try\ again\ with\ different\ encoding\ values.
# @translated true @created 2000-11-10 @modified 2000-11-08 @creator Jared @modifier Jared Jackson
# @comment 
error_try_again_group=Please\ try\ again\ with\ a\ different\ group\ name.
# @translated true @created 2000-11-10 @modified 2000-11-08 @creator Jared @modifier Jared Jackson
# @comment 
error_try_again_item=Please\ try\ again\ with\ a\ different\ entry\ key.
# @translated true @created 2001-02-07 @modified 2001-02-07 @creator Jared Jackson @modifier Jared Jackson
# @comment Value inserted into table cells when an error has occured
table_cell_error=*Error*

#
# @group Export
#
# @groupComment Resources dealing with export options

# @translated true @created 2001-06-27 @modified 2001-06-27 @creator Unknown @modifier Unknown
# @comment Option for the parameter for created a protected class
export_java_class_protected=Create\ a\ protected\ class
# @translated true @created 2001-06-27 @modified 2001-06-27 @creator Unknown @modifier Unknown
# @comment Option for parameter setting the created class as public
export_java_class_public=Create\ a\ public\ class
# @translated true @created 2001-06-27 @modified 2001-06-27 @creator Unknown @modifier Unknown
# @comment Option for parameter for creating protected methods in the java class
export_java_methods_protected=Create\ protected\ methods
# @translated true @created 2001-06-27 @modified 2001-06-27 @creator Unknown @modifier Unknown
# @comment Option for parameter for creating public methods
export_java_methods_public=Create\ public\ methods
# @translated true @created 2001-06-27 @modified 2001-06-27 @creator Unknown @modifier Unknown
# @comment Title of a check box followed by a text field for specifying whether or not to use a package in the generated java class and what the package should be called
export_java_package=Specify\ a\ package\:
# @translated true @created 2001-06-27 @modified 2001-06-27 @creator Unknown @modifier Unknown
# @comment Text placed in a label at the top of the dialog box for specifying parameters concerning the export of resource bundles into a java class
export_java_title=Please\ specify\ the\ following\ parameters\ for\ your\ Java\ class\:

#
# @group General
#
# @groupComment Some items that are common across groups

# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment The file or class composed of the default translations for the bundle
baseclass=Base\ Class
# @translated true @created 2000-11-10 @modified 2004-06-29 @creator Jared @modifier George
# @comment This is the legal copyright notice
copyright=(C)\ Copyright\ IBM\ Corp.\ 2000-2004\ -\ All\ Rights\ Reserved
# @translated true @created 2001-02-06 @modified 2001-02-06 @creator Jared Jackson @modifier Jared Jackson
# @comment Gerneral use for file directories
directory=Directory
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
groups=Groups
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment The name of the image file in the 'Images' directory that represents the logo seen at the top of the application
logo_filename=TitleLogo_transparent.gif
# @translated true @created 2001-12-17 @modified 2001-12-17 @creator Unknown @modifier Unknown
# @comment Tree node title when viewing a resource bundle in the project view when there is no active project
no_project=Default\ Project
# @translated true @created 2001-12-17 @modified 2001-12-17 @creator Unknown @modifier Unknown
# @comment Tree node title defaulted to when no resource bundle or project has been opened by the user
no_project_bundle=No\ Project\ or\ Resource\ Bundle\ Open
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment The top tree node title, when no resource bundle has been opened or created
no_resource_bundle=No\ Resource\ Bundle
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
none=None
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment Project table column name - Location of a resource bundle
project_table_file_location=File\ Location
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment Table Column Name for resource bundle name
project_table_resource_bundle=Resource\ Bundle
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment An abbreviated name of this application
rbmanager=RBManager
# @translated true @created 2000-11-10 @modified 2004-06-29 @creator Jared @modifier George
# @comment 
rbmanager_contact=Authors\:\ Jared\ Jackson\ &\ George\ Rhoten
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment The full name of this application
resource_bundle_manager=Resource\ Bundle\ Manager
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
table_column_error=Table\ Column\ Error
# @translated true @created 2000-11-10 @modified 2001-01-22 @creator Jared @modifier Jared Jackson
# @{0} Country ISO code
# @comment Node title, under which all files of the same country, language reside
tree_country_node=Country\ Code\:\ {0}
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @{0} Language Encoding
# @comment The node below which languages of one encoding are grouped
tree_language_node=Language\ Code\:\ {0}
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
tree_variant_node=Variants\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment The name assigned as a user name when the user name is not specified
unknown_user=Unknown
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
untitled=Untitled
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
untranslated_items=Untranslated\ Items
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @{0} The version number
# @comment The version of this application
version=Version\ {0}
# @translated true @created 2001-02-06 @modified 2001-02-06 @creator Jared Jackson @modifier Jared Jackson
# @comment general use Warning
warning=Warning

#
# @group Import
#
# @groupComment Resources dealing with import options

# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Title for file chooser for choosing TMX files
import_TMX_file_description=TMX\ Files
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Dialog title for importing from TMX XML files
import_TMX_title=TMX\ File\ Import
# @translated true @created 2004-07-01 @modified 2004-07-01 @creator George Rhoten @modifier George Rhoten
# @comment Title for the file chooser for choosing XLIFF (.xlf) files
import_XLF_file_description=XLIFF\ Files
# @translated true @created 2004-07-01 @modified 2004-07-01 @creator George Rhoten @modifier George Rhoten
# @comment Dialog title for importing from XLIFF (.xlf) files
import_XLF_title=XLIFF\ Files
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Option for resolving conflicts on a case by case basis
import_conflict_prompt=Prompt\ for\ each\ conflict
# @translated true @created 2001-02-07 @modified 2001-02-07 @creator Jared Jackson @modifier Jared Jackson
# @comment Option specifying whether a group found in the target but not found in the active resource bundle should be created in the resource bundle or not
import_default_group_creation=Create\ groups\ not\ existing\ in\ the\ current\ bundle
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Optoin for marking the incoming values as translated or not
import_default_translated=Mark\ as\ translated
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Title for options specifying the meta data to be applied to individual resources if it is not available in the import source
import_default_values=Default\ Values
# @translated true @created 2001-02-02 @modified 2001-02-02 @creator Jared Jackson @modifier Jared Jackson
# @{0} The locale encoding of the file in question
# @comment Instructions for prompting the user to resolve a conflict when importing resources from a locale that does not exist in the current resource bundle
import_file_conflict_choose=The\ encoding\ {0}\ does\ not\ exist.\ Select\ an\ option\ to\ resolve\ or\ cancel\ to\ ignore\ this\ conflict.
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Option for file conflicts in which a new file is generated, but not populated
import_file_conflict_generate_empty=Generate\ a\ new,\ empty\ resource\ file
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Option for resolving file conflicts in which a new file is generated and populated with all the existing resources
import_file_conflict_generate_populate=Generate\ a\ new\ resource\ file\ and\ populate\ it\ with\ the\ base\ class\ resources
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Option for file conflicts in which the conflicts are ignored
import_file_conflict_ignore=Skip\ and\ ignore\ all\ resources\ from\ locales\ not\ existant\ in\ the\ current\ resource\ bundle
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Title for section listing options for what to do when an imported value exists in a locale not defined in the existing resource bundle
import_file_conflicts=Missing\ Resource\ Files
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Selection of the default group. A list of groups will appear to the right of this resource in a ComboBox
import_insert_group=Insert\ into\ group\:
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Title for the types of files accepted for this import type
import_java_file_description=Java\ ListResourceBundle\ Base\ Classes
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Title for dialog prompting for import from java classes
import_java_title=Java\ ListResourceBundle\ Class\ Import
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Title indicating section containing user options
import_options=Import\ Options
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Title for file chooser for selection of resource bundles stored in .properties files
import_properties_file_description=Resource\ Bundle\ Base\ Classes
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Dialog title for importing from properties files (created or not by RBManager)
import_properties_title=Resource\ Bundle\ Properties\ Files\ Import
# @translated true @created 2001-02-02 @modified 2001-02-02 @creator Jared Jackson @modifier Jared Jackson
# @{1} Encoding of the resource value with a conflict
# @{0} The key value of the resource in conflict
# @comment This is a warning and instruction for when a resource conflict occurs during an import
import_resource_conflict_choose=The\ key\ {0}\ all\ ready\ exists\ in\ the\ {1}\ resource\ bundle.Choose\ an\ option\ to\ resolve\ this\ conflict\:
# @translated true @created 2001-02-02 @modified 2001-02-02 @creator Jared Jackson @modifier Jared Jackson
# @{0} The translation value associated with the resource item
# @comment An indication of the value of the resource according to the import file
import_resource_conflict_choose_source=Import\ Translation\:\ {0}
# @translated true @created 2001-02-02 @modified 2001-02-02 @creator Jared Jackson @modifier Jared Jackson
# @{0} The translation value of the resource item
# @comment An indication of the translation value held by the active resource bundle during a translation resource conflict
import_resource_conflict_choose_target=Resource\ Bundle\ translation\:\ {0}
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Option for resolving resource conflicts by ignoring import value
import_resource_conflict_ignore=Ignore\ the\ conflict\ and\ leave\ the\ original\ resource\ unchanged
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Option for resolving conflicts by using the import value
import_resource_conflict_overwrite=Overwrite\ resource\ with\ the\ value\ from\ the\ import\ file
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @comment Title listing options for resolving conflicts between resources
import_resource_conflicts=Resource\ Conflicts
# @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
# @{0} The path and name of the source file
# @comment Indication of the source file for the import
import_source_file=Source\ File\:\ {0}

#
# @group Menu Items
#
# @groupComment These resources represent all of the menu and menu item titles

# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment The menu title covering copying, pasting, deleting of items
menu_edit=Edit
# @translated true @created 2001-02-07 @modified 2001-02-07 @creator Jared Jackson @modifier Jared Jackson
# @comment 
menu_edit_copy=Copy
# @translated true @created 2001-02-07 @modified 2001-02-07 @creator Jared Jackson @modifier Jared Jackson
# @comment 
menu_edit_copy_trigger=c
# @translated true @created 2001-02-07 @modified 2001-02-07 @creator Jared Jackson @modifier Jared Jackson
# @comment 
menu_edit_cut=Cut
# @translated true @created 2001-02-07 @modified 2001-02-07 @creator Jared Jackson @modifier Jared Jackson
# @comment 
menu_edit_cut_trigger=t
# @translated true @created 2001-02-07 @modified 2001-02-07 @creator Jared Jackson @modifier Jared Jackson
# @comment 
menu_edit_delete=Delete
# @translated true @created 2001-02-07 @modified 2001-02-07 @creator Jared Jackson @modifier Jared Jackson
# @comment 
menu_edit_delete_trigger=d
# @translated true @created 2001-02-07 @modified 2001-02-07 @creator Jared Jackson @modifier Jared Jackson
# @comment 
menu_edit_paste=Paste
# @translated true @created 2001-02-07 @modified 2001-02-07 @creator Jared Jackson @modifier Jared Jackson
# @comment 
menu_edit_paste_trigger=p
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment The trigger is a letter from the translation of 'menu_edit' which provides a keyboard shortcut to the menu
menu_edit_trigger=e
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment Menu title for the opening, saving, etc. documents and exiting the program
menu_file=File
# @translated true @created 2001-01-15 @modified 2001-01-15 @creator Jared Jackson @modifier Jared Jackson
# @comment Ability to export resource bundles in a variety of formats
menu_file_export=Export\ Resource\ Bundles
# @translated true @created 2002-05-17 @modified 2002-05-17 @creator George Rhoten @modifier George Rhoten
# @comment Ability to export to ICU Resource Bundle files
menu_file_export_ICU=ICU\ Files...
# @translated true @created 2002-05-17 @modified 2002-05-17 @creator George Rhoten @modifier George Rhoten
# @comment 
menu_file_export_ICU_trigger=i
# @translated true @created 2001-01-15 @modified 2001-01-15 @creator Jared Jackson @modifier Jared Jackson
# @comment Ability to export to TMX XML files
menu_file_export_TMX=TMX\ Files...
# @translated true @created 2001-01-15 @modified 2001-01-15 @creator Jared Jackson @modifier Jared Jackson
# @comment 
menu_file_export_TMX_trigger=t
# @translated true @created 2004-07-01 @modified 2004-07-01 @creator George Rhoten @modifier George Rhoten
# @comment Ability to export XLIFF XML files
menu_file_export_XLF=XLIFF\ Files...
# @translated true @created 2004-07-01 @modified 2004-07-01 @creator George Rhoten @modifier George Rhoten
# @comment 
menu_file_export_XLF_trigger=x
# @translated true @created 2001-01-15 @modified 2001-01-15 @creator Jared Jackson @modifier Jared Jackson
# @comment Ability to export to java files that compile to be ListResourceBundle class extensions
menu_file_export_java=Compilable\ Java\ Files...
# @translated true @created 2001-01-15 @modified 2001-01-15 @creator Jared Jackson @modifier Jared Jackson
# @comment 
menu_file_export_java_trigger=j
# @translated true @created 2001-01-15 @modified 2001-01-15 @creator Jared Jackson @modifier Jared Jackson
# @comment Export ability to properties files minus the metadata
menu_file_export_properties=Minimal\ Properties\ Files...
# @translated true @created 2001-01-15 @modified 2001-01-15 @creator Jared Jackson @modifier Jared Jackson
# @comment 
menu_file_export_properties_trigger=s
# @translated true @created 2001-01-15 @modified 2001-01-15 @creator Jared Jackson @modifier Jared Jackson
# @comment 
menu_file_export_trigger=x
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment Menu item for import and merging another resource file with the bundle being worked with
menu_file_import=Merge\ (Import\ into)\ To\ Resource\ Bundle
# @translated true @created 2001-01-15 @modified 2001-01-15 @creator Jared Jackson @modifier Jared Jackson
# @comment Import ability from XML TMX documents
menu_file_import_TMX=TMX\ Documents...
# @translated true @created 2001-01-15 @modified 2001-01-15 @creator Jared Jackson @modifier Jared Jackson
# @comment 
menu_file_import_TMX_trigger=t
# @translated true @created 2004-07-01 @modified 2004-07-06 @creator George Rhoten @modifier Unknown
# @comment Import ability from XML XLIFF (.xlf) files
menu_file_import_XLF=XLIFF\ Documents...
# @translated true @created 2004-07-01 @modified 2004-07-06 @creator George Rhoten @modifier Unknown
# @comment 
menu_file_import_XLF_trigger=X
# @translated true @created 2001-01-15 @modified 2001-01-15 @creator Jared Jackson @modifier Jared Jackson
# @comment Import ability from java classes (ListResourceBundle)
menu_file_import_java=ListResourceBundle\ Java\ Classes...
# @translated true @created 2001-01-15 @modified 2001-01-15 @creator Jared Jackson @modifier Jared Jackson
# @comment 
menu_file_import_java_trigger=j
# @translated true @created 2001-01-15 @modified 2001-01-15 @creator Jared Jackson @modifier Jared Jackson
# @comment Import ability from properties files not generated by RBManager
menu_file_import_properties=Simple\ Resource\ Bundles...
# @translated true @created 2001-01-15 @modified 2001-01-15 @creator Jared Jackson @modifier Jared Jackson
# @comment 
menu_file_import_properties_trigger=S
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment 
menu_file_import_trigger=m
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment Menu item for creating a new resource bundle
menu_file_new=New\ Resource\ Bundle...
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment 
menu_file_new_trigger=n
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment Menu Item for opening a resource bundle
menu_file_open=Open\ Resource\ Bundle...
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment 
menu_file_open_trigger=o
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment Menu item for closing the application
menu_file_quit=Quit
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment 
menu_file_quit_trigger=q
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment Menu item for saving the resource bundle being worked with
menu_file_save=Save\ Resource\ Bundle
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Unknown @modifier a
# @comment 
menu_file_save_trigger=s
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment Menu Item for saving a resource bundle to a particular location and file name
menu_file_saveas=Save\ Resource\ Bundle\ As...
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment 
menu_file_saveas_trigger=a
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment The trigger is a letter from the translation of 'menu_file' which provides a keyboard shortcut to the menu
menu_file_trigger=f
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment Menu title for help information and general information about the program
menu_help=Help
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment Menu item which brings up a dialog describing the application
menu_help_about=About\ Resource\ Bundle\ Manager...
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment 
menu_help_about_trigger=a
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment The trigger is a letter from the translation of 'menu_help' which provides a keyboard shortcut to the menu
menu_help_trigger=h
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment Menu title for options such as creating new resources, groups, and resource files
menu_options=Options
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment Menu Item for creating a new resource item
menu_options_addentry=Add\ New\ Entry...
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment 
menu_options_addentry_trigger=e
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment Menu Item for creating a new resource file for a particular language/country/variant
menu_options_addfile=Add\ New\ Resource\ File...
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment 
menu_options_addfile_trigger=f
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment Menu item for creating a new resource group
menu_options_addgroup=Add\ New\ Group...
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment 
menu_options_addgroup_trigger=g
# @translated true @created 2000-11-10 @modified 2000-10-25 @creator Jared @modifier Jared
# @comment Menu item for editing the user's preferences for the application
menu_options_preferences=Preferences...
# @translated true @created 2000-11-10 @modified 2000-10-25 @creator Jared @modifier Jared
# @comment 
menu_options_preferences_trigger=p
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment Menu item that makes visible the project viewer
menu_options_project_viewer=Open\ Project\ Viewer
# @translated true @created 2001-11-20 @modified 2001-11-20 @creator Unknown @modifier Unknown
# @comment 
menu_options_project_viewer_trigger=v
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment The trigger is a letter from the translation of 'menu_options' which provides a keyboard shortcut to the menu
menu_options_trigger=o
# @translated true @created 2001-12-17 @modified 2001-12-17 @creator Unknown @modifier Unknown
# @comment Popup menu item for adding a new resource bundle to the project
menu_tree_add_project_bundle=Add\ Resource\ Bundle...
# @translated true @created 2001-06-27 @modified 2001-06-27 @creator Unknown @modifier Unknown
# @comment Popup menu item for deleting permanently a resource file
menu_tree_delete=Delete\ Resource\ File
# @translated true @created 2001-06-27 @modified 2001-06-27 @creator Unknown @modifier Unknown
# @comment Popup menu item for removing a specific resource file from the tree view of the resource bundle
menu_tree_hide=Hide\ Resource\ File
# @translated true @created 2001-12-19 @modified 2001-12-19 @creator Unknown @modifier Unknown
# @comment Popup menu item for creating a new project
menu_tree_new_project=New\ Resource\ Bundle\ Project...
# @translated true @created 2001-12-17 @modified 2001-12-17 @creator Unknown @modifier Unknown
# @comment Popup menu item for opening a resource bundle project
menu_tree_open_project=Open\ Resource\ Bundle\ Project...
# @translated true @created 2001-12-17 @modified 2001-12-17 @creator Unknown @modifier Unknown
# @comment Popup menu associated with a resource bundle in the project tree
menu_tree_remove_project_bundle=Remove\ from\ Project
# @translated true @created 2001-06-27 @modified 2001-06-27 @creator Unknown @modifier Unknown
# @comment Popup menu item for saving a specific resource bundle file
menu_tree_save=Save\ Resource\ File
# @translated true @created 2001-12-17 @modified 2001-12-17 @creator Unknown @modifier Unknown
# @comment Popup menu item for saving changes to the resource project file, not the resource bundles themselves within the project
menu_tree_save_project=Save\ Resource\ Bundle\ Project\ File...
# @translated true @created 2001-12-17 @modified 2001-12-17 @creator Unknown @modifier Unknown
# @comment Popup menu for selecting a resource bundle from the project tree to be edited in the resource bundle tree
menu_tree_select_project_bundle=Work\ with\ this\ Resource\ Bundle
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment Menu title for changing the display being seen by the user
menu_view=View
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment Menu item that takes you directly to the statistics panel for the entire bundle
menu_view_statistics=View\ Resource\ Bundle\ Statistics
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment 
menu_view_statistics_trigger=s
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Unknown @modifier Unknown
# @comment The trigger is a letter from the translation of 'menu_view' which provides a keyboard shortcut to the menu
menu_view_trigger=v

#
# @group Project Panel
#
# @groupComment Panel associated with Project editing

# @translated true @created 2001-12-19 @modified 2001-12-19 @creator Unknown @modifier Unknown
# @{0} The name of the resource bundle
# @comment Label indicator associating a text box containing a translation with the resource bundle the translation comes from
project_panel_bundle=Resource\ Bundle\:\ {0}
# @translated true @created 2001-12-19 @modified 2001-12-19 @creator Unknown @modifier Unknown
# @{0} Name of the resource bundle
# @comment Special indicator of the resource item resource bundle when the item is untranslated
project_panel_bundle_untranslated=Resource\ Bundle\:\ {0}\ (Untranslated)
# @translated true @created 2001-12-19 @modified 2001-12-19 @creator Unknown @modifier Unknown
# @comment Label text marking the line above or to the left of a resource comment
project_panel_comment=Base\ Class\ Resource\ Comment\:
# @translated true @created 2001-12-19 @modified 2001-12-19 @creator Unknown @modifier Unknown
# @comment Label text for a comment when none is found for a resource
project_panel_comment_none=No\ comment\ supplied
# @translated true @created 2001-12-19 @modified 2001-12-19 @creator Unknown @modifier Unknown
# @comment Button title shown on the project panel for committing change to one resource only
project_panel_commit_button=Commit\ Change
# @translated true @created 2001-12-19 @modified 2001-12-19 @creator Unknown @modifier Unknown
# @comment Button title on the project panel for saving all of the resources displayed. This means multiple resource files get saved.
project_panel_commit_button_all=Commit\ All\ Resource\ Changes
# @translated true @created 2001-12-19 @modified 2001-12-19 @creator Unknown @modifier Unknown
# @comment Default title shown on the project panel when no particular resource has been selected
project_panel_default_title=Project\ Resource\ Editing
# @translated true @created 2001-12-19 @modified 2001-12-19 @creator Unknown @modifier Unknown
# @comment Text field marker for the translation of a resource when that resource does not exist for the encoding file it is associated with
project_panel_item_inherits=<No\ Translation\:\ Resource\ Inherits\ from\ parent>
# @translated true @created 2001-12-19 @modified 2001-12-19 @creator Unknown @modifier Unknown
# @{0} The key of the selected resource
# @comment Title on the project panel while a resource is selected
project_panel_title=Project\ Resource\ Editing\:\ {0}

#
# @group RBReporter
#
# @groupComment Translations for the RBReporter application

# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Button title for selecting file locations for input/output
reporter_button_choose=Choose...
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Button indicating the report generation should occur immediately
reporter_button_now=Update\ Now
# @translated true @created 2000-11-29 @modified 2000-11-29 @creator Jared Jackson @modifier Jared Jackson
# @comment Button title for saving the current settings as default
reporter_button_save_defaults=Save\ the\ Current\ Settings\ as\ Defaults
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Button to activate the reporter
reporter_button_start=Start
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Button to deactive the reporter
reporter_button_stop=Stop
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Level of detail: most information available
reporter_detail_high=High
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Indication of a selection option of the level of detail in reporting
reporter_detail_level=Detail\ Level\:
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Level of detail: standard
reporter_detail_normal=Normal
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment An output format: HTML
reporter_format_html=HTML
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment An output format type: plain text
reporter_format_text=Text
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment An output format: XML
reporter_format_xml=XML
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Indication of file location of the resource bundle to report on
reporter_input_bundle=Resource\ Bundle\:
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Indication that reporting will happen at a speciified time of day. Followed by a time and day option.
reporter_interval_defined=Report\ at
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Text indication of sequential reporting paused for a defined interval between reporting. Immediately followed by a number and a unit of measure of time
reporter_interval_sequential=Report\ every
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @{0} Date/Time of last report generation
# @comment Indication of the time of the last report
reporter_last_report=Last\ Report\:\ {0}
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @{0} Date/Time of next report
# @comment Indication of when the next report will be generated
reporter_next_report=Next\ Report\:\ {0}
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Indication of the output directory into which the reports are placed
reporter_output_directory=Output\ Directory\:
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment An indication of the name of the output file for a particular output format
reporter_output_file=File\ Name\:
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Panel title for setting interval of reporting
reporter_panel_interval=Report\ Interval
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Panel title for configurable options of the reporting
reporter_panel_options=Report\ Options
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Subpanel title for choosing output formats for the reports
reporter_panel_output_format=Output\ Format
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Panel title for indication of running status of the reporter
reporter_panel_status=Status
# @translated true @created 2001-02-06 @modified 2001-02-06 @creator Jared Jackson @modifier Jared Jackson
# @comment Short title for selecting a code scan configuration file
reporter_perform_scan=Code\ Scan\ File
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Quick indication that the reporter is active (perhaps waiting)
reporter_status_running=Started
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Quick status indication that the reporter is not active
reporter_status_stopped=Stopped
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment days option
reporter_time_days=Days
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment every day option
reporter_time_everyday=Every\ day
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment friday option
reporter_time_friday=Friday
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment hours option
reporter_time_hours=Hours
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment minutes option
reporter_time_minutes=Minutes
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment monday option
reporter_time_monday=Monday
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment saturday option
reporter_time_saturday=Saturday
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment sunday option
reporter_time_sunday=Sunday
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment thursday option
reporter_time_thursday=Thursday
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment tuesday option
reporter_time_tuesday=Tuesday
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment wednesday option
reporter_time_wednesday=Wednesday
# @translated true @created 2000-11-17 @modified 2000-11-17 @creator Jared @modifier Jared
# @comment Title of the application
resource_bundle_reporter=RBReporter

#
# @group Search and Replace
#
# @groupComment Resources found on the search tab pane

# @translated true @created 2001-02-06 @modified 2001-02-06 @creator Jared Jackson @modifier Jared Jackson
# @comment General search title
search=Search
# @translated true @created 2001-02-07 @modified 2001-02-07 @creator Jared Jackson @modifier Jared Jackson
# @comment Check box option for making the search case sensitive or not
search_case_sensitive=Case\ Sensitive\ Search
# @translated true @created 2001-02-06 @modified 2001-02-06 @creator Jared Jackson @modifier Jared Jackson
# @comment Check box option for searching through resource comments
search_comments=Comments
# @translated true @created 2001-02-06 @modified 2001-02-06 @creator Jared Jackson @modifier Jared Jackson
# @comment Text indication of the field for entering text to search on
search_find=Find\:
# @translated true @created 2001-02-06 @modified 2001-02-06 @creator Jared Jackson @modifier Jared Jackson
# @comment Check box selection for searching option through resource keys
search_keys=Resource\ Keys
# @translated true @created 2001-02-06 @modified 2001-02-06 @creator Jared Jackson @modifier Jared Jackson
# @comment Text indication of the field for entering text for replacing the found value
search_replace=Replace\:
# @translated true @created 2001-02-06 @modified 2001-02-06 @creator Jared Jackson @modifier Jared Jackson
# @comment Check box option for searching through translation values
search_values=Translations

#
# @group Tabs
#
# @groupComment GUI Tabs in the main panel

# @translated true @created 2001-12-17 @modified 2001-12-17 @creator Unknown @modifier Unknown
# @comment GUI Tab for Tabbed Pane over the tree showing a single resource bundle and its various files
tab_bundle=Bundle
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Jared @modifier Jared
# @comment Tab for the display of the various groups in the bundle
tab_groups=Groups
# @translated true @created 2001-12-17 @modified 2001-12-17 @creator Unknown @modifier Unknown
# @comment GUI Tab for tab over tree showing a resource bundle project
tab_project=Project
# @translated true @created 2001-02-06 @modified 2001-02-06 @creator Jared Jackson @modifier Jared Jackson
# @comment Title for pane allowing for search and replace functions
tab_search=Search
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Jared @modifier Jared
# @comment Tab for statistics display for either the Resource Bundle as a whole or particular language files
tab_statistics=Statistics
# @translated true @created 2000-11-10 @modified 2000-10-24 @creator Jared @modifier Jared
# @comment Tab for display of untranslated items in the different language files
tab_untranslated=Untranslated

#
# @group Translation File Groups Pane
#
# @groupComment 

# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Column title for item comments
languagegroup_column_comment=Comment
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Column title for item's resource key
languagegroup_column_key=Resource\ Key
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment 
languagegroup_column_translation=Translation

#
# @group Translation File Statistics Pane
#
# @groupComment Translations for strings in the language file statistics pane

# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment A comment given to the file
languagestats_comment=Comment\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment The country being described by the file
languagestats_country=Country\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment The number of resources in the file
languagestats_item_count=Number\ of\ Resources\ in\ this\ Language\ File\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment The language described by the file
languagestats_language=Language\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment The name of a person responsible for the translations in this language file
languagestats_manager=Resource\ File\ Manager\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment The name given to the language file
languagestats_title=Resource\ Title\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment Number of resources needing translation in the file
languagestats_translation_count=Number\ of\ Untranslated\ Resource\ Items\ in\ this\ File\:
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment The language/region variant described by the file
languagestats_variant=Variant\:

#
# @group Translation File Untranslated Items Pane
#
# @groupComment 

# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment The column title for group names of items in the rows
languageuntrans_column_group=Group
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment The key of the item a row
languageuntrans_column_key=Resource\ Key
# @translated true @created 2000-11-10 @modified 2000-10-26 @creator Jared @modifier Jared
# @comment The translated value of an item in a row
languageuntrans_column_translation=Translation
# @translated true @created 2001-01-23 @modified 2001-01-23 @creator Jared Jackson @modifier Jared Jackson
# @comment Panel title covering buttons that apply to a selected resource from a table of resources
languageuntrans_selected_resources_options=Options\ for\ Selected\ Resources
