| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>Adding new text encoding to OpenOffice.org</title> |
| </head> |
| <body> |
| |
| <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://mail-archives.apache.org/mod_mbox/incubator-ooo-l10n/">list</a>. |
| </p> |
| |
| </body> |
| </html> |