| 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' |
|---|
| 17 | manner. A Department must be translated prior to translating a Course, which must be |
|---|
| 18 | translated 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 |
|---|
| 20 | for 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 |
|---|
| 22 | between 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 |
|---|
| 24 | click manage translations.... This interface will allow you to change the content language |
|---|
| 25 | setting 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 |
|---|
| 32 | started, as well as some guidelines that you should follow when performing a translation. You do |
|---|
| 33 | not need to know anything about programming to create an eduCommons translation. This |
|---|
| 34 | has 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 |
|---|
| 35 | Localization 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 |
|---|
| 40 | June 2006 Plone has 56 different translations. eduCommons requires some additional |
|---|
| 41 | translation work, but follows the same process as Plone. Adding an eduCommons translation is much |
|---|
| 42 | less 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 |
|---|
| 44 | for a Plone translation). Some of these are sentences or paragraphs, but the major part are one or |
|---|
| 45 | two words. These strings are scattered around in Plone, for example in page templates. Other items |
|---|
| 46 | to translate are widget labels, and workflow states. All those strings are collected in master |
|---|
| 47 | files. These are called .pot files. Each language requires its own .po files that |
|---|
| 48 | corresponds to the strings or message ids declared in the .pot files. The .pot is the blueprint for |
|---|
| 49 | the .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 |
|---|
| 55 | text editor work fine if you prefer that (both vim and emacs are great for this, and have special |
|---|
| 56 | modes 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 |
|---|
| 58 | as your charset, even if your country usually uses iso-8859-* or similar. The reason for this is |
|---|
| 59 | that Plone uses a few characters (like the ellipsis) that don't have representations in other |
|---|
| 60 | charsets.</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 |
|---|
| 66 | offer to help with testing. There's no way the eduCommons team can know what is a high-quality |
|---|
| 67 | translation in a language they don't know, so your input is very valuable to us. We want |
|---|
| 68 | good translations, not just a translation. So if you think something is badly done, tell us. |
|---|
| 69 | Give polite feedback if something feels wrong with the translation to your language. A |
|---|
| 70 | translation 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 |
|---|
| 72 | interact. eduCommons is an advanced system, so be sure you know enough before you start |
|---|
| 73 | translating key concepts like workflow. Check the language specific terms for your language, |
|---|
| 74 | or create one if it doesn't exist. This will help you keep consistent translations for your |
|---|
| 75 | language.</p> |
|---|
| 76 | <p>3. Download the files to base your translation on. We recommend that you always use the |
|---|
| 77 | English language files as your starting point, both because they are always the most current |
|---|
| 78 | ones (other translations will usually lag a bit behind), and because you should try to match |
|---|
| 79 | the original text. Translating between similar languages may be tempting (like Danish and |
|---|
| 80 | Norwegian), but will usually result in a lower quality translation. Of course, if the only |
|---|
| 81 | language you understand is Italian, and you want to provide a Chinese translation, we prefer |
|---|
| 82 | this 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 |
|---|
| 84 | all 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> |
|---|
| 86 | If you wish to translate a language for which we do not currently have translation files, |
|---|
| 87 | please 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 |
|---|
| 89 | select File --> Open (for existing .po translation files) or File --> 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 |
|---|
| 91 | Catalog --> Settings. With poEdit or other editors you will need to save your new translation files |
|---|
| 92 | as <product>-<language-code>.po (e.g. for a French translation: plone-fr.po, eduCommons-fr.po, etc). |
|---|
| 93 | Have 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 |
|---|
| 95 | entered 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: "Export"</div> |
|---|
| 102 | <div class="line">#: ../skins/eduCommons/Export_form.cpt</div> |
|---|
| 103 | <div class="line">msgid "Export"</div> |
|---|
| 104 | <div class="line">msgstr ""</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. |
|---|
| 108 | Message attributes in the form ${foo} have to be included in the translated string exactly |
|---|
| 109 | as they are. These are variables that will be filled in the rendering process. Do not touch |
|---|
| 110 | this.</p> |
|---|
| 111 | <p>The next lines (marked with :) list which templates inside eduCommons use this string. There |
|---|
| 112 | might be several templates re-using the same string, but it is normally in the same context. |
|---|
| 113 | Do not touch this.</p> |
|---|
| 114 | <p>The next to last line (starting with msgid) holds the unique identifier for the string. Do |
|---|
| 115 | not touch this.</p> |
|---|
| 116 | <p>Finally, the last line is where your job starts. Enter the text in your language, be careful |
|---|
| 117 | to keep the same casing (where appropriate, some languages have different rules that should |
|---|
| 118 | be 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, |
|---|
| 121 | Default: "${number} items matching your criteria." you would only translate "items matching your |
|---|
| 122 | criteria." 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 |
|---|
| 125 | rewarding) work. After you have translated all of plone.pot, you should start on eduCommons.pot. |
|---|
| 126 | Don'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 |
|---|
| 128 | people check your file and putting your file in an eduCommons test instance, browsing it in |
|---|
| 129 | your language.</p> |
|---|
| 130 | <p>11. If you are unsure about the best translation of a message, you can set it to fuzzy, so |
|---|
| 131 | others can look at these. Setting a message to fuzzy means adding a "#, fuzzy"-line directly |
|---|
| 132 | above 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 |
|---|
| 134 | works, you can get an account with Plone (Here's how to request write access to the Collective.) |
|---|
| 135 | and maintain the files in SVN yourself (see next section). If not, no problem, just e-mail your |
|---|
| 136 | translation to us at info [at] educommons [dot] com, and we will add it for you and put it into the |
|---|
| 137 | eduCommons distribution in the next release. We will also add you to our our <a href="#id1"><span class="problematic" id="id2">`</span></a>eduCommons |
|---|
| 138 | Localization 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> |
|---|
| 141 | Inline 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 |
|---|
| 143 | released. A quick search for "" 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 |
|---|
| 145 | us 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>. |
|---|
| 153 | Generated on: 2009-08-09 07:41 UTC. |
|---|
| 154 | Generated 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> |
|---|