<html><head>
<link rel="stylesheet" href="../../default_style.css">
<title>Eclipse 3.1.1 Translation Packs</title></head>
<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
<table border=0 cellspacing=5 cellpadding=2 width="100%" >
  <tr> 
    <td align=left width="72%"> <font class=indextop> Eclipse 3.1.1 translations</font><br>
      <font class=indexsub>&nbsp; </font></td>
    <td width="28%"><img src="../../images/Idea.jpg" height=86 width=120></td>
  </tr>
</table>
<table border=0 cellspacing=3 cellpadding=2 width="100%" >
  <tr> 
    <td align="left" valign="top" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Eclipse 
      Community Bulletin </font></b></td>
  </tr>
  <tr> 
    <td> <br>
      <h1 ALIGN="CENTER"><b><span style='font-size:16.0pt;font-family:Arial;"Times New Roman"'><b> 
        Eclipse 3.1.1 translation packs available!</b></span></b></h1>
      <p><br>
        For the Eclipse 3.1.1 release, IBM Rational Software has contributed translations 
        for the Eclipse Project and for several subprojects of the Eclipse Tools 
        Project, the Eclipse Web Tools Platform Project and the Eclipse Test and 
        Performance Tools Platform Project. </p>
      <table width="100%" border="0" cellpadding="3">
        <tr> 
          <td width="43%"><b>Eclipse Platform Project </b><br>
            Translation is comprised of the IDE Platform, SDK, Base Platform, 
            JDT runtime, PDE runtime</td>
          <td width="57%"><a href="http://download.eclipse.org/downloads/drops/L-3.1.1_Language_Packs-200510051300/index.php" target="_top"><br>
            http://download.eclipse.org/downloads/drops/L-3.1.1_Language_Packs-<br>
            200510051300/index.php</a></td>
        </tr>
        <tr> 
          <td width="43%"><b>Eclipse Tools Project</b><br>
            Translation is comprised of several projects: </td>
          <td width="57%">&nbsp;</td>
        </tr>
        <tr> 
          <td width="43%"> &nbsp;&nbsp;Visual Editor (VE) </td>
          <td width="57%"><a href="http://www.eclipse.org/vep/WebContent/docs/translations/translation.html" target="_top">http://www.eclipse.org/vep/WebContent/docs/translations/translation.html</a></td>
        </tr>
        <tr> 
          <td width="43%"> &nbsp;&nbsp;UML2 </td>
          <td width="57%"> <a href="http://download.eclipse.org/tools/uml2/scripts/downloads.php" target="_top">http://download.eclipse.org/tools/uml2/scripts/downloads.php</a></td>
        </tr>
        <tr> 
          <td width="43%"> &nbsp;&nbsp;Graphical Editor Framework (GEF) </td>
          <td width="57%"><a href="http://www.eclipse.org/gef/translations/translation.html" target="_top">http://www.eclipse.org/gef/translations/translation.html</a></td>
        </tr>
        <tr> 
          <td width="43%"> &nbsp;&nbsp;EMF / XSD </td>
          <td width="57%"><a href="http://download.eclipse.org/tools/emf/scripts/downloads.php#NLS21" target="_top">http://download.eclipse.org/tools/emf/scripts/downloads.php#NLS21</a></td>
        </tr>
        <tr> 
          <td width="43%"><b>Web Tools Platform Project</b><br>
            Translation is comprised of Web Standard Tools and J2EE Standard Tools</td>
          <td width="57%"><a href="http://download.eclipse.org/webtools/downloads/translations/M-0.7.1-200509270720/translation.html" target="_top"><br>
            http://download.eclipse.org/webtools/downloads/translations/M-0.7.1-<br>
            200509270720/translation.html</a> </td>
        </tr>
        <tr> 
          <td width="43%"><b>Eclipse Test and Performance Tools Platform Project</b><br>
            Translation is comprised of TPTP Platform, Monitoring Tools, Testing 
            Tools and Tracing and Profiling Tools</td>
          <td width="57%"><a href="http://www.eclipse.org/tptp/home/downloads/drops/TPTP-4.0.1.html" target="_top"><br>
            <br>
            http://www.eclipse.org/tptp/home/downloads/drops/TPTP-4.0.1.html</a></td>
        </tr>
        <tr> 
          <td width="43%">&nbsp;</td>
          <td width="57%">&nbsp;</td>
        </tr>
      </table>
      <br>
      The language packs are distributed as zips, which you can install by downloading 
      the zip file, unzipping into your Eclipse directory before starting Eclipse. 
      Please read the details below concerning the zip files and their contents 
      before using these translations. 
      <p>For all the projects there are these types of language pack zip files:</p>
      <ul>
        <li><b>NLpack1</b> &#150; Contains the NL fragments and the NL features<SUP>1</SUP> 
          that contain those fragments for: German, Spanish, French, Italian, 
          Japanese, Korean, Portuguese (Brazil), Traditional Chinese and Simplified 
          Chinese.<br>
          <br>
        </li>
        <li><b>NLpack2</b> &#150; Contains the NL fragments and the NL features<SUP>1</SUP> 
          that contain those fragments for: Czech, Hungarian, Polish and Russian.<br>
          <br>
        </li>
        <li><b>NLpackBidi</b> &#150; Contains the NL fragments and the NL features<SUP>1</SUP> 
          that contain those fragments for: Arabic.<br>
          <br>
        </li>
        <li><b>NLpack1_FeatureOverlay</b> &#150; Contains the translations for 
          feature.properties files contained by the features<SUP>2</SUP> defined 
          by the Eclipse component being translated. These files contain translations 
          for: German, Spanish, French, Italian, Japanese, Korean, Portuguese 
          (Brazil), Traditional Chinese and Simplified Chinese.<br>
          <br>
        </li>
        <li><b>NLpack2_FeatureOverlay</b> &#150; Contains the translations for 
          feature.properties files contained by the features<SUP>2</SUP> defined 
          by the Eclipse component being translated. These files contain translations 
          for: Czech, Hungarian, Polish and Russian.<br>
          <br>
        </li>
        <li><b>NLpackBidi_FeatureOverlay</b> &#150; Contains the translations 
          for feature.properties files contained by the features<SUP>2</SUP> defined 
          by the Eclipse component being translated. These files contain translations 
          for: Arabic.<br>
          <br>
        </li>
      </ul>
      <p><SUP>1</SUP> NL features are new features that did not exist for the 
        component prior to translation. They parallel the set of features defined 
        by the component and contain the NL fragments that contain the translations 
        for the plugins contained by the corresponding features. They contain 
        the translations for their own feature.properties files, not the translations 
        of the feature.properties files contained by the corresponding features.</p>
      <p><SUP>2</SUP>Feature overlays contain the translation for the feature.properties 
        files contained by the corresponding features. Here are the details as 
        to why these files exist.</p>
      <ul>
        <li>These are the only translatable values inside an Eclipse 
          environment where the English strings are not in a plugin or plugin 
          fragment.</li>
        <li>There is no such thing as a feature fragment like there is 
          a plugin fragment. The translations of strings in feature.properties 
          must reside in the feature directory right next to the English feature.properties 
          file in order to be found.</li>
        <li>The feature directory names include the version number at 
          the end. 
          <ul>
            <li>So do plugin directories but that is not a significant 
              fact in this discussion as the fragment support can handle the plugin 
              and fragment not having the exact same version as long as the fragment.xml 
              file has a proper match clause on its plugin references.</li>
          </ul>
        </li>
        <li>So, for the feature.properties translations which are created, 
          managed and ship separately from the component zip files to land in 
          the proper location to work properly when unzipped over an Eclipse install, 
          the directory names in two independently built zip files have to match 
          exactly.
          <ul>
            <li>There is no such problem for the rest of the translations 
              including our NL features since those are built as a whole.</li>
          </ul>
        </li>
        <li>The only way to get this right is to build the overlay files 
          against every release (even all the maintenance ones) that you want 
          them to work with and then re-release them for each one.</li>
        <li>Prior to 3.1.1 all the translations (the well behaved majority 
          and the overlays) were included in the same zip file and rebuilt everything 
          for each release (even the maintenance releases). This is not required 
          for most of the translation volume, just the overlays so now, starting 
          with 3.1.1, they are separated. Going forward, these NLpack zip files 
          will work with all 3.1.x releases without a rebuild (not 3.1.0 since 
          there were too many NL fixes in 3.1.1). Each component will need to 
          continue to re-release the much smaller NLpack_FeatureOverlay zip files 
          with each maintenance release simply to align the directory names. Alternatively, 
          consumers of a component now have a small number of directory names 
          to fix up as they move from one maintenance release of a component to 
          another.</li>
        <li>Finally, the various group overlay files must be separated 
          since they should be separately selectable and the contents would collide 
          by definition (identical directory structures) if in the same zip. The 
          three NLpack zip files could have been combined into one since they 
          would not collide with each as they have different NL fragment and NL 
          feature names but it was determined that consistency in packaging the 
          language groups separately would be best.</li>
      </ul>
      <p> </p>
      <P><br>
      </p>
    </td>
  </tr>
  </table>
  &nbsp; 
	<TABLE  width="100%" CELLSPACING=0 CELLPADDING=3>
		
  <tr> 
    <td> 
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <hr width="85%">
      <blockquote> 
        <blockquote> 
          <blockquote>
            <p><font size="1">Brand or product names are registered trademarks 
              or trademarks of their respective holders. Java and all Java-based 
              trademarks are trademarks or registered trademarks of Sun Microsystems, 
              Inc. in the United States and other countries.</font><br>
              <br>
            </p>
          </blockquote>
        </blockquote>
      </blockquote>
      <hr width="85%">
    </td>
		</tr>
        </table>&nbsp;        
&nbsp;
</body></html>
