blob: dd924f7df29ec9cd70b1398f9033bc985d993851 [file] [log] [blame]
Jonas Häggqvist31ca70b2010-01-31 00:44:07 +00001{include file="header.tpl" title=$title rss="rss.php"}
2
3<h1>Rockbox translations</h1>
4
5<p>
6On this page you can see the current status of the various Rockbox translations.
7Ideally, all languages below should be at 100%. In reality though, this is not
8the case. You can help remedy this situation by clicking on the name of a
9language you speak and help translate Rockbox all within the comfort of your
10webbrowser. Alternatively, you can go to <a
Solomon Peachy5c91bbb2020-05-21 20:59:25 -040011href="//www.rockbox.org/twiki/bin/view/Main/LangFiles">this page</a> in the
Jonas Häggqvist31ca70b2010-01-31 00:44:07 +000012Rockbox wiki, which will tell you how to update languages the more manual, but
13possibly slightly safer way.
14</p>
Solomon Peachy5c91bbb2020-05-21 20:59:25 -040015<p>You can also find some stats about <a href="//translate.rockbox.org/whichfont.php">font coverage</a>.</p>
Solomon Peachya7f2dca2020-07-14 08:31:11 -040016<p><em>Note that the Rockbox Utility is translated separately, please see the
17<a href="//www.rockbox.org/wiki/Main/RockboxUtilityDevelopment#How_to_Translate">Rockbox Utility Development</a> page on the wiki.</em></p>
Jonas Häggqvist31ca70b2010-01-31 00:44:07 +000018
19<h2>Current translation status</h2>
Solomon Peachy0c22fb92020-08-17 14:41:01 -040020<p><i>Note: This is updated at most every 15 minutes, but only if the build farm is idle.</i></p>
Jonas Häggqvist31ca70b2010-01-31 00:44:07 +000021<ul>
22{foreach from=$summary key=k item=v}
23 <li>{$v} {$k} translations
Solomon Peachyaa276702021-12-15 22:46:05 -050024 {if $k=="good"}(&gt;90% translated){/if}
Jonas Häggqvist31ca70b2010-01-31 00:44:07 +000025 {if $k=="normal"}(&gt;50% translated){/if}
26 {if $k=="bad"}(&lt;50% translated){/if}
27 </li>
28{/foreach}
29</ul>
30
31<table>
32 <thead>
33 <tr>
34 <td colspan='4'>Language</td>
35 <td>Last update</td>
36 <td>Progress</td>
Solomon Peachyb61343c2020-07-27 15:59:47 -040037 <td>Missing phrases</td>
Jonas Häggqvist31ca70b2010-01-31 00:44:07 +000038 <td>Changed description</td>
39 <td>Changed source</td>
Solomon Peachyb61343c2020-07-27 15:59:47 -040040 <td>Missing translation</td>
41 <td>Missing voice</td>
42 <td>Same as English</td>
Jonas Häggqvist31ca70b2010-01-31 00:44:07 +000043 </tr>
44 </thead>
45 {foreach from=$langstats key=langfile item=language}
Solomon Peachyb8ffd032023-10-16 17:29:28 -040046 {if $language.percentage == 100 && $language.source == 0}
Jonas Häggqvist31ca70b2010-01-31 00:44:07 +000047 {assign var='rowclass' value='good'}
48 {elseif $language.percentage < 50}
49 {assign var='rowclass' value='poor'}
50 {else}
51 {assign var='rowclass' value=''}
52 {/if}
Solomon Peachy31d608a2021-09-29 11:21:28 -040053 {if ($language.voicedup + $language.destdup) > 400}
54 {assign var='englishclass' value='poor'}
55 {elseif ($language.voicedup + $language.destdup) > 100}
56 {assign var='englishclass' value='questionable'}
57 {else}
58 {assign var='englishclass' value=''}
59 {/if}
60
Jonas Häggqvist31ca70b2010-01-31 00:44:07 +000061 <tr class="{$rowclass}">
62 <td>
63 <img class="flagthumb" src="flags/22/{$language.flag}.png" />
64 </td>
65 <td>
Solomon Peachybe29be12020-04-10 16:39:41 -040066 {if $langfile != 'english'}
Jonas Häggqvist31ca70b2010-01-31 00:44:07 +000067 <a href='problems.php?lang={$langfile}'><img style='border: none' src='warning.gif' width='16' height='16' /></a>
Solomon Peachybe29be12020-04-10 16:39:41 -040068 {/if}
Jonas Häggqvist31ca70b2010-01-31 00:44:07 +000069 </td>
70 <td>
71 {if file_exists('graphs/$langfile')}
72 <a href='graphs/{$langfile}.png'><img style='border: none' src='graph.png' width='16' height='16' /></a>
73 {/if}
74 </td>
75 <td>
Solomon Peachyb61343c2020-07-27 15:59:47 -040076 {if $language.percentage == 100 && $language.desc == 0 && $language.source == 0 && $language.dest == 0 && $language.voice == 0}
Jonas Häggqvist31ca70b2010-01-31 00:44:07 +000077 {$language.name}
78 {else}
79 <a href='edit.php?lang={$langfile}'>{$language.name}</a>
80 {/if}
81 </td>
82 <td>
Solomon Peachy18b71412020-07-08 21:11:27 -040083 <a href='//git.rockbox.org/cgit/rockbox.git/commit/?id={$language.last_update_rev}' title='{$language.last_update|date_format:"%c"}'>
Jonas Häggqvist31ca70b2010-01-31 00:44:07 +000084 {$language.last_update|simple_timesince}
85 </a>
86 </td>
87 <td><img title='{$language.percentage|string_format:"%.2f%%"}' src='graph.php?p={$language.percentage|string_format:"%.2f"}' /></td>
88 </td>
89 <td>{$language.missing}</td>
90 <td>{$language.desc}</td>
91 <td>{$language.source}</td>
Solomon Peachyb61343c2020-07-27 15:59:47 -040092 <td>{$language.dest}</td>
93 <td>{$language.voice}</td>
Solomon Peachy31d608a2021-09-29 11:21:28 -040094 <td class="{$englishclass}">{$language.voicedup + $language.destdup}</td>
Jonas Häggqvist31ca70b2010-01-31 00:44:07 +000095 </tr>
96 {/foreach}
97</table>
98
99<h2>Perform automated cleanup</h2>
100<p>Using the form below, it's possible to perform automated cleanups of a
101translation. Be aware though, that this might produce unwanted results in some
102cases, so you're required to check the results rather than blindly trusting
103them.</p>
104
105<form action="fixlang.php" method="GET">
106<table>
107 <tr>
108 <td>Language</td>
109 <td>
110 <select name="lang">
111 {foreach from=$languages item=language key=langfile}
112 {if $langfile != 'upload'}
113 <option value='{$langfile}'>{$language.name}</option>
114 {/if}
115 {/foreach}
116 </select>
117 </td>
118 </tr>
119 <tr>
120 <td>
121 <label for='voice' title='Copy translation to voice for phrases where string and voice are the same in the English language file'>Copy voice strings</label>
122 </td>
123 <td>
124 <input type='checkbox' id='voice', name='voice' title='Copy translation to voice for phrases where string and voice are the same in the English language file' />
125 </td>
126 </tr>
127 <tr>
128 <td>
129 <label for='empty' title='Make empty and "none" strings match the English language file'>Fix empty strings</label>
130 </td>
131 <td>
132 <input type='checkbox' id='empty', name='empty' title='Make empty and "none" strings match the English language file' />
133 </td>
134 </tr>
135 <tr>
136 <td>
137 <label for='sort' title='Sort phrases in the same order as the English language file'>Sort in English order</label>
138 </td>
139 <td>
140 <input type='checkbox' id='sort', name='sort' title='Sort phrases in the same order as the English language file' />
141 </td>
142 </tr>
143 <tr>
144 <td>
145 <label for='sendfile' title='Prompt to save the result on disk'>Save result as file</label>
146 </td>
147 <td>
148 <input type='checkbox' id='sendfile', name='sendfile' title='Prompt to save the result on disk' />
149 </td>
150 </tr>
151 <tr>
152 <td align="right" colspan="2"><input type="submit" /></td>
153 </tr>
154</table>
155</form>
156
157</table>
158
159{include file="footer.tpl"}