You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by wa...@apache.org on 2011/12/19 22:10:16 UTC

svn commit: r1220945 [10/28] - in /incubator/ooo/ooo-site/trunk/content/l10n: ./ L10N_Framework/ L10N_Framework/Examples.inv/ L10N_Framework/ooo20/ L10N_Framework/ooo20/oo_images/ download/ i18n_framework/ i18n_framework/cldr/ localization/ localizatio...

Added: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/CTL_Feature_Priorisation.html
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/CTL_Feature_Priorisation.html?rev=1220945&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/CTL_Feature_Priorisation.html (added)
+++ incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/CTL_Feature_Priorisation.html Mon Dec 19 21:10:12 2011
@@ -0,0 +1,556 @@
+<!-- saved from url=(0022)http://internet.e-mail -->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+<HEAD>
+  <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
+  <TITLE></TITLE>
+  <META NAME="GENERATOR" CONTENT="StarOffice 6.0  (Win32)">
+  <META NAME="AUTHOR" CONTENT="Falko Tesch">
+  <META NAME="CREATED" CONTENT="20010914;11512800">
+  <META NAME="CHANGEDBY" CONTENT="Falko Tesch">
+  <META NAME="CHANGED" CONTENT="20011219;14235314">
+</HEAD>
+<BODY LANG="en-GB">
+<H2>Priority of CTL Features<BR><FONT SIZE=2>(Updated 12/18/2001)</FONT></H2>
+<P STYLE="margin-bottom: 0cm"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=1 BORDERCOLOR="#ffffff" CELLPADDING=4 CELLSPACING=3>
+  <COL WIDTH=72*>
+  <COL WIDTH=160*>
+  <COL WIDTH=24*>
+  <TR>
+    <TH WIDTH=28% BGCOLOR="#99ccff">
+      <P ALIGN=LEFT><FONT SIZE=2><B>Feature</B></FONT></P>
+    </TH>
+    <TH WIDTH=62% BGCOLOR="#99ccff">
+      <P ALIGN=LEFT><FONT SIZE=2><B>Explanation</B></FONT></P>
+    </TH>
+    <TH WIDTH=9% BGCOLOR="#99ccff">
+      <P ALIGN=LEFT><FONT SIZE=2><B>Priority</B></FONT></P>
+    </TH>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Acknowledgement of short vowels and carried Hamsas</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>The 7 short vowels (<SPAN LANG="">&#1614;</SPAN> <SPAN LANG="">&#1611;</SPAN>
+      <SPAN LANG="">&#1615;</SPAN> <SPAN LANG="">&#1612;</SPAN> <SPAN LANG="">&#1616;</SPAN>
+      <SPAN LANG="">&#1613;</SPAN> <SPAN LANG="">&#1618;</SPAN>) appear
+      always above or below a consonant.</P>
+      <P>The 4 carried Hamsas (<SPAN LANG="">&#1571;</SPAN> <SPAN LANG="">&#1573;</SPAN>
+      <SPAN LANG="">&#1572;</SPAN> <SPAN LANG="">&#1574;</SPAN>) have
+      impact on pronunciation and spell checking</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="0" SDNUM="1031;">
+      <P ALIGN=CENTER>0</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Availability of different calendar format</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>The Arabic world uses different calendars, e,g Hijri, Gregorian
+      and Coptic. All these calendars should be support accordingly to
+      their circulation.</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="0" SDNUM="1031;">
+      <P ALIGN=CENTER>0</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Backspace and Delete movement</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>Delete and backspace must follow the exact same rules the
+      cursor traveling and marking</P>
+      <P>Exception Thai:</P>
+      <P>Delete will remove the whole Thai &quot;block of characters&quot;.
+       (which may consists of consonant, vowel, tonemark, etc.)</P>
+      <P>Backspace will remove just one character, not the whole block.</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="0" SDNUM="1031;">
+      <P ALIGN=CENTER>0</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P><A NAME="Bidi"></A>Bidirectionally</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>Most important and complex feature:</P>
+      <P>This feature contains the ability to write from right-to-left
+      (RTL) as well as from left-to-right (LTR). It must be possible to
+      change freely within those two directions.</P>
+      <P>Apart from the ability to set the default layout of the
+      page/document (RTL or LTR) we should be capable to let the user
+      select how the cursor travelling and marking work. There are the
+      logical order and the visual one:</P>
+      <OL>
+        <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Thorndale, serif">Logical
+        order:<BR>Select/travel through text the way the text was
+        written, e.g. if the user travels through mixed text
+        (Arabic/Latin) the cursor will travel from RTL while in Arabic
+        text and &ldquo;jump&rdquo; to LTR movement (and text beginning)
+        when reaching LTR text.</FONT></P>
+        <LI><P><FONT FACE="Thorndale, serif">Visual order:<BR>Travel
+        through text the way the cursor travel direction is assigned.
+        thus when the user travels RTL the whole text will be <SPAN LANG="en-GB">travelled</SPAN>
+        through in LTR manner regardless of content. In this case text
+        will be <SPAN LANG="en-GB">travelled</SPAN> through in reverse
+        (logical) order.<BR>Note: A visual selection is basically not
+        possible due to technical reason (take multiple selection to the
+        nth ;o)</FONT></P>
+      </OL>
+    </TD>
+    <TD WIDTH=9% SDVAL="0" SDNUM="1031;">
+      <P ALIGN=CENTER>0</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Character shaping (Arabic)</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>Since Arabic characters have four different statuses how they
+      can be displayed, isolated, initial, middle and final, they can
+      change their appearance. Those characters make multiple appearance
+      within the Unicode and must be displayed accordingly</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="0" SDNUM="1031;">
+      <P ALIGN=CENTER>0</P>
+      <P ALIGN=CENTER><BR>
+      </P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Cursor movement direction</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>The cursor can move either way:</P>
+      <P>One possibility is to invert the cursor movement, e.g.
+      Cursor-right would move to left in RTL formatted text.</P>
+      <P>The other is to do analogue movements, e.g. Cursor right moves
+      right, independent from LTR or RTL formatting.</P>
+      <P>Note: Most people consider the latter to be more appropriate
+      since it follows the WYSIWYG motto.</P>
+      <P>See more about this issues at <A HREF="#Bidi">Bidirectionality</A></P>
+    </TD>
+    <TD WIDTH=9% SDVAL="0" SDNUM="1031;">
+      <P ALIGN=CENTER>0</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Cursor movement within text</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>Since Thai and Arabic (and other) CTL languages allow to order
+      consonants and vowels not only in a horizontal but also in a
+      vertical order it is mandatory to modify the (visible) cursor
+      traveling.</P>
+      <P>It is not advised to copy cat MS here since they do not provide
+      a real visible feedback <B>where</B><SPAN STYLE="font-weight: medium">
+      the cursor stands. It might be a solution to only partly move or
+      highlight the cursor.</SPAN></P>
+    </TD>
+    <TD WIDTH=9% SDVAL="0" SDNUM="1031;">
+      <P ALIGN=CENTER>0</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Embed different text layouts into each other</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>It must be possible to insert e.g. RTL formatted text into a
+      LTR formatted paragraphs. The original formatting must not change</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="0" SDNUM="1031;">
+      <P ALIGN=CENTER>0</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Hindi digits support</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>While the digits we (Latin based countries) use are erroneously
+      called Arabic the Arabic world uses Hindi based digits</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="0" SDNUM="1031;">
+      <P ALIGN=CENTER>0</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Iteration and word breaking</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>CTL languages have various ways how word breaking, hyphenation
+      and iteration works. For all those there must be a framework to
+      take this in account</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="1" SDNUM="1031;">
+      <P ALIGN=CENTER>1</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Sorting</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>Sorting should obey all possible alphabetical orders</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="1" SDNUM="1031;">
+      <P ALIGN=CENTER>1</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Search &amp; Find</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>Special characteristics of finding, e.g. search only for
+      isolated characters in Arabic.</P>
+      <P>Search by transliteration must also be  included in the
+      framework</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="2" SDNUM="1031;">
+      <P ALIGN=CENTER>2</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Justification</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>E.g: In the Thai language fully-justified text is often
+      desirable. But because there are very few spaces in Thai, rivers
+      of &quot;white space&quot; may open up where the spaces lie or a
+      line may be broken badly to reduce the width of the space. As in
+      English, the problem is exacerbated when the column width is
+      narrow. However Thai allows for a method of solving this problem
+      that could not be used in English: Thai justification.</P>
+    </TD>
+    <TD WIDTH=9%>
+      <P ALIGN=CENTER><BR>
+      </P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Stress short vowels by colour</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>Stress short vowels by colour</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="2" SDNUM="1031;">
+      <P ALIGN=CENTER>2</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Visual and Logical Order.</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>Visual order: 
+      </P>
+      <P>The order in which the text, independent from its meaning, is
+      displayed on the screen</P>
+      <P>Logical order:</P>
+      <P>The order in which the text was typed in.</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="2" SDNUM="1031;">
+      <P ALIGN=CENTER>2</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Date converter</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>Due to the fact of all different calendar format a date
+      converter would make life much easier. More information can b<FONT SIZE=3><FONT FACE="Thorndale, serif">e
+      found </FONT></FONT><A HREF="http://www.koenigsmuenster.de/rsk/einfuehrung.htm"><FONT SIZE=3><FONT FACE="Thorndale, serif">here</FONT></FONT></A>.</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="3" SDNUM="1031;">
+      <P ALIGN=CENTER>3</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Localised templates and sample documents</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>A localised cultural and political set of clip-arts, templates
+      and sample documents should be included.</P>
+      <P>At least the existing set of  clip-arts, templates and sample
+      documents should be revised for any possible clash.</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="3" SDNUM="1031;">
+      <P ALIGN=CENTER>3</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Localised UI</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>The UI should be available in the local language.</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="3" SDNUM="1031;">
+      <P ALIGN=CENTER>3</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Re-design of menues and dialogues</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>To accomplish the RTL in Arabic (and other) languages the
+      dialogues and menues need to be mirrored (in very simplified
+      words!). 
+      </P>
+      <P>Apparently a simple mirroring though is not advised since the
+      readability of dialogues might need to be updated to keep logical
+      order.</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="3" SDNUM="1031;">
+      <P ALIGN=CENTER>3</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Special font effects</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>Special font effects</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="3" SDNUM="1031;">
+      <P ALIGN=CENTER>3</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Thai Buddhist Calendar</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>Thais use, apart from the  &ldquo;Gregorian calendar + Buddhist
+      era&rdquo; e.g. 18.10.2544 B.E., also a special calendar</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="3" SDNUM="1031;">
+      <P ALIGN=CENTER>3</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Indexing and Thai &quot;alphabetical&quot; order</P>
+      <P><BR>
+      </P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>If a Thai document basically cannot have an index, due to the
+      segmentation issue, it is not even possible to define what is a
+      word and what is a phrase.</P>
+    </TD>
+    <TD WIDTH=9% SDVAL="3" SDNUM="1031;">
+      <P ALIGN=CENTER>3</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Diacritical marks</P>
+      <P>(Do we really need this feature at all!)</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>Diacritical marks should carry individual formatting. Its also
+      advisable to fade them out, too. Unfortunately this applies
+      (AFAIK) only to Arabic scripts. Thus it seems very advisable to
+      connect those features like different colour or hiding of
+      diacritical marks to the language attribute of the affected text.
+      Why? Since e.g. Thai language also uses diacritical marks but
+      there is no need for separated formatted and it would be lethal to
+      hide them! So imagine a text that contains Arabic and Thai script!
+      Hiding diacritical marks would lead to garbled and even unreadable
+      Thai writing!</P>
+    </TD>
+    <TD WIDTH=9%>
+      <P ALIGN=CENTER>?</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>RTL UI</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>The complete UI must be capable of RTL layout (in most cases
+      mirrored menus and dialogues)</P>
+    </TD>
+    <TD WIDTH=9%>
+      <P ALIGN=CENTER>?</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Different calendars</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>Different calendars including different formatting are used in
+      various Arabic regions. thus the number formatter must not only
+      support different kinds of calendarial calculations but also
+      different spellings. E.g. the month' names of various Arabic
+      calendars can be spelled in Arabic, English transliteration and
+      French transliteration.<BR>Namely there are two important Arabic
+      calendars:</P>
+      <OL>
+        <LI><P>Hedshri(?)</P>
+        <OL>
+          <LI><P>With Hindi numbers</P>
+          <LI><P>With Arabic numbers</P>
+        </OL>
+        <LI><P>Gregorian</P>
+        <OL>
+          <LI><P>In Arabic synonyms</P>
+          <LI><P>In Arabic transliteration from English</P>
+          <LI><P>In Arabic transliteration from French (optional)</P>
+        </OL>
+      </OL>
+    </TD>
+    <TD WIDTH=9%>
+      <P ALIGN=CENTER>?</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Spreadsheet Calculation</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P>Determine what figures/numbers should be used must be done by
+      the number formatter. E.g. a spreadsheet is formatted in Thai than
+      all numbers should be displayed in Thai numbers (which is a bad
+      sample since Thais use Arabic numbers nowadays). moreover to
+      accomplish the goal of Arabic number fallback Arabic numbers
+      should be always part of the locale number format. It is to be
+      determined what number format is to be defaulted (Arabic or local
+      one). copying those numbers must always copy the correct string.
+      Thus the target application will paste the correct Unicode
+      glyphs.<BR>A list of all available number sets of all StarOffice'
+      supported locales is needed as well as the probability of their
+      everyday-use.</P>
+    </TD>
+    <TD WIDTH=9%>
+      <P ALIGN=CENTER>?</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Spreadsheets in Writer</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P><FONT FACE="Thorndale, serif">Writer tables should work as Calc
+      ones do</FONT></P>
+    </TD>
+    <TD WIDTH=9%>
+      <P ALIGN=CENTER>?</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Number Formatting</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P><FONT FACE="Thorndale, serif">Writer text should be able to
+      adjust the number format according to the set locale. It should
+      also be able to manually override this setting. The four possible
+      settings are: Hindi (set all numbers to Hindi, regards of the
+      selected locale), Arabic (see Hindi), Context (use the right
+      layout depending on the surrounding context) and System (use the
+      layout specified by the system's locale). The latter should be the
+      default.</FONT></P>
+    </TD>
+    <TD WIDTH=9%>
+      <P ALIGN=CENTER>?</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P><FONT FACE="Thorndale, serif">Search &amp; Find (Arabic only)</FONT></P>
+    </TD>
+    <TD WIDTH=62%>
+      <P><FONT FACE="Thorndale, serif">Arabic input must be covered.
+      Necessary options are &ldquo;Match Kashida&rdquo;, &ldquo;Match
+      Diacriticals&rdquo;, &ldquo;Match Alef Hamza&rdquo; and &ldquo;Match
+      Control characters&rdquo;. </FONT>
+      </P>
+    </TD>
+    <TD WIDTH=9%>
+      <P ALIGN=CENTER>?</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P>Addressing G Sub Tables</P>
+    </TD>
+    <TD WIDTH=62%>
+      <P><FONT FACE="Thorndale, serif">To address G-Sub Tables in
+      Unicode fonts (v.3) we need our font matching to be updated. G
+      Sub-tables often contain in their Private Use Area (PUA) certain
+      characters that are only used in certain countries or regions of
+      countries and will be defaulted once the appropriate locale (e.g.
+      Chines (Hong Kong) is selected.</FONT></P>
+    </TD>
+    <TD WIDTH=9%>
+      <P ALIGN=CENTER>?</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P><FONT FACE="Thorndale, serif">Nesting of LTR in RTL text and
+      vice versa</FONT></P>
+    </TD>
+    <TD WIDTH=62%>
+      <P><FONT FACE="Thorndale, serif">Nesting of LTR in RTL text and
+      vice versa must be possible. Example: One writes Arabic text (RTL)
+      and changes to English (LTR) and changes back after a few words to
+      Arabic. Now one would like to insert Arabic (RTL) text in between
+      two English words. This Arabic text must be nested in between the
+      two English words without inverting the English word order (like
+      MS Word does). this means each character must have an flag that
+      indicates its text direction.</FONT></P>
+    </TD>
+    <TD WIDTH=9%>
+      <P ALIGN=CENTER>?</P>
+    </TD>
+  </TR>
+  <TR BGCOLOR="#f0f0f0">
+    <TD WIDTH=28% VALIGN=TOP>
+      <P><FONT FACE="Thorndale, serif">Grid Layout (CJK)</FONT></P>
+    </TD>
+    <TD WIDTH=62%>
+      <P STYLE="margin-bottom: 0cm"><FONT FACE="Thorndale, serif">Grid
+      layout for CJK text must be applicable to pages and text boxes.
+      Necessary features are</FONT></P>
+      <OL>
+        <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Thorndale, serif">Characters
+        per row and column.</FONT></P>
+        <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Thorndale, serif">Pitch
+        of characters</FONT></P>
+        <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Thorndale, serif">Count
+        of rows and columns</FONT></P>
+        <LI><P><FONT FACE="Thorndale, serif">Text behaviour regarding
+        grid (e.g. snap to grid)</FONT></P>
+      </OL>
+    </TD>
+    <TD WIDTH=9%>
+      <P ALIGN=CENTER>?</P>
+    </TD>
+  </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0cm"><BR>
+</P>
+</BODY>
+</HTML>
\ No newline at end of file

Propchange: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/CTL_Feature_Priorisation.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/Grid_layout_for_CJK.html
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/Grid_layout_for_CJK.html?rev=1220945&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/Grid_layout_for_CJK.html (added)
+++ incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/Grid_layout_for_CJK.html Mon Dec 19 21:10:12 2011
@@ -0,0 +1,443 @@
+<!-- saved from url=(0022)http://internet.e-mail -->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+<HEAD>
+  <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
+  <TITLE></TITLE>
+  <META NAME="GENERATOR" CONTENT="StarOffice 6.0  (Win32)">
+  <META NAME="AUTHOR" CONTENT="Falko Tesch">
+  <META NAME="CREATED" CONTENT="20020118;12192800">
+  <META NAME="CHANGEDBY" CONTENT="Falko Tesch">
+  <META NAME="CHANGED" CONTENT="20020220;14251157">
+  <STYLE>
+  <!--
+    @page { margin: 2cm }
+    TD P { margin-bottom: 0.21cm }
+    H1 { margin-bottom: 0.21cm }
+    H1.western { font-family: "Thorndale", serif }
+    H1.cjk { font-size: 12pt; font-weight: medium }
+    H1.ctl { font-size: 16pt }
+    P { margin-bottom: 0.21cm }
+    H2 { margin-bottom: 0.21cm }
+    H2.western { font-family: "Thorndale", serif; font-size: 14pt; font-style: italic }
+    H2.cjk { font-size: 12pt; font-weight: medium }
+    H2.ctl { font-size: 14pt; font-style: italic }
+    H3 { margin-bottom: 0.21cm }
+    H3.western { font-family: "Thorndale", serif }
+    H3.cjk { font-size: 12pt; font-weight: medium }
+    TH P { margin-bottom: 0.21cm }
+    TH P.western { font-size: 10pt; font-style: normal }
+    TH P.cjk { font-weight: medium }
+    TH P.ctl { font-style: italic }
+  -->
+  </STYLE>
+</HEAD>
+<BODY LANG="en-GB">
+<H1 CLASS="western"><A NAME="Back to top"></A>Grid Layout for CJK in
+Writer</H1>
+<DIV ID="Table of Contents1">
+  <P><FONT SIZE=2>(Updated 02/20/2002)</FONT></P>
+  <DIV ID="Table of Contents1_Head">
+    <P><B>Table of Content</B></P>
+  </DIV>
+  <P STYLE="margin-bottom: 0cm"><A HREF="#1.1.Intro|outline">Intro</A></P>
+  <P STYLE="margin-bottom: 0cm"><A HREF="#1.2.New Tab Page for Page Setup|outline">New
+  Tab Page for Page Setup</A></P>
+  <P STYLE="margin-bottom: 0cm"><A HREF="#1.2.1.Grid|outline">Grid</A></P>
+  <P STYLE="margin-left: 0.5cm; margin-bottom: 0cm"><A HREF="#1.2.2.Grid Layout|outline">Grid
+  Layout</A></P>
+  <P STYLE="margin-left: 0.5cm; margin-bottom: 0cm"><A HREF="#1.2.3.Grid Display|outline">Grid
+  Display</A></P>
+  <P STYLE="margin-bottom: 0cm"><A HREF="#1.3.Special Behaviour|outline">Special
+  Behaviour</A></P>
+  <P STYLE="margin-left: 0.5cm; margin-bottom: 0cm"><A HREF="#1.3.2.User Defined Layout|outline">User
+  Defined Layout</A></P>
+  <P STYLE="margin-left: 0.5cm; margin-bottom: 0cm"><A HREF="#1.3.3.Selective Font Size Changes|outline">Selective
+  Font Size Changes</A></P>
+  <P STYLE="margin-left: 0.5cm; margin-bottom: 0cm"><A HREF="#1.3.4.Western Text|outline">Western
+  Text</A></P>
+  <P STYLE="margin-left: 0.5cm; margin-bottom: 0cm"><A HREF="#1.3.5.Alignment|outline">Alignment</A></P>
+  <P STYLE="margin-left: 0.5cm; margin-bottom: 0cm"><A HREF="#1.3.6.Columns|outline">Columns</A></P>
+  <P STYLE="margin-left: 0.5cm; margin-bottom: 0cm"><A HREF="#1.3.7.Object &ldquo;Snapping&rdquo;/Rename Tools - Options Tab Page|outline">Object
+  &ldquo;Snapping&rdquo;/Rename Tools - Options Tab Page</A></P>
+  <P STYLE="margin-left: 0.5cm; margin-bottom: 0cm"><A HREF="#1.3.8.Ruby Text|outline">Ruby
+  Text</A></P>
+  <P STYLE="margin-left: 0.5cm; margin-bottom: 0cm"><A HREF="#1.3.9.Punctuation|outline">Punctuation</A></P>
+  <P STYLE="margin-bottom: 0cm"><A HREF="#1.4.Terminology Matrix (English - German)|outline">Terminology
+  Matrix (English &ndash; German)</A></P>
+  <P STYLE="margin-bottom: 0cm"><A HREF="#1.5.MS Word Compatibility|outline">MS
+  Word Compatibility</A></P>
+</DIV>
+<P><BR><BR>
+</P>
+<H2 CLASS="western"><A NAME="1.1.Intro|outline"></A>Intro</H2>
+<P>East Asian countries, esp. Japan, are traditionally used to having
+a fixed number of characters per page. Example: 20 characters by 20
+lines on a DINA4 page.</P>
+<P>We need adequate page setup formatting to accomplish this goal.</P>
+<P>Please note: The tab page introduced below will only be
+visible/active once &ldquo;Tools - Options - Language Settings -
+Languages - Asian Language Support&rdquo; is enabled.</P>
+<H2 CLASS="western" STYLE="page-break-before: always"><A NAME="1.2.New Tab Page for Page Setup|outline"></A>
+New Tab Page for Page Setup</H2>
+<OL>
+  <LI><P>This new tab page allows one to turn on a grid and define its
+  layout.</P>
+</OL>
+<P><IMG SRC="Grid_layout_for_CJK_html_22133b8d.gif" NAME="Graphic1" ALIGN=BOTTOM WIDTH=523 HEIGHT=415 BORDER=0></P>
+<P>(Note: If &ldquo;No grid&rdquo; is selected, <B>all</B> other
+controls are inactive)</P>
+<P><A HREF="#Back to top">Back to top</A></P>
+<H3 CLASS="western"><A NAME="1.2.1.Grid|outline"></A>Grid</H3>
+<UL>
+  <LI><P>No grid: No grid is active, no changes to existing version</P>
+  <LI><P>Grid (lines only): The page is set up with a defined number
+  of lines (see also &ldquo;Lines&rdquo;) and characters are only
+  snapped to this line(s). 
+  </P>
+  <LI><P>Grid (lines and characters): The page is set up with a
+  defined number of lines and a defined number of characters in each
+  line (see also &ldquo;Lines&rdquo; and &ldquo;Characters&rdquo;).
+  Characters are always snapped to grid.</P>
+</UL>
+<P><A HREF="#Back to top">Back to top</A></P>
+<H3 CLASS="western"><A NAME="1.2.2.Grid Layout|outline"></A>Grid
+Layout</H3>
+<UL>
+  <LI><P>Lines per page: x (1-max.): Number of lines on page (only
+  active if grid is selected). The maximum of lines is calculated out
+  of set font size, set Ruby font size and grid size .<BR>Maximum for
+  this control is value based on printable paragraph area divided by 2
+  pt. sized base and Ruby text.<BR>Default value is based on printable
+  paragraph area divided by default Ruby and base text size.</P>
+</UL>
+<UL>
+  <LI><P>Characters per line: x (1-max.): Number of characters on line
+  (only active if grid is selected). The maximum of characters is
+  calculated out of set font size, and grid size.<BR>Maximum for this
+  control is value based on printable paragraph area divided by 2 pt.
+  sized base and Ruby text.<BR>Default value is based on printable
+  paragraph area divided by default Ruby and base text size.</P>
+  <LI><P>Base text size: Size of base text, changes dynamically once
+  lines per page/characters per line is changed (and vice
+  versa).<BR>Default value is based on applied style (font
+  size).<BR>Note: Any change on default value will be same as hard
+  formatting!</P>
+  <LI><P>Ruby text size: Size of Ruby text, changes dynamically once
+  lines per page/characters per line is changed (and vice
+  versa).<BR>Default value is based on applied style (font
+  size).<BR>Note: Any change on default value will be same as hard
+  formatting!</P>
+  <LI><P>Ruby text below/left from base text: If active grid line for
+  Ruby text is placed underneath (horizontal text layout)/left
+  (vertical text layout) ordinary text grid.</P>
+</UL>
+<P><A HREF="#Back to top">Back to top</A></P>
+<H3 CLASS="western"><A NAME="1.2.3.Grid Display|outline"></A>Grid
+Display</H3>
+<UL>
+  <LI><P>Display grid: Makes grid lines visible. If off, following
+  option is inactive.</P>
+  <LI><P STYLE="font-weight: medium">Print grid: The grid lines will
+  be printed. Inactive if &ldquo;Display grid&rdquo; is inactive.</P>
+  <LI><P STYLE="font-weight: medium">Grid colour: Select colour of
+  grid lines (default: Automatic, same colour as text boundaries) 
+  </P>
+</UL>
+<P><A HREF="#Back to top">Back to top</A></P>
+<H2 CLASS="western"><A NAME="1.3.Special Behaviour|outline"></A>Special
+Behaviour</H2>
+<H3 CLASS="western">Default Layout</H3>
+<P>When using default values for number of lines, characters and page
+margins the grid will basically look like this:</P>
+<P><IMG SRC="Grid_layout_for_CJK_html_4a176f2e.gif" NAME="Graphic4" ALIGN=BOTTOM WIDTH=605 HEIGHT=169 BORDER=0></P>
+<P>Please note that the grid always(!) produces square cells, never
+rectangle ones like Word!</P>
+<P><A HREF="#Back to top">Back to top</A></P>
+<H3 CLASS="western"><A NAME="1.3.2.User Defined Layout|outline"></A>User
+Defined Layout</H3>
+<P>Once the user chooses a lesser amount of lines per page and/or
+characters per line the grid layout will shrink.</P>
+<P>It will always aligned centred to its printable area.</P>
+<P>E.g. less lines but maximum of characters per line in horizontal
+mode will shrink from top and bottom alike.</P>
+<P>Example 2: Less characters per line though will have an inverse
+effect. Since all cells have to be square by definition not only
+width but also height of cells is affected. Thus less lines per page
+will be displayed.</P>
+<P>This has to be taken into account also in UI. Once the characters
+per line are decreased, automatically amount of lines per page has to
+be decreased accordingly!</P>
+<P><A HREF="#Back to top">Back to top</A></P>
+<H3 CLASS="western"><A NAME="1.3.3.Selective Font Size Changes|outline"></A>
+Selective Font Size Changes</H3>
+<P>Even if it hardly makes any sense from a layout perspective, one
+can actually mark parts of text (or single characters) to change
+their attributes, like size.</P>
+<P>Changing the fonts size to a smaller layout doesn't matter but
+sizing will!</P>
+<P>In the figure below the blue <FONT FACE="HG Mincho Light J"><SPAN LANG=""><FONT COLOR="#0000ff">&#12376;</FONT></SPAN></FONT><FONT COLOR="#0000ff">
+</FONT><FONT COLOR="#000000">was resized from 24 pt. to 60 pt.</FONT></P>
+<P><FONT COLOR="#000000"><IMG SRC="Grid_layout_for_CJK_html_m680d2ef6.gif" NAME="Graphic3" ALIGN=BOTTOM WIDTH=616 HEIGHT=169 BORDER=0></FONT></P>
+<P><FONT COLOR="#000000">A shift by x cells (depending on its new
+size) in text direction is accomplished <B>plus </B>x empty lines.
+This is necessary since the symbol is not only growing in its
+vertical (alt: horizontal) direction but also in its horizontal (alt:
+vertical).</FONT></P>
+<P><A HREF="#Back to top"><FONT COLOR="#000000">Back to top</FONT></A></P>
+<H3 CLASS="western"><A NAME="1.3.4.Western Text|outline"></A>Western
+Text</H3>
+<P>As seen in figures above, Western text will be spread over x cells
+(as many as the text will need to be displayed) and will, once a
+locale change back to Asian input happens, be aligned centred in
+cells.</P>
+<P><A HREF="#Back to top">Back to top</A></P>
+<H3 CLASS="western"><A NAME="1.3.5.Alignment|outline"></A>Alignment</H3>
+<P>Alignment must be turned off, since it does not make any sense in
+grid layout.</P>
+<P><A HREF="#Back to top">Back to top</A></P>
+<H3 CLASS="western"><A NAME="1.3.6.Columns|outline"></A>Columns</H3>
+<P>Columns are turned of once text grid is active (as vice versa).</P>
+<P><A HREF="#Back to top">Back to top</A></P>
+<H3 CLASS="western"><A NAME="1.3.7.Object &ldquo;Snapping&rdquo;/Rename Tools - Options Tab Page|outline"></A>
+Object &ldquo;Snapping&rdquo;/Rename Tools - Options Tab Page</H3>
+<P>Objects like graphics, OLE, bitmaps and the like will stay where
+they are positioned and will not &ldquo;snap&rdquo; to document grid.
+If this function is needed, one must turn on &ldquo;Tools - Options -
+Text Document - Grid&rdquo;</P>
+<P>Furthermore, we need to re-name those entries on the &ldquo;Tools
+- Options - Text Document - Grid&rdquo; tab page!</P>
+<P>Re-name matrix:</P>
+<TABLE WIDTH=100% BORDER=1 BORDERCOLOR="#ffffff" CELLPADDING=4 CELLSPACING=3>
+  <COL WIDTH=64*>
+  <COL WIDTH=64*>
+  <COL WIDTH=64*>
+  <COL WIDTH=64*>
+  <THEAD>
+    <TR VALIGN=TOP>
+      <TH WIDTH=25% BGCOLOR="#99ccff">
+        <P CLASS="western" ALIGN=LEFT STYLE="font-style: normal">Old name
+        (English)</P>
+      </TH>
+      <TH WIDTH=25% BGCOLOR="#99ccff">
+        <P CLASS="western" ALIGN=LEFT STYLE="font-style: normal">New name
+        (English)</P>
+      </TH>
+      <TH WIDTH=25% BGCOLOR="#99ccff">
+        <P CLASS="western" ALIGN=LEFT STYLE="font-style: normal">Old name
+        (German)</P>
+      </TH>
+      <TH WIDTH=25% BGCOLOR="#99ccff">
+        <P CLASS="western" ALIGN=LEFT STYLE="font-style: normal">New name
+        (German)</P>
+      </TH>
+    </TR>
+  </THEAD>
+  <TBODY>
+    <TR VALIGN=TOP>
+      <TD WIDTH=25% BGCOLOR="#e6e6e6">
+        <P>Grid</P>
+      </TD>
+      <TD WIDTH=25% BGCOLOR="#e6e6e6">
+        <P>Object Grid</P>
+      </TD>
+      <TD WIDTH=25% BGCOLOR="#e6e6e6">
+        <P>Raster</P>
+      </TD>
+      <TD WIDTH=25% BGCOLOR="#e6e6e6">
+        <P>Objekt Raster</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=25% BGCOLOR="#e6e6e6">
+        <P>Snap to grid</P>
+      </TD>
+      <TD WIDTH=25% BGCOLOR="#e6e6e6">
+        <P>Snap objects to grid</P>
+      </TD>
+      <TD WIDTH=25% BGCOLOR="#e6e6e6">
+        <P><BR>
+        </P>
+      </TD>
+      <TD WIDTH=25% BGCOLOR="#e6e6e6">
+        <P><BR>
+        </P>
+      </TD>
+    </TR>
+  </TBODY>
+</TABLE>
+<P><A HREF="#Back to top">Back to top</A></P>
+<H3 CLASS="western"><A NAME="1.3.8.Ruby Text|outline"></A>Ruby Text</H3>
+<P>If Ruby Text is applied and longer than its Base Text it will
+stretch over more grid cells than the base text itself. In this case
+empty grid cells have to be inserted until Ruby Text fits.</P>
+<P>See example figure below.</P>
+<P><IMG SRC="Grid_layout_for_CJK_html_734c5f8a.gif" NAME="Graphic5" ALIGN=BOTTOM WIDTH=605 HEIGHT=57 BORDER=0></P>
+<P>Most important:</P>
+<P>If Ruby Text is wider than its Base Text and aligned 1-2-1 or
+0-1-0 the whole construct (Base and Ruby Text) should align centred
+within the needed grid cells to avoid an uneven text flow.</P>
+<P>Furthermore it is possible to have Ruby-Text below resp. left from
+text. This will put the Ruby space below/left instead of above/right
+from the base text grid line.</P>
+<P><A HREF="#Back to top">Back to top</A></P>
+<H3 CLASS="western"><A NAME="1.3.9.Punctuation|outline"></A>Punctuation</H3>
+<P>While East Asian characters always occupy a full grid cell centred
+punctuation characters such as full stop are more likely to align
+themselves.</P>
+<P>Thus those characters that carry alignment information are to be
+handled the like, e.g. a full stop will always align to it's former
+character instead of centred alignment in grid cell.</P>
+<P><A HREF="#Back to top">Back to top</A></P>
+<H2 CLASS="western"><A NAME="1.4.Terminology Matrix (English - German)|outline"></A>
+Terminology Matrix (English - German)</H2>
+<TABLE WIDTH=100% BORDER=1 BORDERCOLOR="#ffffff" CELLPADDING=4 CELLSPACING=3>
+  <COL WIDTH=128*>
+  <COL WIDTH=128*>
+  <THEAD>
+    <TR VALIGN=TOP>
+      <TH WIDTH=50% BGCOLOR="#99ccff">
+        <P CLASS="western" ALIGN=LEFT>English Term</P>
+      </TH>
+      <TH WIDTH=50% BGCOLOR="#99ccff">
+        <P CLASS="western" ALIGN=LEFT>German Term</P>
+      </TH>
+    </TR>
+  </THEAD>
+  <TBODY>
+    <TR VALIGN=TOP>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Text Grid 
+        </P>
+      </TD>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Textraster</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Grid</P>
+      </TD>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Raster</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>No grid</P>
+      </TD>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Kein Raster</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Grid (lines only)</P>
+      </TD>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Raster (nur Linien)</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Grid (lines and characters)</P>
+      </TD>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Raster (Linien und Zeichen)</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Grid layout</P>
+      </TD>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Raster Layout</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Lines per page</P>
+      </TD>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Zeilen pro Seite</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Characters per line</P>
+      </TD>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Zeichen pro Zeile</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Base text size</P>
+      </TD>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Basistextgr&ouml;&szlig;e</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Ruby text size</P>
+      </TD>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Ruby-Textgr&ouml;&szlig;e</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Ruby text below/left from base text</P>
+      </TD>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Ruby-Text unter/links vom Basistext</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Grid display</P>
+      </TD>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Rasterdarstellung</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Display grid</P>
+      </TD>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Raster anzeigen</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Print grid</P>
+      </TD>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Raster ausdrucken</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Grid colour</P>
+      </TD>
+      <TD WIDTH=50% BGCOLOR="#e6e6e6">
+        <P>Rasterfarbe</P>
+      </TD>
+    </TR>
+  </TBODY>
+</TABLE>
+<P><A HREF="#Back to top">Back to top</A></P>
+<H2 CLASS="western"><A NAME="1.5.MS Word Compatibility|outline"></A>MS
+Word Compatibility</H2>
+<P>Since MS word has a different layout approach for text grids a
+100% im/export filter capability is not a&#61673;chievable. We will
+try to depict as many features/formatting as possible and do a
+transition into StarOffice/StarSuite Writer design.</P>
+<P>It was decided to implement a rather useful and comprehensive grid
+layout into Writer than to copycat Microsoft Word for the sake of
+compatibility!</P>
+<P><A HREF="#Back to top">Back to top</A></P>
+</BODY>
+</HTML>
\ No newline at end of file

Propchange: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/Grid_layout_for_CJK.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/Grid_layout_for_CJK_html_22133b8d.gif
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/Grid_layout_for_CJK_html_22133b8d.gif?rev=1220945&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/Grid_layout_for_CJK_html_22133b8d.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Added: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/Grid_layout_for_CJK_html_4a176f2e.gif
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/Grid_layout_for_CJK_html_4a176f2e.gif?rev=1220945&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/Grid_layout_for_CJK_html_4a176f2e.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Added: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/Grid_layout_for_CJK_html_734c5f8a.gif
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/Grid_layout_for_CJK_html_734c5f8a.gif?rev=1220945&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/Grid_layout_for_CJK_html_734c5f8a.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Added: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/Grid_layout_for_CJK_html_m680d2ef6.gif
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/Grid_layout_for_CJK_html_m680d2ef6.gif?rev=1220945&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/Grid_layout_for_CJK_html_m680d2ef6.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Added: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/HowToAddEncoding.html
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/HowToAddEncoding.html?rev=1220945&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/HowToAddEncoding.html (added)
+++ incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/HowToAddEncoding.html Mon Dec 19 21:10:12 2011
@@ -0,0 +1,78 @@
+<h3>Adding new text encoding to OpenOffice.org</h3>
+
+<p>
+  Adding a new text encoding involves a number of modifications, mostly in the <a
+  href="http://porting.openoffice.org/source/browse/porting/sal/textenc/">sal/textenc</a> source
+  directory (see below).  The main benefits of adding a text encoding typically are that you can add
+  it to the drop-down list boxes where you choose a character encoding (e.g., for the "Text Encoded"
+  filter for importing/exporting plain text files, or in the
+  "<b>Tools</b> - <b>Options...</b> - <b>Load/Save</b> - <b>HTML Compatibility</b>" dialog).
+</p>
+
+<p>
+  The necessary steps include:
+
+  <ol>
+    <li>
+Add a new <code>RTL_TEXTENCODING_</code> to <a
+href="http://porting.openoffice.org/source/browse/porting/sal/inc/rtl/textenc.h">sal/inc/rtl/textenc.h</a>,
+and update <code>rtl_isOctetEncoding</code> in <a
+href="http://porting.openoffice.org/source/browse/porting/sal/textenc/tencinfo.c">sal/textenc/tencinfo.c</a>.
+    </li>
+
+
+    <li>
+In <a
+href="http://porting.openoffice.org/source/browse/porting/sal/textenc/">sal/textenc</a>,
+create a <code>static ImplTextEncodingData</code> instance for the new
+encoding.  If it is a single-byte encoding based on ASCII, you can easily
+reuse the <code>ImplTextConverter</code> framework that is already in
+place. You also have to specify corresponding Windows/Unix/MIME character
+sets, if such exist.  If your text encoding is single-byte, your
+<code>ImplTextEncodingData</code> instance would probably best fit into one of the
+already existing tcvt<var>XXX</var>1.tab source files (e.g., if your
+encoding is for Tibetan, it would fit into <a
+href="http://porting.openoffice.org/source/browse/porting/sal/textenc/tcvteas1.tab">tcvteas1.tab</a>).
+Do not forget to add a pointer to your <code>ImplTextEncodingData</code>
+structure to the <code>aData</code> array in <a
+    href="http://porting.openoffice.org/source/browse/porting/sal/textenc/textenc.cxx">textenc.cxx</a>
+<code>Impl_getTextEncodingData()</code>. Note that for older versions (OOo1.x
+SRX645 branch and up to SRC680_m44) this was <a
+    href="http://porting.openoffice.org/source/browse/porting/sal/textenc/textenc.c">textenc.c</a>
+    </li>
+
+    <li>
+      You should add tests of your new encoding to <a
+      href="http://porting.openoffice.org/source/browse/porting/sal/test/testtextenc.cxx">sal/test/texttestenc.cxx</a>.
+    </li>
+
+    <li>
+      To make the new encoding appear in the drop-down list boxes mentioned above, you have:
+      <ol>
+  <li>open an issue for <code>Liz@openoffice.org</code>, write the path of where the
+    string is going to go (for example, "<b>Tools</b> - <b>Options...</b> - <b>Load/Save</b> -
+    <b>HTML Compatibility</b>" dialog) and suggest the new string you want added (in English)
+    and wait for approval for the string as well as the German equivalent from Liz. (If you
+    can suggest the string in German as well that would be helpful.</li>
+  <li>
+    add both the English and German strings to the resources in <a
+href="http://graphics.openoffice.org/source/browse/graphics/svx/source/dialog/txenctab.src">svx/source/dialog/txenctab.src</a> file manually; that means directly into the source code.
+  </li>
+      </ol>
+    </li>
+  </ol>
+</p>
+
+<p>
+
+That said, <em>adding any new text encodings also adds complexity</em> to OpenOffice.org (mostly
+source and code size in this case), so it should be done only if really necessary (e.g., if there is
+demand to import/export plain text files encoded in a special encoding; <em>adding a new text
+encoding would generally not be necessary to just make sure that OpenOffice.org can be localized to
+some language, or that texts in that language can be written in OpenOffice.org</em>).
+</p>
+
+<p>
+  If you have any further questions, just ask on our <a
+  href="http://l10n.openoffice.org/servlets/SummarizeList?listName=dev">list</a>.
+</p>

Propchange: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/HowToAddEncoding.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/HowToAddLocaleInI18n.html
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/HowToAddLocaleInI18n.html?rev=1220945&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/HowToAddLocaleInI18n.html (added)
+++ incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/HowToAddLocaleInI18n.html Mon Dec 19 21:10:12 2011
@@ -0,0 +1,594 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+  <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
+  <TITLE></TITLE>
+  <META NAME="GENERATOR" CONTENT="OpenOffice.org 1.9.55  (Linux)">
+  <META NAME="CREATED" CONTENT="20020214;18353600">
+  <META NAME="CHANGEDBY" CONTENT="Eike Rathke">
+  <META NAME="CHANGED" CONTENT="20041004;14060600">
+  <STYLE>
+  <!--
+    @page { size: 21cm 29.7cm; margin: 2cm }
+    TD P { margin-bottom: 0.2cm }
+    TH P { margin-bottom: 0.2cm; font-style: italic }
+  -->
+  </STYLE>
+</HEAD>
+<BODY LANG="en-US" DIR="LTR">
+<H2>How to add a new locale to the i18n framework</H2>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<H2>Overview</H2>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>The
+i18n framework offers full-featured i18n functionality that covers a range of
+geographies that, besides West and East European derivates, includes East Asia
+(CJK), South Asia and South-East Asia (Indian, Thai) and West Asia and Middle
+East (Arabic, Hebrew), so-called CTL (Complex Text Layout) and BiDi
+(bidirectional) script types. Also, the i18n framework is built over the
+component model UNO thus making the addition of new i18n components
+easy.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>The
+following language and locale specific attributes are supported :</FONT></P>
+<TABLE WIDTH=100% BORDER=1 BORDERCOLOR="#000000" CELLPADDING=5 CELLSPACING=0>
+  <COL WIDTH=85*>
+  <COL WIDTH=85*>
+  <COL WIDTH=85*>
+  <THEAD>
+    <TR VALIGN=TOP>
+      <TH WIDTH=33%>
+        <P>i18n Attribute Name</P>
+      </TH>
+      <TH WIDTH=33%>
+        <P>Feature/Consumer</P>
+      </TH>
+      <TH WIDTH=33%>
+        <P>Location in Source</P>
+      </TH>
+    </TR>
+  </THEAD>
+  <TBODY>
+    <TR VALIGN=TOP>
+      <TD WIDTH=33%>
+        <P>Locale Data</P>
+      </TD>
+      <TD WIDTH=33%>
+        <P>Provide all locale sensitive data, like
+        date/time/number/currency format, calendar information etc.</P>
+      </TD>
+      <TD WIDTH=33%>
+        <P>i18npool/source/localedata/data</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=33%>
+        <P>Character Classification</P>
+      </TD>
+      <TD WIDTH=33%>
+        <P>Provide API to implement features such as switching case,
+        capitalization, punctuation and so on.</P>
+      </TD>
+      <TD WIDTH=33%>
+        <P>i18npool/source/characterclassification</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=33%>
+        <P>Calendar</P>
+      </TD>
+      <TD WIDTH=33%>
+        <P STYLE="font-weight: medium"><FONT SIZE=3>Provide the ability
+        to support a variety of calendaring systems</FONT></P>
+      </TD>
+      <TD WIDTH=33%>
+        <P>i18npool/source/calendar</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=33%>
+        <P>Break Iterator</P>
+      </TD>
+      <TD WIDTH=33%>
+        <P STYLE="font-weight: medium"><FONT SIZE=3>Provide
+        language/script specific Cursor placement, Word, Line, and
+        Sentence breaking</FONT></P>
+      </TD>
+      <TD WIDTH=33%>
+        <P>i18npool/source/breakiterator</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=33%>
+        <P>Collator</P>
+      </TD>
+      <TD WIDTH=33%>
+        <P STYLE="font-weight: medium"><FONT SIZE=3>Provide the ability
+        to perform sorting and indexing according to local conventions</FONT></P>
+      </TD>
+      <TD WIDTH=33%>
+        <P>i18npool/source/collator</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=33%>
+        <P>Transliteration</P>
+      </TD>
+      <TD WIDTH=33%>
+        <P>Numerous applications including in Searching, Input, with more
+        applications for Indian languages</P>
+      </TD>
+      <TD WIDTH=33%>
+        <P>i18npool/source/transliteration</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=33%>
+        <P>Index entry</P>
+      </TD>
+      <TD WIDTH=33%>
+        <P STYLE="font-weight: medium"><FONT SIZE=3>Support indexing
+        feature</FONT></P>
+      </TD>
+      <TD WIDTH=33%>
+        <P>i18npool/source/indexentry</P>
+      </TD>
+    </TR>
+    <TR VALIGN=TOP>
+      <TD WIDTH=33%>
+        <P>Search &amp; Replace</P>
+      </TD>
+      <TD WIDTH=33%>
+        <P STYLE="font-weight: medium"><FONT SIZE=3>Support the
+        Find/Change feature</FONT></P>
+      </TD>
+      <TD WIDTH=33%>
+        <P>i18npool/source/search</P>
+      </TD>
+    </TR>
+  </TBODY>
+</TABLE>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<H2>Locale Data</H2>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm">For most locales this is the
+only thing you need to implement. Follow the instructions lined out
+in the <A HREF="LocaleData.html">excerpt from the Developers Guide
+I18n chapter</A>.</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>For
+the following topics it might be necessary to implement them,
+depending on the locale. Please refer also to the Developers Guide,
+as information given there might be more up-to-date, and this hasn't
+been synchronized yet.</FONT></P>
+<H2>CharacterClassification</H2>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>The
+component provides toUpper()/toLower()/toTitle() and get various
+character attribute defined by Unicode. These functions are
+implemented by cclass_unicode class, if you need language specific
+requirements for these functions, you can derive a language specific
+class cclass_&lt;locale_name&gt; from cclass_unicode and overwrite
+the methods for the functions. In most cases, these attributes are
+well defined by Unicode, you don't need to create your own class.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>The
+class also provides a number parser, i.e., if a particular language
+needs number parsing, you will need to derive a class and overwrite
+the method cclass_unicode::parsePredefinedToken(). Typical examples
+of where number parsing is needed is to accept date, calendaring
+information.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>A
+manager class 'CharacterClassificationImpl' will handle the loading
+of language specific implementation of CharacterClassification on the
+fly. If no implementation is provided the implementation defaults to
+class 'cclass_unicode'.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<H2>Calendar</H2>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>The
+component provides a calendar service. All calendar implementations
+are managed by a class 'CalendarImpl' the front-end, which
+dynamically calls a locale specific implementation.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Calendar_gregorian
+is a wrapper to the ICU Calendar class. </FONT>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>If
+you need to implement a localespecific calendar, you can choose to
+either derive your class from Calendar_gregorian or write one from
+scratch.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>There
+are three steps to create a localespecific calendar,</FONT></P>
+<OL>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Name
+  your calendar &lt;name&gt; (for example, 'gengou' for Japanese
+  Calendar) and add it to localedata XML file with proper
+  day/month/era names.</FONT></P>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Derive
+  a class either from Calendar_gregorian or XCalendar, name it as
+  Calendar_&lt;name&gt;, which will be loaded by CalendarImpl when the
+  calendar is specified.</FONT></P>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Add
+  your new calendar as a service in
+  i18npool/source/registerservices/registerservices.cxx, </FONT>
+  </P>
+</OL>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>If
+you plan to derive from the Gregorian calendar, you need to know the
+mapping between your new calendar and the Gregorian calendar. For
+example, the Japanese Emperor Era calendar has a starting year offset
+to Gregorian calendar for each era. You will need to override the
+method Calendar_gregorian::convertValue to map the Era/Year/Month/Day
+from the Gregorian calendar to the calendar for your language.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<H2>BreakIterator</H2>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>This
+component provides Character(Cell)/Word/Sentence/Line-break service
+to its users, e.g. BreakIterator component provides the APIs to
+iterate a string by character, word, line and sentence. Interface of
+this component is used by the Output layer for the following
+operations:</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<UL>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Cursor
+  positioning and selection &mdash; Since a character or cell can take
+  more than one code point, cursor movement cannot be done by
+  incrementing or decrementing the index.</FONT></P>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Complex
+  Text Layout Languages &mdash; In CTL languages (such as Thai,
+  Hebrew, Arabic and Indian), multiple characters may combine to form
+  a display cell. Cursor movement must traverse a display cell instead
+  of a single character.</FONT></P>
+</UL>
+<P>Line breaking must be highly configurable in desktop publishing
+applications. The line breaking algorithm should be able to find a
+line break with or without a hyphenator. Additionally, it should be
+able to parse special characters that are illegal if they occur at
+the end or beginning of a line. 
+</P>
+<P ALIGN=LEFT STYLE="font-weight: medium"><FONT SIZE=3>Both the above
+are locale-sensitive.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>The
+BreakIterator components are managed by the class BreakIteratorImpl,
+which will load the language specific component in service name
+BreakIterator_&lt;language&gt; dynamically.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>The
+base breakiterator class 'BreakIterator_Unicode' is a wrapper to the
+ICU BreakIterator class. While this class meets the requirements for
+western languages, it is not so for other languages such as those of
+East Asia (CJK), South Asia and South-East Asia (Indian, Thai) and
+West Asia and Middle East (Arabic, Hebrew), where we require more
+enhanced functionality as described above</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Thus
+the current BreakIterator base class has two derived classes,
+BreakIterator_CJK and from BreakIterator_Unicode, first one will
+provide dictionary base word break for Chinese and Japanese, second
+will provide more specific definition for Character/Cell/Cluster for
+the language like Thai, Arabic.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Use
+the following steps to create language specific BreakIterator
+service,</FONT></P>
+<OL>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Derive
+  a class either from BreakIterator_CJK or BreakIterator_CTL, name it
+  as BreakIterator_&lt;language&gt;.</FONT></P>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Add
+  new service in registerservices.cxx.</FONT></P>
+</OL>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>There
+are 3 methods for word breaking,
+nextWord()/previousWord/getWrodBoundary(). You can overwrite them by
+your own language rules.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>BreakIterator_CJK
+provides input string caching and dictionary searching for longest
+matching. You may provide a sorted dictionary (the encoding needs to
+be UTF-8) by creating the following file:
+i18npool/source/breakiterator/data/dict_&lt;language&gt;.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>The
+utility 'gendict' will convert it to C code which will be compiled
+into a shared library for dynamical loading. </FONT>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>All
+dictionary searching/loading is performed in xdictionary class, only
+thing you need to do is to derived your class from BreakIterator_CJK
+and create an instance of the xdictionary with language name and pass
+it to parent class. </FONT>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<H2>Collation</H2>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>There
+are two type of collations, single or multiple level collation.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Most
+European and English locales need multiple level collation. We use
+the ICU collator to cover this need.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Most
+CJK languages need only single level collation. We have created a two
+step table lookup to do the collation for the languages. If you have
+a new language or algorithm in this category, you can derive a new
+service from Collator_CJK and provide index and weight tables. Here
+is a sample implementation,</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>************************************************************************/</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>#include
+&lt;collator_CJK.hxx&gt;</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>static
+sal_uInt16 index[] = {</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>...</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>};</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>static
+sal_uInt16 weight[] = {</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>...</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>};</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>sal_Int32
+SAL_CALL Collator_zh_CN_pinyin::compareSubstring (</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>const
+::rtl::OUString&amp; str1, sal_Int32 off1, sal_Int32 len1,</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>const
+::rtl::OUString&amp; str2, sal_Int32 off2, sal_Int32 len2)</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>throw
+(::com::sun::star::uno::RuntimeException) {</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>return
+compare(str1, off1, len1, str2, off2, len2, index, weight);</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>}</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>sal_Int32
+SAL_CALL Collator_zh_CN_pinyin::compareString (</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>const
+::rtl::OUString&amp; str1,</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>const
+::rtl::OUString&amp; str2)</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>throw
+(::com::sun::star::uno::RuntimeException) {</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>return
+compare(str1, 0, str1.getLength(), str2, 0, str2.getLength(), index,
+weight);</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>}</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Fontend
+implementation Collator will load and cache language specific service
+on the name Collator_&lt;locale&gt; dynamically.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>The
+step to add new services</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<OL>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Derive
+  new service from above class</FONT></P>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Provide
+  idx and weight tables.</FONT></P>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Register
+  new service in registerservices.cxx</FONT></P>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Add
+  new service in collation section in localedata file.</FONT></P>
+</OL>
+<P><BR><BR>
+</P>
+<H2><FONT SIZE=4 STYLE="font-size: 16pt"><B>Transliteration</B></FONT></H2>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Translation
+is the service for string conversion. Frontend implementation
+TranliterationImpl will load and cache specific transliteration
+services by enum defined in Xtransliteration.idl or by implementation
+name dynamically.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>We
+have defined transliteration in three categories, Ignore, OneToOne
+and Numeric, all of them are derived from
+transliteration_commonclass.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Ignore
+service is for ignore case, half/full width, katakana/hiragana etc.
+You can derive your new service from it and overwrite
+folding/transliteration methods.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>OneToOne
+service is for one to one mapping. For example, converting lower case
+to upper case etc. The class provide two more services, take mapping
+table or mapping function to do folding/transliteration. You can
+derive a class from it and provide a table or function for the parent
+class to do translation.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Numeric
+service is used to convert number to number string in specific
+languages. It can be used to format date strings etc.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>To
+add new transliteration</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<OL>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Derive
+  a new class from above three classes.</FONT></P>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Overwrite
+  folding/transliteration methods or provide table for parent to do
+  transliteration.</FONT></P>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Register
+  new service in registerservices.cxx</FONT></P>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Add
+  new service in transliteration section in localedata file.</FONT></P>
+</OL>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<H2>Indexing</H2>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Indexing
+provides a service for generating index pages. The main method for
+the service is getIndexCharacter(). Frontend implementation
+IndexEntrySupplier will load and cache language specific services
+based on the name IndexEntrySupplier_&lt;locale&gt; dynamically.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>We
+have devided languages into two sets. </FONT>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>First
+is Latin1 languages, which can be covered by 256 Unicode code points.
+We use a one step table lookup to generate the index character. We
+have generated alphabetic and numeric tables that cover most Latin1
+languages. But if you think you need another algorithm or have
+conflicts with the table, you can create your own table and derive a
+new class from IndexEntrySupplier_Euro. Here is a sample
+implementation,</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>#include
+&lt;sal/types.h&gt;</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>#include
+&lt;indexentrysupplier_euro.hxx&gt;</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>#include
+&lt;indexdata_alphanumeric.h&gt;</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>OUString
+SAL_CALL i18n::IndexEntrySupplier_alphanumeric::getIndexCharacter(
+const OUString&amp; rIndexEntry,</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>const
+lang::Locale&amp; rLocale, const OUString&amp; rSortAlgorithm ) throw
+(uno::RuntimeException) {</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>return
+getIndexString(rIndexEntry, idxStr);</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>}</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>where
+idxStr is the table.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>For
+the languages which could not be covered in first case, like CJK, we
+use two step table lookup. Here is a sample implementation,</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>#include
+&lt;indexentrysupplier_cjk.hxx&gt;</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>#include
+&lt;indexdata_zh_pinyin.h&gt;</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>OUString
+SAL_CALL i18n::IndexEntrySupplier_zh_pinyin::getIndexCharacter( const
+OUString&amp; rIndexEntry,</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>const
+lang::Locale&amp; rLocale, const OUString&amp; rSortAlgorithm ) throw
+(uno::RuntimeException) {</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>return
+getIndexString(rIndexEntry, idxStr, idx1, idx2);</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>}</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Where
+idx1 and idx2 are two step tables. IdxStr contains all index keys
+that will be returned. If you have a new language or algorithm, you
+can derive new service from IndexEntrySupplier_CJK and provide tables
+for parent class to generate index.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Note,
+the index does very much depend on collation, each index algorithm
+should have a collation algorithm to support it.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>To
+add new service,</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<OL>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Derive
+  a new service from above class.</FONT></P>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Provide
+  table for lookup</FONT></P>
+  <LI><P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Register
+  new service in registerservices.cxx</FONT></P>
+</OL>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<H2>Search and Replace</H2>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Search
+and replace is also locale dependent because there are special search
+options only available for a particular locale. For instance if the
+&ldquo;Asian languages support&rdquo; is enabled, you'll see an
+additional option for &ldquo;Sounds like (Japanese)&rdquo; in the
+&ldquo;Find &amp; Replace&rdquo; dialog box. With this option, you
+can turn on/off certain Japanese specific option in the search and
+replace process.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Search
+and replace relies on the transliteration modules for various search
+options. The transliteration modules will be loaded and the search
+string will be converted before the search process.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: medium"><FONT SIZE=3>Search
+supports regular expressions, the regular expression implementation
+uses the transliteration service available for the locale to perform
+case insensitive search.</FONT></P>
+<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
+</P>
+</BODY>
+</HTML>

Propchange: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/HowToAddLocaleInI18n.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/IUC19_I18n_Framework.pdf
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/IUC19_I18n_Framework.pdf?rev=1220945&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/l10n/i18n_framework/IUC19_I18n_Framework.pdf
------------------------------------------------------------------------------
    svn:mime-type = application/pdf