source: enpraxis.educommons/trunk/enpraxis/educommons/docs/LOCALIZATION.html @ 566

Revision 566, 11.0 KB checked in by tom, 4 years ago (diff)

updating documentation and educommons.com links

Line 
1<?xml version="1.0" encoding="utf-8" ?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
7<title></title>
8<link rel="stylesheet" href="./default.css" type="text/css" />
9</head>
10<body>
11<div class="document">
12
13
14<div class="section" id="linguaplone-translation-instructions">
15<h1>LinguaPlone Translation Instructions</h1>
16<p>In the context of Department, Course, and ECObjects, translations must occur in a 'top down'
17manner.  A Department must be translated prior to translating a Course, which must be
18translated prior to any objects in the Course being translated.</p>
19<p>By default, LinguaPlone will tag newly created content objects in the default language setting
20for the instance. Objects that exist in the ZODB prior to LinguaPlone being installed will be
21'neutral', in terms of their language setting. In order to maintain the correct relationships
22between languages, existing objects must have their language 'set'.</p>
23<p>To set an existing object's language, click translate into on the management toolbar, and then
24click manage translations.... This interface will allow you to change the content language
25setting from neutral to the appropriate setting for your instance.</p>
26</div>
27<div class="section" id="localization-with-educommons-3-2-1-rc2">
28<h1>Localization with eduCommons 3.2.1-rc2</h1>
29<div class="section" id="overview">
30<h2>Overview</h2>
31<p>If you want to translate eduCommons into your language, here are instructions on how to get
32started, as well as some guidelines that you should follow when performing a translation. You do
33not need to know anything about programming to create an eduCommons translation. This
34has been adapted for eduCommons from the <a class="reference external" href="http://plone.org/development/teams/i18n/translators-guidelines">plone translator guidelines</a>. Please see our <a class="reference external" href="./educommons-localization-team">eduCommons
35Localization Team page</a> for a list of our volunteer translators.</p>
36</div>
37<div class="section" id="introduction">
38<h2>Introduction</h2>
39<p>Since eduCommons is customized from Plone, it has built-in support for internationalization. As of
40June 2006 Plone has 56 different translations. eduCommons requires some additional
41translation work, but follows the same process as Plone. Adding an eduCommons translation is much
42less time consuming because most of the translation work has already been done in Plone.</p>
43<p>There are about 470 strings needed for a translation of eduCommons (compared to about 1600 strings
44for a Plone translation). Some of these are sentences or paragraphs, but the major part are one or
45two words. These strings are scattered around in Plone, for example in page templates. Other items
46to translate are widget labels, and workflow states. All those strings are collected in master
47files. These are called .pot files. Each language requires its own .po files that
48corresponds to the strings or message ids declared in the .pot files. The .pot is the blueprint for
49the .po files.</p>
50</div>
51<div class="section" id="tools">
52<h2>Tools</h2>
53<p>When creating the .po files, we strongly recommend using a specialized tool called poEdit
54(<a class="reference external" href="http://www.poedit.net">http://www.poedit.net</a>). This makes the translation process very easy. But a normal
55text editor work fine if you prefer that (both vim and emacs are great for this, and have special
56modes for PO files). poEdit exists for both Linux and Windows, and Mac OS X.</p>
57<p>If you use a plain text editor instead of a dedicated tool, you should make sure you use utf-8
58as your charset, even if your country usually uses iso-8859-* or similar. The reason for this is
59that Plone uses a few characters (like the ellipsis) that don't have representations in other
60charsets.</p>
61</div>
62<div class="section" id="step-by-step-guide">
63<h2>Step-by-step guide</h2>
64<blockquote>
65<p>1. Check if somebody is working on your language already. Even if they do, contact them and
66offer to help with testing. There's no way the eduCommons team can know what is a high-quality
67translation in a language they don't know, so your input is very valuable to us. We want
68good translations, not just a translation. So if you think something is badly done, tell us.
69Give polite feedback if something feels wrong with the translation to your language. A
70translation can always be made better.</p>
71<p>2. Be sure that you have used eduCommons enough to grasp the general concepts and how they
72interact. eduCommons is an advanced system, so be sure you know enough before you start
73translating key concepts like workflow. Check the language specific terms for your language,
74or create one if it doesn't exist. This will help you keep consistent translations for your
75language.</p>
76<p>3. Download the files to base your translation on. We recommend that you always use the
77English language files as your starting point, both because they are always the most current
78ones (other translations will usually lag a bit behind), and because you should try to match
79the original text. Translating between similar languages may be tempting (like Danish and
80Norwegian), but will usually result in a lower quality translation. Of course, if the only
81language you understand is Italian, and you want to provide a Chinese translation, we prefer
82this translation compared to not getting one at all :)</p>
83<p>4. Each product in eduCommons has .po files located in the locales directory. We have combined
84all these files in a single location of ease of translation. It can be accessed here:
85<a class="reference external" href="http://educommons.com/localization/localization-files.zip">http://educommons.com/localization/localization-files.zip</a>
86If you wish to translate a language for which we do not currently have translation files,
87please contact us at info [at] educommons [dot] com.</p>
88<p>5. Open poEdit or your editor of choice and load the first of the master files. In poEdit
89select File --&gt; Open (for existing .po translation files) or File --&gt; New catalog from POT file.
90(to create a new translation from a .pot file). Be sure to set the language and language code in
91Catalog --&gt; Settings. With poEdit or other editors you will need to save your new translation files
92as &lt;product&gt;-&lt;language-code&gt;.po (e.g. for a French translation: plone-fr.po, eduCommons-fr.po, etc).
93Have a look at <a class="reference external" href="http://www.i18nguy.com">http://www.i18nguy.com</a> for the correct language code.</p>
94<p>6. In poEdit, the first line shows the exact string that you have to translate. Your translation is
95entered in the area below the original string. It's easy. This is why we recommend poEdit.</p>
96<ol class="arabic simple" start="7">
97<li>In other text editors things will look a little different. An example section can look like this:</li>
98</ol>
99<blockquote>
100<div class="line-block">
101<div class="line">#. Default: &quot;Export&quot;</div>
102<div class="line">#: ../skins/eduCommons/Export_form.cpt</div>
103<div class="line">msgid &quot;Export&quot;</div>
104<div class="line">msgstr &quot;&quot;</div>
105<div class="line"><br /></div>
106</div>
107<p>The first line (marked with Default) shows the exact string that you have to translate.
108Message attributes in the form ${foo} have to be included in the translated string exactly
109as they are. These are variables that will be filled in the rendering process. Do not touch
110this.</p>
111<p>The next lines (marked with :) list which templates inside eduCommons use this string. There
112might be several templates re-using the same string, but it is normally in the same context.
113Do not touch this.</p>
114<p>The next to last line (starting with msgid) holds the unique identifier for the string. Do
115not touch this.</p>
116<p>Finally, the last line is where your job starts. Enter the text in your language, be careful
117to keep the same casing (where appropriate, some languages have different rules that should
118be applied).</p>
119</blockquote>
120<p>8. If there is programming code in a string, only translate the string, not the code. For example in,
121Default: &quot;${number} items matching your criteria.&quot; you would only translate &quot;items matching your
122criteria.&quot; The code in the first part should be left as it is, so the translation will look like this:
123${number} TRANSLATION.</p>
124<p>9. Keep translating (but take breaks, this isn't done in one sitting - it's repetitive (but
125rewarding) work. After you have translated all of plone.pot, you should start on eduCommons.pot.
126Don't worry, you have already completed the biggest part.</p>
127<p>10. If you can, test your files. Get other people from your own country to test. This means having other
128people check your file and putting your file in an eduCommons test instance, browsing it in
129your language.</p>
130<p>11. If you are unsure about the best translation of a message, you can set it to fuzzy, so
131others can look at these. Setting a message to fuzzy means adding a &quot;#, fuzzy&quot;-line directly
132above the line starting with msgid (poEdit has a button for this).</p>
133<p>12. Since some of the translation files are hosted on the Plone Collective, if you know how SVN
134works, you can get an account with Plone (Here's how to request write access to the Collective.)
135and maintain the files in SVN yourself (see next section). If not, no problem, just e-mail your
136translation to us at info [at] educommons [dot] com, and we will add it for you and put it into the
137eduCommons distribution in the next release. We will also add you to our our <a href="#id1"><span class="problematic" id="id2">`</span></a>eduCommons
138Localization Team page, here: <a class="reference external" href="http://educommons.com/documentation/how-to/educommons-localization-team">http://educommons.com/documentation/how-to/educommons-localization-team</a></p>
139<div class="system-message" id="id1">
140<p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">../LOCALIZATION.txt</tt>, line 142); <em><a href="#id2">backlink</a></em></p>
141Inline interpreted text or phrase reference start-string without end-string.</div>
142<p>13. Please check on your translations periodically to keep them updated as new versions are
143released. A quick search for &quot;&quot; will reveal any new or missing stings that need to be translated.</p>
144<p>14. If you have other questions or about contributing a translation to eduCommons please contact
145us at info [at] educommons [dot] com. Thank you for you help!</p>
146</blockquote>
147</div>
148</div>
149</div>
150<div class="footer">
151<hr class="footer" />
152<a class="reference external" href="LOCALIZATION.txt">View document source</a>.
153Generated on: 2009-08-09 07:41 UTC.
154Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
155
156</div>
157</body>
158</html>
Note: See TracBrowser for help on using the repository browser.