| <!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="../security.html">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">¶</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 – despite its |
| obvious inadequacy for reasonably unambiguous communication – 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">¶</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> |
| – 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">¶</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">¶</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…</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">¶</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">¶</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">¶</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 © |
| 1999 – |
| 2022 |
| , 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> |