blob: 1e34d1f1c8e9178577a4ec836ef795489738a340 [file] [log] [blame]
<!doctype html>
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.
<html lang="en" prefix="og:">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>How to edit the Native Language (NL) Websites?</title> <!-- Below Meta Tags Generated via -->
<!-- If you don't care about social media then remove this section -->
<!-- Values are set in -->
<!-- HTML Meta Tags -->
<meta name="description" content="The official developer website of the Apache OpenOffice open source project, home of OpenOffice Writer, Calc, Impress, Draw and Base.">
<meta name="keywords" content="">
<!-- Facebook Meta Tags -->
<meta property="og:url" content="">
<meta property="og:type" content="website">
<meta property="og:title" content="Apache OpenOffice">
<meta property="og:description" content="The official developer website of the Apache OpenOffice open source project, home of OpenOffice Writer, Calc, Impress, Draw and Base.">
<meta property="og:image" content="">
<!-- Twitter Meta Tags -->
<meta name="twitter:card" content="summary_large_image">
<meta property="twitter:domain" content="">
<meta property="twitter:url" content="">
<meta name="twitter:title" content="Apache OpenOffice">
<meta name="twitter:description" content="The official developer website of the Apache OpenOffice open source project, home of OpenOffice Writer, Calc, Impress, Draw and Base.">
<meta name="twitter:image" content="">
<!-- Above Meta Tags Generated via -->
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<body id="index" class="home">
<div id="banner">
<div id="bannerleft"><a alt="Apache OpenOffice" href="/">
<img id="logo" alt="Apache OpenOffice" src="/images/AOO4_website_logo.png" height="60" width="161"/></a></div>
<div id="bannercenter">The Free and Open Productivity Suite</div>
<div id="clear"></div>
<nav class="navbar navbar-expand-sm navbar-dark bg-primary">
<button class="navbar-toggler" type="button"
data-toggle="collapse" data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
<!-- General menu -->
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active dropdown">
<a class="nav-link dropdown-toggle" href="#" id="generalDropdown" role="button" data-toggle="dropdown" aria-expanded="false">General</a>
<ul class="dropdown-menu" aria-labelledby="generalDropdown">
<li><a class="dropdown-item" href="/index.html">About</a></li>
<li><a class="dropdown-item" href="/downloads.html">Downloads</a></li>
<li><a class="dropdown-item" href="/license.html">License</a></li>
<li><a class="dropdown-item" href="/mission.html">Mission</a></li>
<li><a class="dropdown-item" href="/trademarks.html">Trademarks</a></li>
<li><a class="dropdown-item" href="/press.html">Press</a></li>
<li><a class="dropdown-item" href=""></a></li>
<!-- Community menu -->
<li class="nav-item active dropdown">
<a class="nav-link dropdown-toggle" href="#" id="communityDropdown" role="button" data-toggle="dropdown" aria-expanded="false">Community</a>
<ul class="dropdown-menu" aria-labelledby="communityDropdown">
<li><a class="dropdown-item" href="/get-involved.html">Get Involved</a></li>
<li><a class="dropdown-item" href="/orientation/index.html">Orientation</a></li>
<li><a class="dropdown-item" href="/mailing-lists.html">Mailing Lists</a></li>
<li><a class="dropdown-item" href="/social.html">Social Networking</a></li>
<li><a class="dropdown-item" href="/events.html">Events</a></li>
<li><a class="dropdown-item" href="">Support</a></li>
<li><a class="dropdown-item" href="/native-lang.html">Native Language</a></li>
<li><a class="dropdown-item" href="">Planning Wiki</a></li>
<li><a class="dropdown-item" href="/people.html">People</a></li>
<li><a class="dropdown-item" href="/community-faqs.html">Community FAQs</a></li>
<!-- Development menu -->
<li class="nav-item active dropdown">
<a class="nav-link dropdown-toggle" href="#" id="developmentDropdown" role="button" data-toggle="dropdown" aria-expanded="false">Development</a>
<ul class="dropdown-menu" aria-labelledby="developmentDropdown">
<li><a class="dropdown-item" href="/source.html">Source Code</a></li>
<li><a class="dropdown-item" href="/bug-tracking.html">Bug Tracking</a></li>
<li><a class="dropdown-item" href="/qa.html">Quality Assurance</a></li>
<li><a class="dropdown-item" href="/translate.html">Translation</a></li>
<li><a class="dropdown-item" href="/website-local.html">Website</a></li>
<li><a class="dropdown-item" href="/security.html">Security Reports</a></li>
<li><a class="dropdown-item" href="/contributing-code.html">Contributing Code</a></li>
<li><a class="dropdown-item" href="/developer-faqs.html">Developer FAQs</a></li>
<!-- Project menu -->
<li class="nav-item active dropdown">
<a class="nav-link dropdown-toggle" href="#" id="projectDropdown" role="button" data-toggle="dropdown" aria-expanded="false">Project</a>
<ul class="dropdown-menu" aria-labelledby="projectDropdown">
<li><a class="dropdown-item" href="/blogpage.html">Project Blog</a></li>
<li><a class="dropdown-item" href="/pmc-faqs.html">PMC FAQs</a></li>
<!-- The ASF menu -->
<div class="navbar-nav" style="padding-top: 0.5rem;">
<div class="nav-item dropdown dropdown-menu-right active">
<a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img src=""
width="32" height="32" class="d-inline-block align-top"
alt="Apache Feather">
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="">Website</a>
<a class="dropdown-item" href="">License</a>
<a class="dropdown-item" href="">Security</a>
<a class="dropdown-item" href="">Events</a>
<a class="dropdown-item" href="">Donations</a>
<a class="dropdown-item" href="">Sponsorship</a>
<a class="dropdown-item" href="">Thanks</a>
</div> </nav>
<div id="contenta">
<h2 id="native-language-nl-websites">Native Language (NL) Websites<a class="headerlink" href="#native-language-nl-websites" title="Permalink">&para;</a></h2>
<p>Apache OpenOffice supports users around the world via our many OpenOffice localizations, via
native language mailing lists and support forums, and by translations of our website. This
page describes the steps to create and maintain an NL website. Following these steps you
can create a website translation like our <a href="">Spanish</a>,
<a href="">Turkish</a> or <a href="">Dutch</a> websites.</p>
<p>Making updates to the Apache OpenOffice project's websites is simple. It's even easy
for non-committers (new contributors - like you) to create a patch to request that
pages are updated by the project community.</p>
<h2 id="the-xx-website">The XX Website<a class="headerlink" href="#the-xx-website" title="Permalink">&para;</a></h2>
<p>The easiest way to get started is with the <a href="">XX website</a>.This
website is a extract of the most-commonly visited pages from the English website, including:</p>
<li>The home page</li>
<li>The product description pages</li>
<li>The "Why OpenOffice?" pages</li>
<li>The download page</li>
<li>The support information pages</li>
<p>Altogether, there are around 30 pages in the XX website. These are the ones that you will
want to translate.</p>
<h2 id="creating-the-test-directory">Creating the Test Directory<a class="headerlink" href="#creating-the-test-directory" title="Permalink">&para;</a></h2>
<p>In many cases there will already be an NL website for your language, but perhaps one that is
badly out-of-date or is non-standard. However, until your new translation is ready to go it
is probably best not to wipe out the existing NL page. So initially you will probably want
to do your work in a test directory.</p>
<p><strong>Let's take a concrete example:</strong>
Suppose your target language is Italian (it). You will want to do
the following. If you are not a committer and are not familiar with Subversion then you
will want to get help with these steps by asking on the mailing list.</p>
<li>Make a copy (git clone) of the
<a href="">ooo-site/main/content/xx directory</a>
as ooo-site/main/content/my_test. In the copy replace all instances of "/xx" in paths,
files and also within files with "/my_test". Then replace occurrences of "xx" with your language code (not "my_test")
and rename the "msg_prop_l10n_xx.js" file to "msg_prop_l10n_&lt;lang_code&gt;.js"</li>
<li>Also make a clone of the
<a href="">ooo-site/main/assets/xx directory</a>
and call the copy ooo-site/main/assets/my_test.</li>
<li>Commit these changes and publish via <a href="">Jenkins</a></li>
<li>If you are a committer then you can translate the contents of the files in /my_test
locally. If you are not a committer then ask someone to send a ZIP file of the contents.</li>
In any case, the complete "/xx" directory and its files are used as a template.
Please always copy it to a different location first before you start any editing!</p>
<h2 id="translating-the-website">Translating the Website<a class="headerlink" href="#translating-the-website" title="Permalink">&para;</a></h2>
<p>The files will be in two main formats:</p>
<p>HTML files.</p>
<p>Markdown text files.
<a href="">Need to know more about Markdown Text?</a></p>
<p>In your translation, do not change the file or directory names. Be careful to preserve
the markup of the HTML and the indentation levels of the MDText files.</p>
<h2 id="the-template">The Template<a class="headerlink" href="#the-template" title="Permalink">&para;</a></h2>
<p>You will notice that there is more on the website than what you see in the
/test-it content files. The content files give the central part of each page, but the
header, footer as well as navigation menus are generated by the template. There are special
MDText files that you will need to translate for the template. They are:</p>
<p>For example, the /xx/topnav.mdtext has lines like this:</p>
<p>Here you should translate the words "Product", "Download" and "Support". Also, at the
bottom of the file you will see hyperlinks, which should not be changed, and text hints for
the hyperlinks which should be translated.</p>
<p>A special word about brand.mdtext. This contains several values that control the overall
branding on the website. The name and logo must not be changed, since these are our
trademarks, but the "tagline" can be translated. Note also the announcement and
announcement url fields. These control the blue announcement that is the top of every
website page. That should be translated and the URL changed if needed. For example, in a
new release you would want to point to a translated version of the release notes, if they
<h2 id="other-hints">Other Hints<a class="headerlink" href="#other-hints" title="Permalink">&para;</a></h2>
<p>A few other things to watch out for.</p>
<li>Some files contain an Apache License header at the top of the page. You should not
translate that.</li>
<li>Some files contain comments. These don't need to be translated, but no harm is done if
they are.</li>
<li>The /download/index.html requires special care since the language strings are stored in
a the separate Javascript file "msg_prop_l10n_xx.js". The file "index.html" contains only
the variables. Look for the further section if you need more help on this.</li>
<li>It is easy to miss the social networking messages in /download/index.html.
These are in the HTML header block and in function shareTwitter(). The string is something
like "Join the OpenOffice revolution, the free office productivity suite with over 275
million trusted downloads."
You should translate these, but adapt if needed to keep the string within the 280 limit
for Twitter.</li>
<h2 id="how-to-find-the-right-text-for-the-file-at-the-right-place">How to find the right text for the file at the right place?<a class="headerlink" href="#how-to-find-the-right-text-for-the-file-at-the-right-place" title="Permalink">&para;</a></h2>
<p>All texts, mouse over titles and link URLs that can be localized are collected in the
"msg_prop_l10n_xx.js" files. The variables are named and sorted via the sections they are
displayed in and have also comments to keep the overview.</p>
// Extensions: Strings in the blue box (top) (used in "index.html").
Here the text for the headline in the blue box for the extensions is stored:
l10n.dl_ext_blue_box_headline_text = "Get Apache OpenOffice Extensions and Dictionaries";</p>
<p>Please note that not all text is always displayed. Some are only shown in case of errors to
handle a special behavior.</p>
// Download: Strings for error text in the sub-red box (used in "download.js").
Here the text for the left download button is shown when the selected options do not lead to
a correct download:
l10n.dl_full_link_error_text = "No full installation available";</p>
<h2 id="you-can-see-the-variables-and-text-but-cannot-find-the-respective-files">You can see the variables and text but cannot find the respective file(s)?<a class="headerlink" href="#you-can-see-the-variables-and-text-but-cannot-find-the-respective-files" title="Permalink">&para;</a></h2>
<p>The "msg_prop_l10n_xx.js" files contains already a lot of strings. But it is maybe not
wished to localize everything that is existing. So, we can keep the "/xx" example section
<p>For example, the following variables point to files that are not existing yet. You have to
create them first:</p>
<p>l10n.dl_analyze_headline_text = "How to report a broken download link?";
--&gt; "analyze.html"</p>
<p>l10n.dl_help_link = "<a href=""></a>";
--&gt; "full_vs_lp.html"</p>
<p>Also many links in the navigation bar refers to global webpages.</p>
<h2 id="nl-specific-content">NL-Specific Content<a class="headerlink" href="#nl-specific-content" title="Permalink">&para;</a></h2>
<p>It may be desired to add language-specific custom content to the website. For example:</p>
<li>A localized Arabic website might want a special page dedicated to a description of how
to use the bidirectional text features in OpenOffice. The Tamil website might want a page
that links to a particular open source font download that is recommended.</li>
<li>There may be a local OpenOffice-related event that you want to publicize.</li>
<p>New content pages can be added to your NL directory and links page from a navigator or
from a news article on the home page as appropriate.</p>
<h2 id="after-translation">After Translation<a class="headerlink" href="#after-translation" title="Permalink">&para;</a></h2>
<p>Once your translation is done, you can check it in (if you are a committer) or ask someone
to help you check it in and publish it to the website. Review the published pages to verify
that the translation is as you want it, and that all links work. Once it is ready you can
rename your "test" directory and make it the new NL website for your language!</p>
<p><strong>Please Note:</strong>
If there is an existing NL website it is recommended that you do the switch
over like this:</p>
<li>First delete the existing NL page, e.g., svn del /it. Commit and publish that change.</li>
<li>Then rename the content/test-it directory, e.g., svn move content/test-it content/it.</li>
<li>Also rename the templates/test-it to /templates/it</li>
<li>Commit these changes and commit them via the CMS</li>
<p>This order is recommended, with the commit and publish after the deletion of the old
directory due to a CMS build issue we've run into if all these steps are done together in
a single commit.</p>
<h2 id="maintaining-nl-websites">Maintaining NL Websites<a class="headerlink" href="#maintaining-nl-websites" title="Permalink">&para;</a></h2>
<p>Do try to check your NL website every few weeks to see if any changes are needed. Try to
keep it in sync with the English website. Is there a new announcement header? A new
release? A new blog post?</p>
<h2 id="you-got-stuck-and-need-help">You got stuck and need help?<a class="headerlink" href="#you-got-stuck-and-need-help" title="Permalink">&para;</a></h2>
<p>You can always refer to the global webpages at "<a href=""></a>". The directory
and file structure is the same.</p>
<h2 id="you-need-a-helping-hand">You need a helping hand?<a class="headerlink" href="#you-need-a-helping-hand" title="Permalink">&para;</a></h2>
<p>You can get in contact with us via the
<a href="/mailing-lists.html#localization-mailing-list-public">L10N mailing list</a>.
See the general explanation for
<a href="/mailing-lists.html#using-mailing-lists">what a mailing list is</a>.</p>
<footer class="navbar-expand-lg navbar-light bg-light">
<div class="footer" id="footer">
<div class="container-fluid">
Copyright &copy; 2011-2024 The Apache Software Foundation,
Licensed under the
<a href="">Apache License, Version 2.0.</a> | <a href="/contact.html">Contact Us</a> | <a href="/terms.html">Terms of Use</a> | <a href="">Privacy</a>
Apache, OpenOffice, and the seagull logo are registered trademarks of The Apache Software Foundation.
The Apache feather logo is a trademark of The Apache Software Foundation.
Other names appearing on the site may be trademarks of their respective owners.
</div><!-- #container-fluid -->
<div class="row container-fluid">
<div class="col-sm">
<a href="">
<img src="" alt="The Apache Software Foundation" style="border: 0; margin-top: 2px" width="200" height="82">
<div class="col-sm center-align">
<a href="">
<img src="" alt="Support The ASF" height="80" width="80">
<div class="col-sm right-align">
<a class="acevent" data-format="wide" data-mode="light" data-event="random"></a>
<!-- Start load of stylesheets (will need to upgrade periodically) -->
<link href="/theme/css/bootstrap.min.css" rel="stylesheet" type="text/css">
<link href="/theme/css/github-markdown.min.css" rel="stylesheet" type="text/css">
<link href="/theme/css/openoffice.css" rel="stylesheet" type="text/css">
<!-- End stylesheets -->
<!-- Start the loading of javascript frameworks (will need to upgrade periodically) -->
<script src=""></script>
<script src="/theme/js/jquery.slim.min.js"></script>
<script src="/theme/js/popper.min.js"></script>
<script src="/theme/js/bootstrap.min.js"></script>
<!-- End the loading of javascript frameworks -->
<!-- Source: pages/; Template: page; Url: pages/website-native.html --></body>