blob: 36c7aa59c92a2fc2ae55571177ce2a88eab72e11 [file] [log] [blame]
<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="en">
<head>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
<title>Apache JMeter
-
JMeter Localisation (Translator's Guide)</title>
<meta name="author" value="Apache JMeter developers">
<meta name="email" value="dev@jmeter.apache.org">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Merriweather:400normal" rel="stylesheet" type="text/css">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="../css/new-style.css">
<link rel="apple-touch-icon-precomposed" href="../images/apple-touch-icon.png">
<link rel="icon" href="../images/favicon.png">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="../images/mstile-144x144.png">
<meta name="theme-color" content="#ffffff">
</head>
<body role="document">
<a href="#content" class="hidden">Main content</a>
<div class="header">
<!--
APACHE LOGO
-->
<div>
<a href="https://www.apache.org"><img title="Apache Software Foundation" class="asf-logo logo" src="../images/asf-logo.svg" alt="Logo ASF"></a>
</div>
<!--
PROJECT LOGO
-->
<div>
<a href="https://jmeter.apache.org/"><img class="logo" src="../images/logo.svg" alt="Apache JMeter"></a>
</div>
<div class="banner">
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-234x60.png" alt="Current Apache event teaser"></a>
<div class="clear"></div>
</div>
</div>
<div class="nav">
<ul class="menu">
<li onClick="return true">
<div class="menu-title">About</div>
<ul>
<li>
<a href="../index.html">Overview</a>
</li>
<li>
<a href="https://www.apache.org/licenses/">License</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Download</div>
<ul>
<li>
<a href="../download_jmeter.cgi">Download Releases</a>
</li>
<li>
<a href="../changes.html">Release Notes</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Documentation</div>
<ul>
<li>
<a href="../usermanual/get-started.html">Get Started</a>
</li>
<li>
<a href="../usermanual/index.html">User Manual</a>
</li>
<li>
<a href="../usermanual/best-practices.html">Best Practices</a>
</li>
<li>
<a href="../usermanual/component_reference.html">Component Reference</a>
</li>
<li>
<a href="../usermanual/functions.html">Functions Reference</a>
</li>
<li>
<a href="../usermanual/properties_reference.html">Properties Reference</a>
</li>
<li>
<a href="../changes_history.html">Change History</a>
</li>
<li>
<a href="../api/index.html">Javadocs</a>
</li>
<li>
<a href="https://cwiki.apache.org/confluence/display/JMETER/Home">JMeter Wiki</a>
</li>
<li>
<a href="https://cwiki.apache.org/confluence/display/JMETER/JMeterFAQ">FAQ (Wiki)</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Tutorials</div>
<ul>
<li>
<a href="../usermanual/jmeter_distributed_testing_step_by_step.html">Distributed Testing</a>
</li>
<li>
<a href="../usermanual/jmeter_proxy_step_by_step.html">Recording Tests</a>
</li>
<li>
<a href="../usermanual/junitsampler_tutorial.html">JUnit Sampler</a>
</li>
<li>
<a href="../usermanual/jmeter_accesslog_sampler_step_by_step.html">Access Log Sampler</a>
</li>
<li>
<a href="../usermanual/jmeter_tutorial.html">Extending JMeter</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Community</div>
<ul>
<li>
<a href="../issues.html">Issue Tracking</a>
</li>
<li>
<a href="https://www.apache.org/security/">Security</a>
</li>
<li>
<a href="../mail.html">Mailing Lists</a>
</li>
<li>
<a href="../svnindex.html">Source Repositories</a>
</li>
<li>
<a href="../building.html">Building and Contributing</a>
</li>
<li>
<a href="https://projects.apache.org/project.html?jmeter">Project info at Apache</a>
</li>
<li>
<a href="https://cwiki.apache.org/confluence/display/JMETER/JMeterCommitters">Contributors</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Foundation</div>
<ul>
<li>
<a href="https://www.apache.org/">The Apache Software Foundation (ASF)</a>
</li>
<li>
<a href="https://www.apache.org/foundation/getinvolved.html">Get Involved in the ASF</a>
</li>
<li>
<a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
</li>
<li>
<a href="https://www.apache.org/foundation/thanks.html">Thanks</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="main" id="content">
<div class="social-media">
<ul class="social-media-links">
<li class="twitter">
<a href="https://twitter.com/ApacheJMeter" title="Follow us on Twitter"><i class="fa fa-twitter" aria-hidden="true"></i>Twitter</a>
</li>
<li class="github">
<a href="https://github.com/apache/jmeter" title="Fork us on github"><i class="fa fa-github" aria-hidden="true"></i>github</a>
</li>
</ul>
</div>
<div class="section">
<h1 id="intro">Introduction<a class="sectionlink" href="#intro" title="Link to here">&para;</a>
</h1>
<p>This document describes the process of creating and maintaining translated texts for JMeter in languages
other than English. English has been tacitly chosen as the project's primary (or "default") language &ndash; despite its
obvious inadequacy for reasonably unambiguous communication &ndash; as a tribute to the Power of the Empire :-)<br>
The metropolitan language texts are thus maintained by the software developers, while other project contributors
(called "translators" in this document) take care of maintaining the texts in the languages of the
provinces. The process of producing and maintaining the later is called "translation" in this document.</p>
<p>This document assumes you'll be using i18nEdit as your tool to edit properties files, and instructions will
be specific to this software, but this is not mandatory: the process should mostly work also if you prefer to use
another tool, such as or <b>vi</b> or <b>Emacs</b>.
</p>
<p>This document describes 6 processes:</p>
<ol>
<li>Obtaining the current texts [translators].</li>
<li>Providing the current texts to translators [developers].</li>
<li>Downloading and running i18nEdit [everyone].</li>
<li>Translating [translators].</li>
<li>Submitting your translations to the project [translators].</li>
<li>Merging in new translations [committers].</li>
</ol>
</div>
<div class="section">
<h1 id="obtain">Obtaining the current texts<a class="sectionlink" href="#obtain" title="Link to here">&para;</a>
</h1>
<p>If you want to help with JMeter's translation process, start by reading this document. Then
send a message to <a href="mailto:dev@jmeter.apache.org">dev@jmeter.apache.org</a>
stating your intention. The files you need (*.properties and *.metaprop) are included in the source archive.
But if you are having any difficulty, one of the project contributors will be able to grab the current texts
from SVN and send them to you. You'll receive a jar, zip, tar or tgz file that you'll need to unpack in your
local disk.</p>
<p>If you are familiar with SVN or you're brave, feel free to anonymously connect to the Apache SVN server
and obtain the JMeter source yourself, as described in
<a href="http://jmeter.apache.org/svnindex.html">http://jmeter.apache.org/svnindex.html</a>
&ndash; the files necessary to the translation process are all under the <span class="code">jmeter/src</span> directory.
</p>
<p>Once you've unpacked or checked out the files, make sure to find file <span class="code">src/i18nedit.properties</span> in there:
you'll need to know where it is to start working with i18nEdit.</p>
</div>
<div class="section">
<h1 id="provide">Providing the current texts to translators<a class="sectionlink" href="#provide" title="Link to here">&para;</a>
</h1>
<p>If you have access to JMeter's SVN repository and you want to pack the files necessary for localisation
for sending to a translator, just go to the directory above the project root and issue the following command:
</p>
<pre class="source">
tar czf jmeter-localisation.tgz `find jmeter/src -name "*.properties" -o -name "*.metaprops"`
</pre>
<p>
Of course you could also send the translator the whole jmeter directory, but this will make their life easier.
</p>
</div>
<div class="section">
<h1 id="i18nEdit">Downloading and running i18nEdit<a class="sectionlink" href="#i18nEdit" title="Link to here">&para;</a>
</h1>
<p>The runtime for i18nEdit can be obtained from
<a href="https://sourceforge.net/projects/i18nedit/">https://sourceforge.net/projects/i18nedit/</a>.
Download the binary distribution (i18nedit-1.2.2.jar) and save it locally.</p>
<p>To run i18nEdit, just make sure to have a reasonably modern Java Runtime Environment in your PATH, change
to the directory where you saved i18nedit-1.2.2.jar, then issue the following command:</p>
<pre class="source">
java -jar i18nedit-1.2.2.jar
</pre>
Then:
<ol>
<li>If you've never run i18nEdit before, choose a language. The rest of this document assumes you chose UK English.</li>
<li>Select the "<span class="code">Projects</span>" menu, then "<span class="code">Open project&hellip;</span>".</li>
<li>Navigate to <span class="code">jmeter/src/</span>, select <span class="code">i18nedit.properties</span>, and press the "<span class="code">Open</span>" button.</li>
<li>In the window that opens, select the "<span class="code">Project</span>" menu, then "<span class="code">Project settings</span>". Check that your target language
appears in the list in field "<span class="code">Additional locales (ISO codes)</span>". Otherwise, add it now. Press "<span class="code">Save</span>".</li>
</ol>
You're now ready to start translating.
</div>
<div class="section">
<h1 id="translating">Translating<a class="sectionlink" href="#translating" title="Link to here">&para;</a>
</h1>
<p>Before you start translating, select the "<span class="code">Project</span>" menu, then "<span class="code">Translation settings</span>". Choose work mode
"<span class="code">Directed translation (source to target)</span>". Enter "<span class="code">en</span>" (without the quotes) in the "<span class="code">Source localization</span>" field. Enter
the ISO code of your target language in the "<span class="code">Target localization field</span>".</p>
<p>Click on one of the editable fields in the right panel ("<span class="code">Comment</span>" or "<span class="code">Content</span>" for your language). Press <span class="keycombo"><span class="keysym">F2</span></span>.
i18nEdit will bring you to the first property that requires your attention, either because a translation does not yet
exist for it or because the English text has changed since the translation was provided. Enter or fix the text if
necessary, then press <span class="keycombo"><span class="keysym">F2</span></span> again to repeat the process.</p>
<p>i18nEdit's on-line help is excellent: read through it for more information and tips.</p>
</div>
<div class="section">
<h1 id="submitting">Submitting your translations to the project<a class="sectionlink" href="#submitting" title="Link to here">&para;</a>
</h1>
<p>Once you're done translating, just pack up the whole set of files in <span class="code">jmeter/src</span> in a jar, zip, tar,
tgz, or alike and attach them to a JMeter bug report
(follow link to "Known bugs" in <a href="http://jmeter.apache.org/">JMeter's home page</a> for that).</p>
</div>
<div class="section">
<h1 id="merging">Merging in new translations<a class="sectionlink" href="#merging" title="Link to here">&para;</a>
</h1>
If you're a committer receiving text files from a translator, follow this steps to merge them into
the project:
<ol>
<li>Unpack the files submitted by the translator in a separate directory.</li>
<li>Start i18nEdit as described in <a href="#i18nEdit">Downloading and running i18nEdit</a> above.</li>
<li>If the translator worked in a new language, make sure it is listed in the Additional locales field in the Project Settings.</li>
<li>Open the "<span class="code">Team</span>" menu and select "<span class="code">Merge changes as integrator</span>".</li>
<li>Enter the path to the <span class="code">src</span> directory in the files submitted by the translator.</li>
<li>Select the translator's target language.</li>
<li>Press "<span class="code">Perform merge</span>".</li>
<li>Close i18nEdit and commit to SVN as usual (remember to Refresh your project if you're using Eclipse).</li>
</ol>
</div>
<div class="share-links">
Share this page:
<ul>
<li class="fb">
<a data-social-url="https://facebook.com/sharer/sharer.php?u=" title="Share on facebook"><i class="fa fa-facebook" aria-hidden="true"></i>share</a>
</li>
<li class="twitter">
<a data-social-url="https://twitter.com/intent/tweet?url=" title="Tweet on twitter"><i class="fa fa-twitter" aria-hidden="true"></i>tweet</a>
</li>
</ul>
</div>
<a href="#top" id="topButton">Go to top</a>
</div>
<div class="footer">
<div class="copyright">
Copyright &copy;
1999 &ndash;
2020
, Apache Software Foundation
</div>
<div class="trademarks">Apache, Apache JMeter, JMeter, the Apache
feather, and the Apache JMeter logo are
trademarks of the
Apache Software Foundation.
</div>
</div>
<script>(function(){
"use strict";
// enable 'go to top' button functionality
document.addEventListener('scroll', function() {
if (document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) {
document.getElementById("topButton").style.display = "block";
} else {
document.getElementById("topButton").style.display = "none";
}
});
// fill in the current location into social links on this page.
var as = document.getElementsByTagName('a');
var loc = document.location.href;
if (!loc.toLowerCase().startsWith('http')) {
return;
}
for (var i=0; i<as.length; i++) {
var href = as[i].getAttribute('data-social-url');
if (href !== null) {
as[i].href = href + encodeURIComponent(loc);
}
}
})();</script>
</body>
</html>