Fix translation related defects (marked with "Mock")
diff --git a/plugins/org.eclipse.datatools.sqltools.db.generic/plugin.properties b/plugins/org.eclipse.datatools.sqltools.db.generic/plugin.properties
new file mode 100644
index 0000000..3f91f53
--- /dev/null
+++ b/plugins/org.eclipse.datatools.sqltools.db.generic/plugin.properties
@@ -0,0 +1,2 @@
+generic.db=Generic JDBC
+generic.db.desc=Data tools generic database support
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.sqltools.db.generic/plugin.xml b/plugins/org.eclipse.datatools.sqltools.db.generic/plugin.xml
index 816678a..a41f3b6 100644
--- a/plugins/org.eclipse.datatools.sqltools.db.generic/plugin.xml
+++ b/plugins/org.eclipse.datatools.sqltools.db.generic/plugin.xml
@@ -8,8 +8,8 @@
       <dbConfiguration
             configurationClass="org.eclipse.datatools.sqltools.db.generic.GenericDBConfiguration"
             default="true"
-            description="Data tools generic database support"
-            product="Generic JDBC"
+            description="%generic.db.desc"
+            product="%generic.db"
             version="1.x"/>
    </extension>
 
diff --git a/plugins/org.eclipse.datatools.sqltools.debugger.core/plugin.properties b/plugins/org.eclipse.datatools.sqltools.debugger.core/plugin.properties
new file mode 100644
index 0000000..5ec4ade
--- /dev/null
+++ b/plugins/org.eclipse.datatools.sqltools.debugger.core/plugin.properties
@@ -0,0 +1,2 @@
+database.debug.perspective=Database Debug
+routine.launch.type=Eclipse Data Tools
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.sqltools.debugger.core/plugin.xml b/plugins/org.eclipse.datatools.sqltools.debugger.core/plugin.xml
index ca4ba5e..34cbb15 100644
--- a/plugins/org.eclipse.datatools.sqltools.debugger.core/plugin.xml
+++ b/plugins/org.eclipse.datatools.sqltools.debugger.core/plugin.xml
@@ -20,7 +20,7 @@
    <extension
          point="org.eclipse.ui.perspectives">
       <perspective
-            name="Database Debug"
+            name="%database.debug.perspective"
             icon="icons/debug_exc.gif"
             class="org.eclipse.datatools.sqltools.debugger.perspectives.DebuggerPerspective"
             id="org.eclipse.datatools.sqltools.debugger.perspectives.DebuggerPerspective">
@@ -159,7 +159,7 @@
    <extension
          point="org.eclipse.datatools.sqltools.routineeditor.launchConfigurationTypes">
       <launchConfigurationType
-            name="Eclipse Data Tools"
+            name="%routine.launch.type"
             delegate="org.eclipse.datatools.sqltools.debugger.launching.SPDebuggerLaunchConfigurationDelegate"
             modes="debug"
             id="org.eclipse.datatools.sqltools.debugger.core.launchConfigurationType">
diff --git a/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/OperationCommand.java b/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/OperationCommand.java
index 31e871b..c63b49f 100644
--- a/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/OperationCommand.java
+++ b/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/OperationCommand.java
@@ -162,37 +162,37 @@
         switch (actionId)
         {
             case ACTION_EXECUTE:
-                return Messages.getString("OperationCommand.action.execute"); //$NON-NLS-1$
+                return Messages.OperationCommand_action_execute; 
             case ACTION_CREATE:
-                return Messages.getString("OperationCommand.action.create"); //$NON-NLS-1$
+                return Messages.OperationCommand_action_create; 
             case ACTION_DEBUG:
-                return Messages.getString("OperationCommand.action.debug"); //$NON-NLS-1$
+                return Messages.OperationCommand_action_debug; 
             case ACTION_DEPLOY:
-                return Messages.getString("OperationCommand.action.deploy"); //$NON-NLS-1$
+                return Messages.OperationCommand_action_deploy; 
             case ACTION_DROP:
-                return Messages.getString("OperationCommand.action.drop"); //$NON-NLS-1$
+                return Messages.OperationCommand_action_drop; 
             case ACTION_EDIT:
-                return Messages.getString("OperationCommand.action.edit"); //$NON-NLS-1$
+                return Messages.OperationCommand_action_edit; 
             case ACTION_EXPORT:
-                return Messages.getString("OperationCommand.action.export"); //$NON-NLS-1$
+                return Messages.OperationCommand_action_export; 
             case ACTION_EXTRACT:
-                return Messages.getString("OperationCommand.action.extract"); //$NON-NLS-1$
+                return Messages.OperationCommand_action_extract; 
             case ACTION_IMPORT:
-                return Messages.getString("OperationCommand.action.import"); //$NON-NLS-1$
+                return Messages.OperationCommand_action_import; 
             case ACTION_LOAD:
-                return Messages.getString("OperationCommand.action.load"); //$NON-NLS-1$
+                return Messages.OperationCommand_action_load; 
             case ACTION_BEFORE_RUN:
-                return Messages.getString("OperationCommand.action.before.run"); //$NON-NLS-1$
+                return Messages.OperationCommand_action_before_run; 
             case ACTION_AFTER_RUN:
-                return Messages.getString("OperationCommand.action.after.run"); //$NON-NLS-1$
+                return Messages.OperationCommand_action_after_run; 
             case ACTION_RUN:
-                return Messages.getString("OperationCommand.action.run"); //$NON-NLS-1$
+                return Messages.OperationCommand_action_run; 
             case ACTION_VALIDATE:
-                return Messages.getString("OperationCommand.action.validate"); //$NON-NLS-1$
+                return Messages.OperationCommand_action_validate; 
             case ACTION_VIEW:
-                return Messages.getString("OperationCommand.action.browse"); //$NON-NLS-1$
+                return Messages.OperationCommand_action_browse; 
             default:
-                return Messages.getString("OperationCommand.unknown.action"); //$NON-NLS-1$
+                return Messages.OperationCommand_unknown_action; 
         }
     }
     
@@ -235,21 +235,21 @@
         switch (statusId)
         {
             case STATUS_STARTED:
-                return Messages.getString("OperationCommand.status.started"); //$NON-NLS-1$
+                return Messages.OperationCommand_status_started; 
             case STATUS_RUNNING:
-                return Messages.getString("OperationCommand.status.running"); //$NON-NLS-1$
+                return Messages.OperationCommand_status_running; 
             case STATUS_SUCCEEDED:
-                return Messages.getString("OperationCommand.status.succeeded"); //$NON-NLS-1$
+                return Messages.OperationCommand_status_succeeded; 
             case STATUS_FAILED:
-                return Messages.getString("OperationCommand.status.failed"); //$NON-NLS-1$
+                return Messages.OperationCommand_status_failed; 
             case STATUS_TERMINATED:
-                return Messages.getString("OperationCommand.status.terminated"); //$NON-NLS-1$
+                return Messages.OperationCommand_status_terminated; 
             case STATUS_WARNING:
-                return Messages.getString("OperationCommand.status.warning"); //$NON-NLS-1$
+                return Messages.OperationCommand_status_warning; 
             case STATUS_CRITICAL_ERROR:
-                return Messages.getString("OperationCommand.status.critical"); //$NON-NLS-1$
+                return Messages.OperationCommand_status_critical; 
             default:
-                return Messages.getString("OperationCommand.status.unknown"); //$NON-NLS-1$
+                return Messages.OperationCommand_status_unknown; 
         }
     }
 
diff --git a/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/Parameter.java b/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/Parameter.java
index d218eec..d1e3f1a 100644
--- a/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/Parameter.java
+++ b/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/Parameter.java
@@ -59,10 +59,10 @@
      */
     public Parameter(String paramName, String paramType, String paramValue, String paramDataType)
     {
-    	Assert.isLegal(paramName != null && !paramName.trim().equals(""), Messages.getString("Parameter.constructor.error")); //$NON-NLS-1$ //$NON-NLS-2$
+    	Assert.isLegal(paramName != null && !paramName.trim().equals(""), Messages.Parameter_constructor_error); 
     	Assert.isLegal(!(paramType == null
                 || (!paramType.trim().equals(INPUT) && paramType.trim().equals(OUTPUT) && paramType.trim().equals(
-                        IN_OUT))), Messages.getString("Parameter.constructor.error")); //$NON-NLS-1$
+                        IN_OUT))), Messages.Parameter_constructor_error); 
         _paramName = paramName;
         _paramType = paramType;
         _paramDataType = (paramDataType == null)?"":paramDataType; //$NON-NLS-1$
diff --git a/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/internal/utils/Messages.java b/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/internal/utils/Messages.java
index d9314be..3b47b75 100644
--- a/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/internal/utils/Messages.java
+++ b/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/internal/utils/Messages.java
@@ -10,89 +10,308 @@
  *******************************************************************************/
 package org.eclipse.datatools.sqltools.result.internal.utils;
 
-import java.text.MessageFormat;
-import java.util.Locale;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
+import java.lang.reflect.Field;
 
-import org.eclipse.datatools.sqltools.result.internal.Constants;
+import org.eclipse.osgi.util.NLS;
 
-/**
- * This class is for i18n purpose.
- * 
- * @author Dafan Yang
- */
-public class Messages
-{
-    // must be names as RESOURCE_BUNDLE to satisfy jdt string externalizer
-    private static final String         RESOURCE_BUNDLE = Constants.PLUGIN_RESOURCE_BUNDLE;
-    private static final ResourceBundle bundle          = ResourceBundle.getBundle(RESOURCE_BUNDLE);
+public final class Messages extends NLS {
 
-    private Messages()
+	private static final String BUNDLE_NAME = "org.eclipse.datatools.sqltools.result.internal.utils.PluginResources";//$NON-NLS-1$
+
+	private Messages() {
+		// Do not instantiate
+	}
+
+	public static String ResultHistorySection_status;
+	public static String ResultHistoryPage_operation;
+	public static String ResultHistoryPage_frequency;
+	public static String ResultHistorySection_query_expression;
+	public static String ResultHistorySection_operation;
+	public static String ResultHistorySection_frequency;
+	public static String ResultHistorySection_action_type;
+	public static String ResultHistorySection_consumer_name;
+	public static String ResultHistorySection_connection_profile;
+	public static String ResultHistoryPage_action_type;
+	public static String ResultHistoryPage_auto_persist;
+	public static String ResultHistoryPage_consumer_name;
+	public static String ResultHistoryPage_tooltip_status;
+	public static String ResultHistoryPage_tooltip_date;
+	public static String ResultHistoryPage_tooltip_consume;
+	public static String ResultHistoryPage_tooltip_profile;
+	public static String ResultHistorySection_date;
+	public static String ResultHistoryPage_status;
+	public static String ResultHistoryPage_date;
+	public static String ResultSection_status;
+	public static String ResultSection_message;
+	public static String ResultSection_result;
+	public static String ResultSection_warnning_rowshidden;
+	public static String ResultSection_resultset_tooltip;
+	public static String ResultSetLabelProvider_longdata;
+	public static String ResultSection_resultset_tooltip1;
+	public static String MultipleTabsGridSection_parameter_name;
+	public static String MultipleTabsGridSection_parameter_type;
+	public static String MultipleTabsTextSection_parameter_name;
+	public static String MultipleTabsTextSection_parameter_type;
+	public static String MultipleTabsTextSection_parameter_value;
+	public static String MultipleTabsTextSection_parameter_value_out;
+	public static String MultipleTabsGridSection_parameter_datatype;
+	public static String MultipleTabsTextSection_parameter_datatype;
+	public static String MultipleTabsGridSection_value;
+	public static String MultipleTabsGridSection_value_out;
+	public static String MultipleTabsGridSection_parameter;
+	public static String MultipleTabsTextSection_parameter;
+	public static String MultipleTabsModeSection_message;
+	public static String MultipleTabsModeSection_tabs_hidden;
+	public static String ResultsView_preference;
+	public static String ResultsView_tooltip;
+	public static String ResultsView_layout_vertical;
+	public static String ResultsView_layout_horizontal;
+	public static String ResultView_filter;
+	public static String ResultView_filtertip;
+	public static String ReExecuteAction_name;
+	public static String ResultView_filter_info;
+	public static String OperationCommand_status_critical;
+	public static String OperationCommand_status_warning;
+	public static String OperationCommand_status_started;
+	public static String OperationCommand_status_running;
+	public static String OperationCommand_status_succeeded;
+	public static String OperationCommand_status_failed;
+	public static String OperationCommand_status_terminated;
+	public static String OperationCommand_status_unknown;
+	public static String OperationCommand_unknown_action;
+	public static String OperationCommand_action_execute;
+	public static String OperationCommand_action_create;
+	public static String OperationCommand_action_debug;
+	public static String OperationCommand_action_deploy;
+	public static String OperationCommand_action_drop;
+	public static String OperationCommand_action_edit;
+	public static String OperationCommand_action_export;
+	public static String OperationCommand_action_extract;
+	public static String OperationCommand_action_import;
+	public static String OperationCommand_action_load;
+	public static String OperationCommand_action_before_run;
+	public static String OperationCommand_action_after_run;
+	public static String OperationCommand_action_run;
+	public static String OperationCommand_action_validate;
+	public static String OperationCommand_action_browse;
+	public static String RedoAction_title;
+	public static String UndoAction_title;
+	public static String TerminateInstanceAction_terminate;
+	public static String TerminateInstanceAction_terminate_tooltip;
+	public static String RemoveAllResultAction_remove_all_results;
+	public static String RemoveAllResultAction_remove_all_results_tooltip;
+	public static String RemoveResultAction_remove;
+	public static String RemoveResultAction_remove_result;
+	public static String CommonTextViewer_action_cut;
+	public static String CommonTextViewer_action_copy;
+	public static String CommonTextViewer_action_paste;
+	public static String CommonTextViewer_action_delete;
+	public static String CommonTextViewer_action_selectall;
+	public static String StatusTextProvider_operation_success;
+	public static String StatusTextProvider_action_type;
+	public static String StatusTextProvider_profile_name;
+	public static String StatusTextProvider_database;
+	public static String StatusTextProvider_time;
+	public static String StatusTextProvider_update_count_complex;
+	public static String StatusTextProvider_update_count_single;
+	public static String IResultConstants_plain_format;
+	public static String IResultConstants_csv_format;
+	public static String IResultConstants_html_format;
+	public static String IResultConstants_xml_format;
+	public static String IResultConstants_text_ext;
+	public static String IResultConstants_csv_ext;
+	public static String IResultConstants_html_ext;
+	public static String IResultConstants_xml_ext;
+	public static String IResultConstants_all_ext;
+	public static String IResultConstants_text_name;
+	public static String IResultConstants_csv_name;
+	public static String IResultConstants_html_name;
+	public static String IResultConstants_xml_name;
+	public static String IResultConstants_all_name;
+	public static String SQLResultsViewPage_displaywindow;
+	public static String SQLResultsViewPage_displaywindow_singlewindow;
+	public static String SQLResultsViewPage_maxdisplayrows_tooltip;
+	public static String SQLResultsViewPage_displaywindow_multiplewindows;
+	public static String SQLResultsViewPage_displaymode;
+	public static String SQLResultsViewPage_other_option;
+	public static String SQLResultsViewPage_split_message;
+	public static String SQLResultsViewPage_splitmessages_tooltip;
+	public static String SQLResultsViewPage_limit_tabs;
+	public static String SQLResultsViewPage_limit_tabs_tooltip;
+	public static String SQLResultsViewPage_displaymode_text;
+	public static String SQLResultsViewPage_displaymode_grid;
+	public static String SQLResultsViewPage_resultsetoptions;
+	public static String SQLResultsViewPage_singlewindow_tooltip;
+	public static String SQLResultsViewPage_multipletabs_tooltip;
+	public static String SQLResultsViewPage_textmode_tooltip;
+	public static String SQLResultsViewPage_girdmode_tooltip;
+	public static String SQLResultsViewPage_resultsetoptions_showheadings;
+	public static String SQLResultsViewPage_resultsetoptions_showrownumber;
+	public static String SQLResultsViewPage_resultsetoptions_showrowcount;
+	public static String SQLResultsViewPage_resultsetoptions_maxrowcount;
+	public static String SQLResultsViewPage_resultsetoptions_maxdisplayrowcount;
+	public static String SQLResultsViewPage_resultsetoptions_nulldisplaystr;
+	public static String SQLResultsViewPage_resultsetoptions_lessthanzero;
+	public static String SQLResultsViewPage_resultsetoptions_displaybiggerthanmax;
+	public static String SQLResultsViewPage_resultsetoptions_invalidnumberformat;
+	public static String SQLResultsViewPage_resultsetoptions_maxrowcount_tooltip;
+	public static String ExportFormatPage_title;
+	public static String ExportOptions_title;
+	public static String ExportFormatPage_xmlexportformat_group;
+	public static String ExportFormatPage_xmlexportformat_addxmlheader;
+	public static String ExportFormatPage_xmlexportformat_xmlheader;
+	public static String ExportFormatPage_xmlexportformat_addxmlroottag;
+	public static String ExportFormatPage_xmlexportformat_xmlroottag;
+	public static String ExportFormatPage_xmlexportformat_xmlheader_text;
+	public static String ExportFormatPage_xmlexportformat_xmlroottag_text;
+	public static String ExportFormatPage_columndelimiter_group;
+	public static String ExportFormatPage_columndelimiter_outputformat;
+	public static String ExportFormatPage_columndelimiter_delimiter;
+	public static String ExportFormatPage_columndelimiter_items_columnaligned;
+	public static String ExportFormatPage_columndelimiter_items_commaseparated;
+	public static String ExportFormatPage_columndelimiter_items_tabdelimited;
+	public static String ExportFormatPage_columndelimiter_items_userdefined;
+	public static String ExportFormatPage_columndelimiter_items_csvseparated;
+	public static String ExportFormatPage_columndelimiter_userdefineddelimiter;
+	public static String ExportFormatPage_fileencoding_group;
+	public static String ExportFormatPage_fileencoding_outputencoding;
+	public static String ExportFormatPage_fileencoding_defaultencoding;
+	public static String ExportFormatPage_fileencoding_otherencoding;
+	public static String ExportFormatPage_fileencoding_numDefaultEncodings;
+	public static String ExportFormatPage_fileencoding_defaultEncoding1;
+	public static String ExportFormatPage_fileencoding_defaultEncoding2;
+	public static String ExportFormatPage_fileencoding_defaultEncoding3;
+	public static String ExportFormatPage_fileencoding_defaultEncoding4;
+	public static String ExportFormatPage_fileencoding_defaultEncoding5;
+	public static String ExportFormatPage_fileencoding_defaultEncoding6;
+	public static String ExportFormatPage_fileencoding_unsupportedEncoding;
+	public static String ResultFormatWizardPage_title;
+	public static String ResultFormatWizardPage_description;
+	public static String ResultFormatWizardPage_label_filename;
+	public static String ResultFormatWizardPage_button_browse;
+	public static String ResultFormatWizardPage_dialog_text;
+	public static String ResultFormatWizardPage_errormessage_choosefile;
+	public static String ResultExportWizard_please_select_file_format;
+	public static String ResultExportWizard_failed_to_export_result_set;
+	public static String ResultFormatWizardPage_label_format;
+	public static String Save_name;
+	public static String Export_name;
+	public static String Print_name;
+	public static String ResultSetAction_Title;
+	public static String AllResultSetAction_Title;
+	public static String SaveAllResultSetAction_Title;
+	public static String ExportAllResultSetAction_Title;
+	public static String PrintAllResultSetAction_Title;
+	public static String SaveResultSetDialog_saveResult_text;
+	public static String SaveResultSetDialog_saveResult_title;
+	public static String SaveResultSetDialog_saveAllResults_text;
+	public static String SaveResultSetDialog_saveAllResults_title;
+	public static String ResultExportWizard_exportResult_title;
+	public static String ResultExportWizard_overwrite;
+	public static String ResultExportWizard_question;
+	public static String ResultExportWizard_exportAllResults_title;
+	public static String SaveAllResultSetAction_Dialog_Title;
+	public static String SaveAllResultSetAction_export_all_results;
+	public static String SaveResultSetDialog_filetype_label;
+	public static String SaveResultSetDialog_error;
+	public static String SaveResultSetDialog_message;
+	public static String SaveResultSetDialog_overwrite;
+	public static String SaveResultSetDialog_question;
+	public static String SaveResultSetDialog_filename;
+	public static String SaveResultSetDialog_export_error;
+	public static String SaveResultInstanceAction_save_log;
+	public static String SaveResultInstanceAction_save_history;
+	public static String SaveResultInstanceAction_save_hisotry_title;
+	public static String SaveResultInstanceAction_save_error;
+	public static String SaveResultSetDialog_export_error_msg;
+	public static String SaveResultSetDialog_please_select_file_format;
+	public static String SaveResultInstanceAction_export_error;
+	public static String SaveResultInstanceAction_can_not_save;
+	public static String ResultsFilterDialog_finishstatus;
+	public static String ResultsFilterDialog_succeeded;
+	public static String ResultsFilterDialog_succeeded_tip;
+	public static String ResultsFilterDialog_criticalerror;
+	public static String ResultsFilterDialog_failed;
+	public static String ResultsFilterDialog_warning;
+	public static String ResultsFilterDialog_failed_tip;
+	public static String ResultsFilterDialog_terminated;
+	public static String ResultsFilterDialog_terminated_tip;
+	public static String ResultsFilterDialog_limit;
+	public static String ResultsFilterDialog_limit_tip;
+	public static String ResultsFilterDialog_profilename;
+	public static String ResultsFilterDialog_profileprovider;
+	public static String ResultsFilterDialog_warning_tooltip;
+	public static String ResultsFilterDialog_profiledesc;
+	public static String ResultsFilterDialog_profiles_tip;
+	public static String ResultsFilterDialog_dialogtitle;
+	public static String ResultsFilterDialog_unknownprofile;
+	public static String ResultsFilterDialog_unknownprofile_tooltip;
+	public static String ResultsFilterDialog_criticalerror_tooltip;
+	public static String Parameter_constructor_error;
+	public static String ResultSetObject_constructor_error;
+	public static String Debugger_Images_malformedURLException;
+	public static String ResultsViewAPI_append_resultset_error;
+	public static String ResultsViewAPI_checkview_error;
+	public static String ResultsViewAPI_notwellformed_xml;
+	public static String LongDataDialog_title;
+	public static String LongDataDialog_columnName;
+	public static String LongDataDialog_datatype;
+	public static String ResourceAndContainerGroup_folder_empty;
+	public static String ResourceAndContainerGroup_project_noexist;
+	public static String ResourceAndContainerGroup_file_exists;
+	public static String ResourceAndContainerGroup_name_exists;
+	public static String ResourceAndContainerGroup_name_empty;
+	public static String ResourceAndContainerGroup_invalid_name;
+	public static String ContainerSelectionGroup_message;
+	public static String ContainerSelectionGroup_folder_select;
+	public static String ResultHistoryLuceneIndex_io_error;
+	public static String ResultHistoryLuceneIndex_parser_error;
+	public static String ResultHistoryPage_columns_group_name;
+	public static String ResultHistoryPage_connection_profile;
+	public static String ResultHistoryPage_tooltip_operation;
+	public static String ResultHistoryPage_tooltip_frequency;
+	public static String ResultHistoryPage_tooltip_actiontype;
+	public static String ResultHistoryPage_tooltip_auto_persist;
+	public static String StatusLogger_no_bundle;
+	public static String StatusLogger_possible_args;
+	public static String StatusLogger_no_bundle_1;
+	public static String StatusLogger_possible_args_1;
+	public static String ResultHistorySection_query_expression_tooltip;
+	public static String ResultsViewPlugin_load_history_error;
+	public static String ResultsViewPlugin_persist_history_error;
+	public static String SingleWindowTextSection_inout_params;
+	public static String SingleWindowGridSection_inout_params;
+	public static String ResultExportWizard_export_error;
+	public static String ResultViewLabelProvider_unknown;
+
+	static {
+		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+	}
+	
+	/**
+	 * Gets a resource string by field name. This is useful when the field name is constructed ad hoc.
+	 * @param fieldName
+	 * @return
+	 */
+	public static String getString(String fieldName)
     {
-    }
-
-    public static String getString(String key)
-    {
-        try
+        Class c = Messages.class;
+        Field[] fields = c.getDeclaredFields();
+        for(int i=0;i<fields.length;i++)
         {
-            return bundle.getString(key);
-        }
-        catch (MissingResourceException e)
-        {
-            return key;
-        }
-    }
-
-    public static String getString(String key, String arg0)
-    {
-        return getString(key, new Object[]
-        {
-            arg0
-        });
-    }
-
-    public static String getString(String key, String arg0, String arg1)
-    {
-        return getString(key, new Object[]
-        {
-            arg0, arg1
-        });
-    }
-
-    public static String getString(String key, String arg0, String arg1, String arg2)
-    {
-        return getString(key, new Object[]
-        {
-            arg0, arg1, arg2
-        });
-    }
-
-    public static String getString(String key, Object[] args)
-    {
-        try
-        {
-            return MessageFormat.format(bundle.getString(key), args);
-        }
-        catch (MissingResourceException e)
-        {
-            StringBuffer argString = new StringBuffer(key);
-            argString.append(":");
-            for (int i = 0; i < args.length; i++)
+            if(fields[i].getName().equals(fieldName))
             {
-                argString.append(args[i]);
+                try
+                {
+                    return (String)fields[i].get(null);
+                }
+                catch(Exception ex)
+                {
+                    return "!" + fieldName + "!";
+                }
             }
-            return argString.toString();
         }
-    }
+        return "!" + fieldName + "!";
+    }	
 
-    /**
-     * Return the Locale that is loaded during startup
-     * 
-     * @return the locale
-     */
-    public static Locale getLocale()
-    {
-        return bundle.getLocale();
-    }
-}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/internal/utils/StatusLogger.java b/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/internal/utils/StatusLogger.java
index 44373a7..21ebf6e 100644
--- a/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/internal/utils/StatusLogger.java
+++ b/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/internal/utils/StatusLogger.java
@@ -620,9 +620,9 @@
     {
         if (_rb == null)
         {
-            IStatus status = new Status(IStatus.ERROR, _pluginId, IStatus.OK, Messages.getString("StatusLogger.no.bundle"), null); //$NON-NLS-1$
+            IStatus status = new Status(IStatus.ERROR, _pluginId, IStatus.OK, Messages.StatusLogger_no_bundle, null); 
             _log.log(status);
-            return key + Messages.getString("StatusLogger.possible.args"); //$NON-NLS-1$
+            return key + Messages.StatusLogger_possible_args; 
         }
         else
         {
@@ -632,9 +632,9 @@
             }
             catch (MissingResourceException ee)
             {
-                IStatus status = new Status(IStatus.ERROR, _pluginId, IStatus.OK, Messages.getString("StatusLogger.no.bundle.1") + key + "\".", null); //$NON-NLS-1$
+                IStatus status = new Status(IStatus.ERROR, _pluginId, IStatus.OK, Messages.StatusLogger_no_bundle_1 + key + "\".", null); 
                 _log.log(status);
-                return key + Messages.getString("StatusLogger.possible.args.1"); //$NON-NLS-1$
+                return key + Messages.StatusLogger_possible_args_1; 
             }
         }
     }
diff --git a/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/internal/utils/StatusTextProvider.java b/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/internal/utils/StatusTextProvider.java
index 963ec86..60e8a9a 100644
--- a/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/internal/utils/StatusTextProvider.java
+++ b/plugins/org.eclipse.datatools.sqltools.result/src/org/eclipse/datatools/sqltools/result/internal/utils/StatusTextProvider.java
@@ -13,6 +13,7 @@
 import org.eclipse.datatools.sqltools.result.OperationCommand;
 import org.eclipse.datatools.sqltools.result.internal.model.IResultInstance;
 import org.eclipse.datatools.sqltools.result.internal.model.ResultItem;
+import org.eclipse.osgi.util.NLS;
 
 /**
  * Utilility class to get some status related message
@@ -31,11 +32,17 @@
     {
         if(updateCount == 1)
         {
-            return Messages.getString("StatusTextProvider.update.count.single", String.valueOf(updateCount)) + _LINESEPARATOR; //$NON-NLS-1$
+            return NLS.bind(Messages.StatusTextProvider_update_count_single, new Object[] {(new Object[]
+			{
+			    String.valueOf(updateCount)
+			})}) + _LINESEPARATOR; //$NON-NLS-1$
         }
         else
         {
-            return Messages.getString("StatusTextProvider.update.count.complex", String.valueOf(updateCount)) + _LINESEPARATOR; //$NON-NLS-1$
+            return NLS.bind(Messages.StatusTextProvider_update_count_complex, new Object[] {(new Object[]
+			{
+			    String.valueOf(updateCount)
+			})}) + _LINESEPARATOR; //$NON-NLS-1$
         }
     }
     
@@ -73,14 +80,14 @@
         StringBuffer buff = new StringBuffer(""); //$NON-NLS-1$
         buff.append(instance.getOperationCommand().getDisplayString()).append(_LINESEPARATOR);
         buff
-                .append(Messages.getString("StatusTextProvider.action.type")).append(OperationCommand.getActionString(instance.getOperationCommand().getActionType())) //$NON-NLS-1$
+                .append(Messages.StatusTextProvider_action_type).append(OperationCommand.getActionString(instance.getOperationCommand().getActionType())) 
                 .append(_LINESEPARATOR);
         buff
-                .append(Messages.getString("StatusTextProvider.profile.name")).append(instance.getOperationCommand().getProfileName()).append(_LINESEPARATOR); //$NON-NLS-1$
+                .append(Messages.StatusTextProvider_profile_name).append(instance.getOperationCommand().getProfileName()).append(_LINESEPARATOR); 
         buff
-                .append(Messages.getString("StatusTextProvider.database")).append(instance.getOperationCommand().getDatabaseName()).append(_LINESEPARATOR); //$NON-NLS-1$
+                .append(Messages.StatusTextProvider_database).append(instance.getOperationCommand().getDatabaseName()).append(_LINESEPARATOR); 
         buff
-                .append(Messages.getString("StatusTextProvider.time")).append(instance.getExecuteTime()).append(_LINESEPARATOR); //$NON-NLS-1$
+                .append(Messages.StatusTextProvider_time).append(instance.getExecuteTime()).append(_LINESEPARATOR); 
         int count = instance.getItemCount();
         for (int i = 0; i < count; i++)
         {
diff --git a/plugins/org.eclipse.datatools.sqltools.routineeditor/plugin.properties b/plugins/org.eclipse.datatools.sqltools.routineeditor/plugin.properties
index 59b8bcc..2b92aa5 100644
--- a/plugins/org.eclipse.datatools.sqltools.routineeditor/plugin.properties
+++ b/plugins/org.eclipse.datatools.sqltools.routineeditor/plugin.properties
@@ -1,4 +1,6 @@
 Routineeditor.edit= &Edit...
 Routineeditor.run= &Run...
 
-Routineeditor.name=Routine Editor
\ No newline at end of file
+Routineeditor.name=Routine Editor
+
+routine.launch.type=Eclipse Data Tools
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.sqltools.routineeditor/plugin.xml b/plugins/org.eclipse.datatools.sqltools.routineeditor/plugin.xml
index b482d92..516c99d 100644
--- a/plugins/org.eclipse.datatools.sqltools.routineeditor/plugin.xml
+++ b/plugins/org.eclipse.datatools.sqltools.routineeditor/plugin.xml
@@ -8,7 +8,7 @@
    <extension
          point="org.eclipse.debug.core.launchConfigurationTypes">
       <launchConfigurationType
-            name="Eclipse Data Tools"
+            name="%routine.launch.type"
             delegate="org.eclipse.datatools.sqltools.routineeditor.launching.SPLaunchConfigurationDelegate"
             modes="run,debug"
             id="org.eclipse.datatools.sqltools.routineeditor.launching.launchConfigurationType">
diff --git a/plugins/org.eclipse.datatools.sqltools.sqleditor/plugin.properties b/plugins/org.eclipse.datatools.sqltools.sqleditor/plugin.properties
index 8e5ecb9..afef426 100644
--- a/plugins/org.eclipse.datatools.sqltools.sqleditor/plugin.properties
+++ b/plugins/org.eclipse.datatools.sqltools.sqleditor/plugin.properties
@@ -10,3 +10,5 @@
 
 sqlProblemName=SQL Syntax Validation Problem
 sqlPortabilityName=SQL Portability Task
+
+database.development.perspective=Database Development
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.sqltools.sqleditor/plugin.xml b/plugins/org.eclipse.datatools.sqltools.sqleditor/plugin.xml
index e0b9a29..def1cbf 100644
--- a/plugins/org.eclipse.datatools.sqltools.sqleditor/plugin.xml
+++ b/plugins/org.eclipse.datatools.sqltools.sqleditor/plugin.xml
@@ -44,7 +44,7 @@
    <extension
          point="org.eclipse.ui.perspectives">
       <perspective
-            name="Database Development"
+            name="database.development.perspective"
             icon="icons/DB_dev_perspective.gif"
             class="org.eclipse.datatools.sqltools.sqleditor.perspectives.EditorPerspective"
             id="org.eclipse.datatools.sqltools.sqleditor.perspectives.EditorPerspective">
diff --git a/plugins/org.eclipse.datatools.sqltools.sqlscrapbook/src/org/eclipse/datatools/sqltools/internal/sqlscrapbook/connection/ConnectionInfoGroup.java b/plugins/org.eclipse.datatools.sqltools.sqlscrapbook/src/org/eclipse/datatools/sqltools/internal/sqlscrapbook/connection/ConnectionInfoGroup.java
index 3b1244d..63915cd 100644
--- a/plugins/org.eclipse.datatools.sqltools.sqlscrapbook/src/org/eclipse/datatools/sqltools/internal/sqlscrapbook/connection/ConnectionInfoGroup.java
+++ b/plugins/org.eclipse.datatools.sqltools.sqlscrapbook/src/org/eclipse/datatools/sqltools/internal/sqlscrapbook/connection/ConnectionInfoGroup.java
@@ -197,7 +197,7 @@
 //		_create.addListener(SWT.Selection, this);
 
 		_labelDbName = new Label(this, SWT.NONE);
-		_labelDbName.setText("Database Name:");
+		_labelDbName.setText(Messages.ConnectionInfoGroup_database_name);
 		createComboDbName(this);
 
 		if (!_mustConnect) {
@@ -415,19 +415,19 @@
 	 * 
 	 */
 	private void updateFields() {
-		if (_comboType.getText() != null && !"".equals(_comboType.getText()))
+		if (_comboType.getText() != null && !"".equals(_comboType.getText())) //$NON-NLS-1$
 		{
 			_dbVendorId = new DatabaseVendorDefinitionId(_comboType.getText());
 		}
 		// set _profileName to "" has no meaning
 		if (_comboProfileName.getText() != null
-				&& !"".equals(_comboProfileName.getText())) {
+				&& !"".equals(_comboProfileName.getText())) { //$NON-NLS-1$
 			_profileName = _comboProfileName.getText();
 		} else {
 			_profileName = null;
 		}
 		if (_combodbName != null && _combodbName.getText() != null
-				&& !"".equals(_combodbName.getText())) {
+				&& !"".equals(_combodbName.getText())) { //$NON-NLS-1$
 			_dbName = _combodbName.getText();
 		}
 
@@ -596,7 +596,7 @@
 	 * @param dbVendorName
 	 */
 	private void refreshProfileNames(String dbVendorName, String initialProfName) {
-		if (dbVendorName == null || dbVendorName.equals("")) {
+		if (dbVendorName == null || dbVendorName.equals("")) { //$NON-NLS-1$
 			//$NON-NLS-1$
 			return;
 		}
@@ -617,7 +617,7 @@
 
 		Collections.sort(rightProfiles);
 
-		rightProfiles.add(0, new String(""));
+		rightProfiles.add(0, new String("")); //$NON-NLS-1$
 		_comboProfileName.setItems((String[]) rightProfiles
 				.toArray(new String[] {}));
 		if (initialProfName != null) {
diff --git a/plugins/org.eclipse.datatools.sqltools.sqlscrapbook/src/org/eclipse/datatools/sqltools/internal/sqlscrapbook/connection/Messages.java b/plugins/org.eclipse.datatools.sqltools.sqlscrapbook/src/org/eclipse/datatools/sqltools/internal/sqlscrapbook/connection/Messages.java
index 7188814..276b64f 100644
--- a/plugins/org.eclipse.datatools.sqltools.sqlscrapbook/src/org/eclipse/datatools/sqltools/internal/sqlscrapbook/connection/Messages.java
+++ b/plugins/org.eclipse.datatools.sqltools.sqlscrapbook/src/org/eclipse/datatools/sqltools/internal/sqlscrapbook/connection/Messages.java
@@ -36,4 +36,6 @@
 	static {
 		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
 	}
+
+	public static String ConnectionInfoGroup_database_name;
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.sqltools.sqlscrapbook/src/org/eclipse/datatools/sqltools/internal/sqlscrapbook/connection/messages.properties b/plugins/org.eclipse.datatools.sqltools.sqlscrapbook/src/org/eclipse/datatools/sqltools/internal/sqlscrapbook/connection/messages.properties
index a17bb88..a121cc2 100644
--- a/plugins/org.eclipse.datatools.sqltools.sqlscrapbook/src/org/eclipse/datatools/sqltools/internal/sqlscrapbook/connection/messages.properties
+++ b/plugins/org.eclipse.datatools.sqltools.sqlscrapbook/src/org/eclipse/datatools/sqltools/internal/sqlscrapbook/connection/messages.properties
@@ -9,3 +9,4 @@
 SelectProfileGroup_error_init=Error initializing SelectProfileGroup using: {0}
 SelectProfileDialog_noprofile=There is no connection profile associated with this resource. Select a connection profile type/name.
 SelectProfileDialog_wrongprofile=The connection profile (\"{0}\") associated with this resource is not valid. Select a connection profile type/name.
+ConnectionInfoGroup_database_name=Database Name: