-
Notifications
You must be signed in to change notification settings - Fork 0
/
translation.html
255 lines (223 loc) · 13.7 KB
/
translation.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Translations — HappyPanda X 0.13.3#170 documentation</title>
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/style.css" type="text/css" />
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/language_data.js"></script>
<script src="https://platform.twitter.com/widgets.js"></script>
<script src="_static/script.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Settings" href="settings.html" />
<link rel="prev" title="Using HappyPanda X" href="usage.html" />
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
<meta name="apple-mobile-web-app-capable" content="yes">
<script type="text/javascript" src="_static/js/jquery-1.11.0.min.js "></script>
<script type="text/javascript" src="_static/js/jquery-fix.js "></script>
<script type="text/javascript" src="_static/bootstrap-3.3.7/js/bootstrap.min.js "></script>
<script type="text/javascript" src="_static/bootstrap-sphinx.js "></script>
</head><body>
<div id="navbar" class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html"><span><img src="_static/hpx_logo.svg"></span>
HappyPanda X</a>
<span class="navbar-text navbar-version pull-left"><b>0.13.3#170</b></span>
</div>
<div class="collapse navbar-collapse nav-collapse">
<ul class="nav navbar-nav">
<li class="dropdown globaltoc-container">
<a role="button"
id="dLabelGlobalToc"
data-toggle="dropdown"
data-target="#"
href="index.html">Contents <b class="caret"></b></a>
<ul class="dropdown-menu globaltoc"
role="menu"
aria-labelledby="dLabelGlobalToc"><ul class="current">
<li class="toctree-l1"><a class="reference internal" href="install.html">Installing</a></li>
<li class="toctree-l1"><a class="reference internal" href="usage.html">Using HappyPanda X</a></li>
<li class="toctree-l1"><a class="reference internal" href="usage.html#installing-plugins">Installing plugins</a></li>
<li class="toctree-l1"><a class="reference internal" href="usage.html#securing-happypanda-x">Securing HappyPanda X</a></li>
<li class="toctree-l1"><a class="reference internal" href="usage.html#exposing-happypanda-x">Exposing HappyPanda X</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Translations</a></li>
<li class="toctree-l1"><a class="reference internal" href="settings.html">Settings</a></li>
<li class="toctree-l1"><a class="reference internal" href="switches.html">Command-Line Arguments</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="env.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="env.html#editing-the-documentation">Editing the documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="client.html">Creating frontends</a></li>
<li class="toctree-l1"><a class="reference internal" href="plugin.html">Plugins</a></li>
<li class="toctree-l1"><a class="reference internal" href="todo.html">TODO</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="api_general.html">General</a></li>
<li class="toctree-l1"><a class="reference internal" href="api.html">Server API</a></li>
<li class="toctree-l1"><a class="reference internal" href="api_plugin.html">Plugin API</a></li>
</ul>
</ul>
</li>
<li>
<a href="usage.html" title="Previous Chapter: Using HappyPanda X"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">« Using HappyPanda X</span>
</a>
</li>
<li>
<a href="settings.html" title="Next Chapter: Settings"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">Settings »</span>
</a>
</li>
</ul>
<form class="navbar-form navbar-right" action="search.html" method="get">
<div class="form-group">
<input type="text" name="q" class="form-control" placeholder="Search" />
</div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
</div>
<ul class="quick-links">
<li>
<strong>Quick links</strong>
</li>
<li class="quick-link">
<a class="github-button" href="https://github.com/twiddli" aria-label="Follow @twiddli on GitHub">Follow @twiddli</a>
</li>
<li class="quick-link">
<a class="github-button" href="https://github.com/happypandax/happypandax/issues" data-icon="octicon-issue-opened" data-show-count="true" aria-label="Issue happypandax/happypandax on GitHub">Issue</a>
</li>
<li class="divider">·</li>
<li class="quick-link">
<a class="github-button" href="https://github.com/happypandax/happypandax" data-icon="octicon-star" data-show-count="true" aria-label="Star happypandax/happypandax on GitHub">Star</a>
</li>
<li class="quick-link">
<a class="github-button" href="https://github.com/happypandax/happypandax/fork" data-icon="octicon-repo-forked" data-show-count="true" aria-label="Fork happypandax/happypandax on GitHub">Fork</a>
</li>
<li class="divider">·</li>
<li class="quick-link">
<a href="https://twitter.com/twiddly_"
class="twitter-follow-button" data-width="145px"
data-link-color="#0069D6" data-show-count="false">
Follow
@twiddly_
</a>
</li>
<li class="quick-link">
<a href="https://twitter.com/share" class="twitter-share-button"
data-url="" data-count="horizontal"
data-via="twbootstrap"
data-related="twiddly_:Creator of HappyPanda X">Tweet</a>
</li>
</ul>
<div class="container">
<div class="row">
<div class="col-md-3">
<div id="sidebar" class="bs-sidenav" role="complementary"><ul>
<li><a class="reference internal" href="#">Translations</a><ul>
<li><a class="reference internal" href="#translator-s-perspective">Translator’s perspective</a></li>
<li><a class="reference internal" href="#developer-s-perspective">Developer’s perspective</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="col-md-9 content">
<div class="section" id="translations">
<h1>Translations<a class="headerlink" href="#translations" title="Permalink to this headline">¶</a></h1>
<p>It is possible to translate and localize HPX into your language.</p>
<p>Existing translations can be found at <code class="docutils literal notranslate"><span class="pre">[HPX]/translations</span></code>.
These translation files are named like so: <code class="docutils literal notranslate"><span class="pre"><language_code>.<namespace>.yaml</span></code> in all lower-case.</p>
<p>In these translation files, translations are distinguished by <strong>translation ids</strong>:</p>
<div class="highlight-guess notranslate"><div class="highlight"><pre><span></span>translation-id: translated text
translation-id-2: translated text 2
...
</pre></div>
</div>
<p>It is required that for every language, a namespace called <code class="docutils literal notranslate"><span class="pre">general</span></code> exists with this <strong>translation id</strong>:</p>
<div class="highlight-guess notranslate"><div class="highlight"><pre><span></span><span class="n">locale</span><span class="o">:</span> <span class="n">LanguageName</span> <span class="o">(</span><span class="n">Country</span><span class="o">)</span>
</pre></div>
</div>
<p>You can see <code class="docutils literal notranslate"><span class="pre">translations/en_us.general.yaml</span></code> for an example.</p>
<p>If you need a quick primer on YAML, see <a class="reference external" href="https://learn.getgrav.org/advanced/yaml">here</a>.</p>
<div class="section" id="translator-s-perspective">
<h2>Translator’s perspective<a class="headerlink" href="#translator-s-perspective" title="Permalink to this headline">¶</a></h2>
<p>If you’re coming from a translator’s perspective and just want to translate then here are some quick pointers.</p>
<p>It is recommended that you translate from the <code class="docutils literal notranslate"><span class="pre">en_us</span></code> language code as this is the default language code for HPX , and
also the one being kept up to date the most and fastest.</p>
<p>When translating you should take note of the <code class="docutils literal notranslate"><span class="pre">_version_</span></code> id from the file you’re translating from at the time of translating.
When you’re done translating, you update the <code class="docutils literal notranslate"><span class="pre">_version_</span></code> in your translation files to match the ones you were translating from.
This way you’’ know that your translation files are out of date when these <code class="docutils literal notranslate"><span class="pre">_version_</span></code>’s differ.</p>
<p>You can (and should!) submit your translation files to the main repo. Just create a pull request and it’ll be merged and usable by everyone in future releases!</p>
<p>If you’re going to translate the <code class="docutils literal notranslate"><span class="pre">ui</span></code> namespace, do note the prefixes on the <strong>language ids</strong> and their meaning:</p>
<div class="highlight-guess notranslate"><div class="highlight"><pre><span></span># Prefixes:
# - mi == menu item text
# - h == header text
# - de == description text
# - t == normal text
# - b == button text
</pre></div>
</div>
<p>I might create a tool (or you can too) for helping translating later if I have time.</p>
</div>
<div class="section" id="developer-s-perspective">
<h2>Developer’s perspective<a class="headerlink" href="#developer-s-perspective" title="Permalink to this headline">¶</a></h2>
<p>Developers can choose to create their own language namespace for their own client applications if they desire.
This language namespace can also be included in future HPX releases. Just create a pull request.</p>
<p>Say I made an app client for HPX named <code class="docutils literal notranslate"><span class="pre">myapp</span></code>. For this app I could create language files with the namespace <code class="docutils literal notranslate"><span class="pre">myapp</span></code> and include them in HPX.
Others can then come edit or create their own translations for my app in the same manner as they would for HPX.</p>
<p>Translations are used like this <code class="docutils literal notranslate"><span class="pre"><namespace>.<translation_id></span></code>.
For example: <code class="docutils literal notranslate"><span class="pre">"general.locale"</span></code> resolves to <code class="docutils literal notranslate"><span class="pre">English</span> <span class="pre">(United</span> <span class="pre">States)</span></code>.</p>
<p>If you’re building a client, you can access these translations through the server API functions <a class="reference internal" href="api.html#happypanda.interface.ui.translate" title="happypanda.interface.ui.translate"><code class="xref py py-func docutils literal notranslate"><span class="pre">ui.translate()</span></code></a> and <a class="reference internal" href="api.html#happypanda.interface.meta.get_locales" title="happypanda.interface.meta.get_locales"><code class="xref py py-func docutils literal notranslate"><span class="pre">meta.get_locales()</span></code></a>.</p>
<p>Keep in mind that the locale settings for HPX are <em>client-scoped</em>, meaning that you can change the locale settings from a client freely without interfering with other client’s locale settings.</p>
<div class="admonition-todo admonition" id="id1">
<p class="admonition-title">Todo</p>
<p>accessing through plugins</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<script src="https://utteranc.es/client.js"
repo="happypandax/happypandax.github.io"
issue-term="pathname"
label="💬 docs"
theme="github-light"
crossorigin="anonymous"
async>
</script>
</div>
</div>
<script async defer src="https://buttons.github.io/buttons.js"></script>
<footer class="footer">
<div class="container">
<p class="pull-right">
<a href="#">Back to top</a>
<br/>
</p>
<p>
© Copyright Twiddly.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.2.1.<br/>
</p>
</div>
</footer>
</body>
</html>