blob: 7c0f5bd23a834f0372c5b25132be4930d727c376 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.9-dev">
<meta name="Forrest-skin-name" content="pelt">
<title>Translating Lenya</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="../skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="../skin/print.css" rel="stylesheet">
<link type="text/css" href="../skin/profile.css" rel="stylesheet">
<script src="../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../skin/fontsize.js" language="javascript" type="text/javascript"></script>
<link rel="shortcut icon" href="../favicon.ico">
</head>
<body onload="init()">
<script type="text/javascript">ndeSetTextSize();</script>
<div id="top">
<!--+
|breadtrail
+-->
<div class="breadtrail">
<a href="http://www.apache.org/">apache</a> &gt; <a href="http://lenya.apache.org/">lenya</a><script src="../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
</div>
<!--+
|header
+-->
<div class="header">
<!--+
|start group logo
+-->
<div class="grouplogo">
<a href=""><img class="logoImage" alt="Lenya" src="../images/apache-lenya-light.png" title=""></a>
</div>
<!--+
|end group logo
+-->
<!--+
|start Project Logo
+-->
<div class="projectlogo">
<a href=""></a>
</div>
<!--+
|end Project Logo
+-->
<!--+
|start Search
+-->
<div class="searchbox">
<form action="http://www.google.com/search" method="get" class="roundtopsmall">
<input value="lenya.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with ');" size="25" name="q" id="query" type="text" value="Search the site with ">&nbsp;
<input name="Search" value="Search" type="submit">
</form>
</div>
<!--+
|end search
+-->
<!--+
|start Tabs
+-->
<ul id="tabs">
<li>
<a class="unselected" href="../index.html">Project</a>
</li>
<li>
<a class="unselected" href="../docs/index.html">Developer</a>
</li>
<li class="current">
<a class="selected" href="../community/index.html">Community</a>
</li>
<li>
<a class="unselected" href="../docs/2_0_x/index.html">Version 2.0</a>
</li>
<li>
<a class="unselected" href="../docs/1_2_x/index.html">Version 1.2</a>
</li>
</ul>
<!--+
|end Tabs
+-->
</div>
</div>
<div id="main">
<div id="publishedStrip">
<!--+
|start Subtabs
+-->
<div id="level2tabs"></div>
<!--+
|end Endtabs
+-->
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<!--+
|breadtrail
+-->
<div class="breadtrail">
&nbsp;
</div>
<!--+
|start Menu, mainarea
+-->
<!--+
|start Menu
+-->
<div id="menu">
<div onclick="SwitchMenu('menu_selected_1.1', '../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../skin/images/chapter_open.gif');">Community</div>
<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
<div class="menuitem">
<a href="../community/index.html">Contributing</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lenya/">Lenya Wiki</a>
</div>
<div class="menupage">
<div class="menupagetitle">Translations</div>
</div>
<div class="menuitem">
<a href="http://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=Lenya&short_desc=&short_desc_type=allwordssubstr&long_desc=&long_desc_type=allwordssubstr&bug_file_loc=&bug_file_loc_type=allwordssubstr&keywords=&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&order=Importance">Bug Tracker</a>
</div>
<div class="menuitem">
<a href="../community/mailing-lists.html">Mailing Lists</a>
</div>
<div class="menuitem">
<a href="../community/irc.html">IRC</a>
</div>
<div class="menuitem">
<a href="../community/live-sites.html">Live Sites</a>
</div>
</div>
<div id="credit"></div>
<div id="roundbottom">
<img style="display: none" class="corner" height="15" width="15" alt="" src="../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
<!--+
|alternative credits
+-->
<div id="credit2">
<a href="http://wiki.apache.org/lenya/MeetingFreiburg2008"><img border="0" title="Meeting Freiburg 2008" alt="Meeting Freiburg 2008 - logo" src="../images/apache-lenya-meeting-freiburg-2008.png" style="width: 160px;height: 40px;"></a>
</div>
</div>
<!--+
|end Menu
+-->
<!--+
|start content
+-->
<div id="content">
<div title="Portable Document Format" class="pdflink">
<a class="dida" href="translations.pdf"><img alt="PDF -icon" src="../skin/images/pdfdoc.gif" class="skin"><br>
PDF</a>
</div>
<h1>Translating Lenya</h1>
<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
<a href="#Dictionary+Files">Dictionary Files</a>
</li>
<li>
<a href="#Message+Key+Naming+Conventions">Message Key Naming Conventions</a>
</li>
<li>
<a href="#Global+Message+Keys">Global Message Keys</a>
</li>
<li>
<a href="#Context+Specific+Message+Keys">Context Specific Message Keys</a>
</li>
<li>
<a href="#I18N+Survival+Resources">I18N Survival Resources</a>
</li>
</ul>
</div>
</div>
<p>If you want to contribute translations to Lenya, you need to know about dictionary files only. If you are a developer, read the key naming conventions too. </p>
<a name="N10011"></a><a name="Dictionary+Files"></a>
<h2 class="h3">Dictionary Files</h2>
<div class="section">
<p>Dictionary files are loacted at </p>
<ul>
<li>
<p> lenya/resources/i18n/*(_)?*.xml </p>
</li>
<li>
<p> lenya/pubs/@@pubname@@/lenya/resources/i18n/*(_)?*.xml </p>
</li>
</ul>
<p>The latter one is a publication specific translation file which gets merged with the global one. The publication specific translations will override the global ones.
An example name for a dictionary file is <em>cmsui_de.xml</em> or <em>cmsui_fr.xml</em> where <em>_de</em> and <em>_fr</em> are the official locale extensions. If you want to contribute a translation, make a copy of <em>cmsui.xml</em> , add your locale extension to the file name, and translate the text as shown below </p>
<p>Change </p>
<pre class="code">
&lt;message key="lenya.news.main.title"&gt;Maintain News&lt;/message&gt;
</pre>
<p>to </p>
<pre class="code">
&lt;message key="lenya.news.main.title"&gt;News verwalten&lt;/message&gt;
</pre>
<p>When you are done, submit a bug report to Bugzilla and attach your new dictionary file. That way, it gets noticed and can be added to Lenya. </p>
</div>
<a name="N1004A"></a><a name="Message+Key+Naming+Conventions"></a>
<h2 class="h3">Message Key Naming Conventions</h2>
<div class="section">
<p>In general we can differ between </p>
<ul>
<li>
<p> global messages </p>
</li>
<li>
<p> context specific messages </p>
</li>
</ul>
<p>It is considered a good practice to encode the context within the message key. This will avoid key collisions if message catalogies of different contexts are merged. The context should be the key's prefix and MUST always start with "lenya.". </p>
<p>We propose here to use the following naming scheme of i18n message keys. </p>
</div>
<a name="N10066"></a><a name="Global+Message+Keys"></a>
<h2 class="h3">Global Message Keys</h2>
<div class="section">
<pre class="code">
&lt;message key="lenya.common.delete.label"&gt;Delete&lt;/message&gt;
&lt;message key="lenya.common.delete.hint"&gt;Delete object&lt;/message&gt;
&lt;message key="lenya.common.delete.label"&gt;Cancel&lt;/message&gt;
&lt;message key="lenya.common.delete.hint"&gt;Cancel current action.&lt;/message&gt;
</pre>
<p>
In the above examples the context is lenya.common which indicates the global context. </p>
</div>
<a name="N10073"></a><a name="Context+Specific+Message+Keys"></a>
<h2 class="h3">Context Specific Message Keys</h2>
<div class="section">
<pre class="code">
&lt;message key="lenya.news.main.title"&gt;Maintain News&lt;/message&gt;
&lt;message key="lenya.news.delete.hint"&gt;Delete all selected news items.&lt;/message&gt;
</pre>
<p>
It is up to the message author how long(detailed) the context prefix is. </p>
</div>
<a name="N10080"></a><a name="I18N+Survival+Resources"></a>
<h2 class="h3">I18N Survival Resources</h2>
<div class="section">
<ul>
<li>
<p>
<a href="http://intertwingly.net/stories/2004/04/14/i18n.html"> http://intertwingly.net/stories/2004/04/14/i18n.html</a>
</p>
</li>
<li>
<p>
<a href="http://www.joelonsoftware.com/articles/Unicode.html"> http://www.joelonsoftware.com/articles/Unicode.html</a>
</p>
</li>
<li>
<p>
<a href="http://www.tbray.org/ongoing/When/200x/2003/04/06/Unicode"> http://www.tbray.org/ongoing/When/200x/2003/04/06/Unicode</a>
</p>
</li>
<li>
<p>
<a href="http://www.tbray.org/ongoing/When/200x/2003/04/26/UTF"> http://www.tbray.org/ongoing/When/200x/2003/04/26/UTF</a>
</p>
</li>
</ul>
</div>
</div>
<!--+
|end content
+-->
<div class="clearboth">&nbsp;</div>
</div>
<div id="footer">
<!--+
|start bottomstrip
+-->
<div class="lastmodified">
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<div class="copyright">
Copyright &copy;
2002-2007 <a href="http://www.apache.org/licenses/LICENSE-2.0">The Apache Software Foundation.</a>
</div>
<div id="feedback">
Send feedback about the website to:
<a id="feedbackto" href="mailto:dev@lenya.apache.org?subject=Feedback%C2%A0for%C2%A0community/translations.html">dev@lenya.apache.org</a>
</div>
<!--+
|end bottomstrip
+-->
</div>
</body>
</html>