<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>
      Externalize Strings wizard
    </title>
    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
  </head>
  <body>
    <h1>
      Externalize Strings wizard
    </h1>
    <p>
      The Externalize Strings wizard allows you to refactor a compilation unit such that strings used in the compilation unit can be translated to different languages. The wizard
      consists of the following pages:
    </p>
    <ul>
      <li>
        String selection page
      </li>
      <li>
        Translation settings page
      </li>
      <li>
        Error page
      </li>
      <li>
        Preview page
      </li>
    </ul>
    <h2 class="Head">
      String selection page
    </h2>
    <p>
      This page specifies which strings are translated and which not.
    </p>
    <table border="1" cellspacing="0" cellpadding="5" width="100%">
      <thead>
        <tr>
          <th>
            <p>
              Field
            </p>
          </th>
          <th>
            <p>
              Description
            </p>
          </th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td valign="top">
            <p>
              <strong>Enter common prefix for generated keys</strong>
            </p>
          </td>
          <td valign="top">
            <p>
              Specifies an optional prefix for every generated key. For example, the fully qualified name of the compilation unit could be used.
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              <strong>Strings to externalize</strong>
            </p>
          </td>
          <td valign="top">
            <p>
              Displays the list of non-externalized strings with proposed keys and values.
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              <strong>Translate</strong>
            </p>
          </td>
          <td valign="top">
            <p>
              Marks the selected strings to be translated.
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              <strong>Never Translate</strong>
            </p>
          </td>
          <td valign="top">
            <p>
              Marks the selected strings as not to be translated.
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              <strong>Skip</strong>
            </p>
          </td>
          <td valign="top">
            <p>
              Marks the selected strings as to be skipped.
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              <strong>Edit Key...</strong>
            </p>
          </td>
          <td valign="top">
            <p>
              Opens a dialog for entering a new key.
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              <strong>Context</strong>
            </p>
          </td>
          <td valign="top">
            <p>
              Displays the occurrence of the string in the context of the compilation unit.
            </p>
          </td>
        </tr>
      </tbody>
    </table>
    <h2 class="Head">
      Translation settings page
    </h2>
    <p>
      This page specifies translation specific settings.
    </p>
    <table border="1" cellspacing="0" cellpadding="5" width="100%">
      <thead>
        <tr>
          <th>
            <p>
              Option
            </p>
          </th>
          <th>
            <p>
              Description
            </p>
          </th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td valign="top">
            <p>
              <strong>Package</strong>
            </p>
          </td>
          <td valign="top">
            <p>
              Specifies the destination package for the property file.
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              <strong>Property file name</strong>
            </p>
          </td>
          <td valign="top">
            <p>
              Specifies the property file name.
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              <strong>Create resource bundle accessor class in &quot;<var>package</var>&quot;</strong>
            </p>
          </td>
          <td valign="top">
            <p>
              If enabled, the wizard creates a class to access the language specific resource bundle.
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              <strong>Class name</strong>
            </p>
          </td>
          <td valign="top">
            <p>
              The name of the class to access the resource bundle.
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              <strong>Use default substitution pattern</strong>
            </p>
          </td>
          <td valign="top">
            <p>
              If enabled, the wizard will use default substitution patterns.
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              <strong>Substitution pattern</strong>
            </p>
          </td>
          <td valign="top">
            <p>
              Specifies the source pattern to replace the string to externalize.
            </p>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <p>
              <strong>Add import declaration</strong>
            </p>
          </td>
          <td valign="top">
            <p>
              Specifies additional import declarations. This might be required depending on referenced types by the substitution pattern.
            </p>
          </td>
        </tr>
      </tbody>
    </table>
    <h2 class="Head">
      Error page
    </h2>
    <p>
      Displays a list of errors and warnings if any.
    </p>
    <h2 class="Head">
      Preview page
    </h2>
    <p>
      Displays a preview of the actions which will be performed on 'Finish'.
    </p>
    <p>
      <img border="0" src="../images/ngrelc.gif" alt="Related concepts" width="159" height="27"><br>
      <a href="../concepts/cnls.htm">String externalization</a>
    </p>
    <p>
      <img src="../images/ngrelt.gif" alt="Related tasks" border="0" height="27" width="159"><br>
      <a href="../tasks/tasks-206.htm">Externalizing Strings</a><br>
      <a href="../tasks/tasks-180.htm">Using the Externalize Strings wizard</a>
      <a href="../tasks/tasks-110.htm"></a>
    </p>
    <p>
      <img border="0" width="159" height="27" src="../images/ngrelr.gif" alt="Related reference"><br>
      <a href="../reference/ref-menu-source.htm">Source actions</a>
    </p>
	<p>
      <a href="../hglegal2003.htm"><img src="../images/ngibmcpy2003.gif" alt="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." border="0" width="324" height="14"></a>
	</p>
  </body>
</html>

