<HTML><!-- #BeginTemplate "/Templates/MainTemplate.dwt" -->
<HEAD>
<!-- #BeginEditable "doctitle" --> 
<TITLE>RB Manager - The Untranslated Tab</TITLE>
<!-- #EndEditable --> 
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<STYLE TYPE="TEXT/CSS">
<!--
.topicHead {  font-family: "Times New Roman", Times, serif; font-size: 14pt; font-weight: bold; text-align: center; color: #333333}
.topicList {  font-family: Georgia, "Times New Roman", Times, serif; font-size: 9pt; color: #FF0099; list-style-image: url(../images/diamond_bullet.gif); text-decoration: none; font-weight: bold}
.mainBlock {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12pt; margin-top: 5px; margin-right: 5px; margin-bottom: 5px; margin-left: 5px; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; text-align: justify}
-->
</STYLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF" LEFTMARGIN="0" TOPMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0">
  <TR>
    <TD ROWSPAN="2" COLSPAN="2" BACKGROUND="../images/template_ul.gif" HEIGHT="75"><IMG SRC="../images/spacer.gif" WIDTH="280" HEIGHT="1" HSPACE="0"></TD>
		<TD HEIGHT="15"  WIDTH="100%" BACKGROUND="../images/template_u.gif"></TD>
	</TR>
	<TR>
		<TD HEIGHT="60" >
			<CENTER><IMG SRC="../images/TitleLogo_transparent.gif" VSPACE="0"></CENTER>
		</TD>
	</TR>
	<TR>
		
    <TD WIDTH="200" BACKGROUND="../images/template_l.gif" VALIGN="top">
		<TABLE WIDTH="180" CELLSPACING="0" CELLPADDING="1"> 
      	<TR>
			<TD CLASS="topicHead">General</TD>
		</TR>
		<TR>
			<TD VALIGN="center"><IMG SRC="../images/template_line.gif"></TD>
		</TR>
		<TR>
			<TD CLASS="topicList">
	        <UL>
              <LI><A HREF="../system_requirements.html">System Requirements</A></LI>
              <LI><A HREF="../faq.html">FAQ</A></LI>
              <LI><A HREF="../future_features.html">Future Releases</A></LI>
              <LI CLASS="topicList"><A HREF="../future_features.html">Version 
                History</A></LI>
            </UL>
			</TD>
		</TR>
      	<TR>
			<TD CLASS="topicHead">RB Manager</TD>
		</TR>
		<TR>
			<TD VALIGN="center"><IMG SRC="../images/template_line.gif"></TD>
		</TR>
		<TR>
			<TD CLASS="topicList">
	        <UL>
              <LI><A HREF="../index.html">Home</A></LI>
              <LI><A HREF="../tutorial/index.html">Tutorial</A></LI>
              <LI><A HREF="index.html">Functionality and Views</A></LI>
              <LI><A HREF="../lookandfeel.html">Look and Feel</A></LI>
              <LI><A HREF="../menu.html">Menu Items</A></LI>
              <LI CLASS="topicList"><A HREF="../tutorial/step1.html">Preferences</A></LI>
            </UL>
			</TD>
		</TR>
		<TR>
			<TD CLASS="topicHead">RB Reporter</TD>
		</TR>
		<TR>
			<TD VALIGN="center"><IMG SRC="../images/template_line.gif"></TD>
		</TR>
		<TR>
			<TD CLASS="topicList">
	  <UL>
              <LI><A HREF="../RBReporter.html">Home</A></LI>
        <LI>Report Types</LI>
              <LI><A HREF="../scanfile.html">Code Scanning</A></LI>
            </UL>
			</TD>
		</TR>
	</TABLE>

      <P>&nbsp; </P>
      </TD>
		
    <TD COLSPAN="2" VALIGN="top" CLASS="mainBlock"><!-- #BeginEditable "Main" --> 
      <H3 ALIGN="CENTER">View 3. The Untranslated Tab</H3>
      <P>The Untranslated tab view, like all tab views, looks and functions differently 
        when working with the resource bundle as a whole than when working with 
        an individual resource file. For an overview of this difference see <A HREF="view1.html">View 
        1</A>. The Untranslated tab view is most often used when working with 
        individual resource files, and is probably the largest convenience that 
        RB Manager offers over other methods of working with resource bundles.</P>
      <P><B>Working with a Resource Bundle</B></P>
      <P>The screen shot below shows RB Manager and a view of untranslated items 
        for the entire resource bundle.</P>
      <P><IMG SRC="../images/screenshots/view_untrans_bundle.gif" WIDTH="671" HEIGHT="543"></P>
      <P>From this view, resource bundles can not be edited. To do this you either 
        have to go to the Groups tab view or select an individual resource file. 
        The view is useful though for getting a picture of the translation status 
        of the entire resource bundle.</P>
      <P>In this view, each of the resource files is represented and the number 
        of untranslated items is displayed as well as the resource key for each 
        of those items. Scrolling up and down the view gives a complete look at 
        the various files.</P>
      <P><B>Working with a Resource File</B></P>
      <P>The next screen shot shows the Untranslated tab view when working with 
        an individual resource file. This is the view translators will probably 
        use the most.</P>
      <P><IMG SRC="../images/screenshots/view_untrans_file.gif" WIDTH="671" HEIGHT="543"></P>
      <P>Listed in the table is each of the resource currently marked as untranslated 
        (for more on the meta data associated with each resource, see the <A HREF="../tutorial/index.html">Tutorial</A>). 
        The table shows the resource key and group of the resource, which can 
        not be edited from a resource file view, and the translation of the resource, 
        which can be edited here.</P>
      <P>To translate a resource, simply double click the row containing the resource. 
        A dialog box will pop up allowing the resource file specific elements 
        of the resource to be edited. That dialog box is shown here. Its use can 
        be found in the Tutorial.</P>
      <P><IMG SRC="../images/screenshots/view_untrans_dialog0.gif" WIDTH="513" HEIGHT="269"></P>
      <P>In some cases, you may want to leave the translation as it stands. This 
        is common for instance when working with variants of a language with little 
        change from the language parent (e.g. Canadian English and U.S. English 
        have relatively few differences).</P>
      <P>There are two ways to handle this. One way is to select the resource 
        and mark it as translated. This can be done by pressing the 'Mark Resource 
        as Translated' button or double clicking the resource, checking the 'Translated' 
        check box and clicking the 'Edit' button. The other way is to remove the 
        resource from the resource file by selecting the resource and clicking 
        'Delete Resource'.</P>
      <P>Either way, the resource bundle should act the same when presenting translations 
        to the user. In the former case, the translation from the resource file 
        is used. In the latter case, the translation falls back to the one found 
        in an ancestor resource file.</P>
      <P>Note that only one resource can be edited at a time in the current version 
        of RB Manager. Future versions will allow multiple selections of resources 
        in this view.</P>
      <P ALIGN="CENTER"><A HREF="view4.html">View 4. The Groups Tab</A></P>
      <!-- #EndEditable --></TD>
	</TR>
	<TR>
		<TD BACKGROUND="../images/template_ll.gif" HEIGHT="40" WIDTH="200">
			<!-- Comment -->
		</TD>
		<TD WIDTH="80">
			<!-- Comment -->
		</TD>
		<TD>
			<CENTER><SPAN CLASS="Copyright">Copyright 2000-2001 International Business Machines, All Rights Reserved</SPAN></CENTER>
		</TD>
	</TR>
</TABLE>

</BODY>
<!-- #EndTemplate --></HTML>
