Version Description
- Support for Domain Path tag
- Added choice of location when language and package dirs both writable
- Fixed bug extracting domain from file names
- Child themes always have their own text domain and don't duplicate parent files
- Better plural support in po file editor
- Added experimental support for core packages
- Tested in WP 3.9.1
- Added Swedish translations
- Added Russian translations
- Added text filter clear button
Download this release
Release Info
Developer | timwhitlock |
Plugin | Loco Translate |
Version | 1.4.5 |
Comparing to | |
See all releases |
Code changes from version 1.4.4 to 1.4.5
- languages/loco-translate-de_DE.mo +0 -0
- languages/loco-translate-de_DE.po +159 -79
- languages/loco-translate-nl_BE.mo +0 -0
- languages/loco-translate-nl_BE.po +160 -78
- languages/loco-translate-nl_NL.mo +0 -0
- languages/loco-translate-nl_NL.po +160 -78
- languages/loco-translate-ru_RU.mo +0 -0
- languages/loco-translate-ru_RU.po +609 -0
- languages/loco-translate-sv_SE.mo +0 -0
- languages/loco-translate-sv_SE.po +606 -0
- languages/loco-translate-tr_TR.mo +0 -0
- languages/loco-translate-tr_TR.po +160 -80
- languages/loco-translate.pot +154 -74
- lib/build/gettext-compiled.php +2 -2
- lib/build/locales-compiled.php +2 -2
- lib/build/shell-compiled.php +1 -1
- lib/build/test.php +0 -107
- lib/loco-admin.php +45 -38
- lib/loco-boot.php +3 -1
- lib/loco-locales.php +66 -22
- lib/loco-packages.php +163 -72
- lib/test/bootstrap.php +45 -0
- lib/test/tests/CorePackageTest.php +44 -0
- lib/test/tests/FindFilesTest.php +41 -0
- lib/test/tests/GettextTest.php +82 -0
- lib/test/tests/LocalesTest.php +133 -0
- lib/test/tests/UtilsTest.php +31 -0
- loco.php +3 -1
- php/loco-posync.php +4 -0
- pub/css/loco-admin.css +1 -1
- pub/css/loco-legacy.css +5 -1
- pub/js/build/admin-poedit.js +148 -145
- pub/js/lang/dummy.php +34 -5
- pub/js/lang/loco-translate-de_DE.js +3 -3
- pub/js/lang/loco-translate-nl_BE.js +3 -3
- pub/js/lang/loco-translate-nl_NL.js +3 -3
- pub/js/lang/loco-translate-ru_RU.js +33 -0
- pub/js/lang/loco-translate-sv_SE.js +33 -0
- pub/js/lang/loco-translate-tr_TR.js +5 -5
- readme.txt +31 -7
- tpl/admin-list.tpl.php +3 -4
- tpl/admin-opts.tpl.php +16 -0
- tpl/admin-poedit.tpl.php +4 -2
- tpl/admin-poinit.tpl.php +18 -1
- tpl/admin-root.tpl.php +3 -3
languages/loco-translate-de_DE.mo
CHANGED
Binary file
|
languages/loco-translate-de_DE.po
CHANGED
@@ -3,8 +3,8 @@ msgstr ""
|
|
3 |
"Project-Id-Version: Loco Translate\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: Thu Jan 02 2014 17:30:57 GMT+0000 (GMT)\n"
|
6 |
-
"PO-Revision-Date:
|
7 |
-
"Last-Translator:
|
8 |
"Language-Team: \n"
|
9 |
"Language: German\n"
|
10 |
"Plural-Forms: nplurals=2; plural=n != 1\n"
|
@@ -14,26 +14,78 @@ msgstr ""
|
|
14 |
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
"X-Poedit-Basepath: .\n"
|
16 |
"X-Poedit-SearchPath-0: ..\n"
|
17 |
-
"X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;
|
18 |
-
"_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;
|
19 |
-
"_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;
|
20 |
-
"esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;
|
21 |
-
"comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
|
22 |
"X-Generator: Loco - https://localise.biz/\n"
|
23 |
"X-Loco-Target-Locale: de_DE"
|
24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
#. Translators: Bold text label in admin error messages
|
26 |
-
#: ../lib/loco-admin.php:15 ../pub/js/lang/dummy.php:
|
27 |
msgctxt "Message label"
|
28 |
msgid "Error"
|
29 |
msgstr "Fehler"
|
30 |
|
31 |
-
#: ../lib/loco-admin.php:24 ../pub/js/lang/dummy.php:
|
32 |
msgctxt "Message label"
|
33 |
msgid "Warning"
|
34 |
msgstr "Warnung"
|
35 |
|
36 |
-
#: ../lib/loco-admin.php:33 ../pub/js/lang/dummy.php:
|
37 |
msgctxt "Message label"
|
38 |
msgid "OK"
|
39 |
msgstr "OK"
|
@@ -46,167 +98,180 @@ msgstr "Zugriff verweigert"
|
|
46 |
msgid "Settings saved"
|
47 |
msgstr "Einstellungen gespeichert"
|
48 |
|
49 |
-
#: ../lib/loco-admin.php:
|
50 |
msgid "New PO file"
|
51 |
msgstr "Neue PO-Datei"
|
52 |
|
53 |
-
#: ../lib/loco-admin.php:
|
54 |
msgid "You must specify a valid locale for a new PO file"
|
55 |
msgstr "Du musst einen gültigen Pfad für die PO-Datei angeben"
|
56 |
|
57 |
-
#: ../lib/loco-admin.php:
|
58 |
msgid "No translatable strings found"
|
59 |
msgstr "Keine übersetzbaren Zeichenketten gefunden"
|
60 |
|
61 |
-
#: ../lib/loco-admin.php:
|
62 |
msgid "Cannot create a PO file."
|
63 |
msgstr "Erstellen der PO-Datei fehlgeschlagen."
|
64 |
|
65 |
-
#: ../lib/loco-admin.php:
|
|
|
66 |
msgid "PO file already exists with locale %s"
|
67 |
msgstr "PO-Datei existiert schon unter %s"
|
68 |
|
69 |
-
#: ../lib/loco-admin.php:
|
|
|
70 |
msgid "PO file used as template. This will be renamed to %s on first save"
|
71 |
msgstr ""
|
72 |
"PO-Datei wird als Template verwendet. Dies wird in %s beim ersten Speichern "
|
73 |
"umbenannt."
|
74 |
|
75 |
-
#: ../lib/loco-admin.php:
|
76 |
msgid ""
|
77 |
-
"File cannot be created automatically. Fix the file permissions or use
|
78 |
-
"instead of Save"
|
79 |
msgstr ""
|
80 |
"Datei kann nicht automatisch erstellt werden. Setze die Datei-Zugriffsrechte "
|
81 |
"oder benutze Download anstatt Speichern"
|
82 |
|
83 |
-
#: ../lib/loco-admin.php:
|
|
|
84 |
msgid "%s file is empty"
|
85 |
msgstr "Datei (%s) ist leer"
|
86 |
|
87 |
-
#: ../lib/loco-admin.php:
|
88 |
msgid "Run Sync to update from source code"
|
89 |
msgstr "Benutze Sync, um von der Quelle zu aktualisieren"
|
90 |
|
91 |
-
#: ../lib/loco-admin.php:
|
92 |
msgid "No strings could be extracted from source code"
|
93 |
msgstr "Es konnten keine Zeichenketten vom Quellcode extrahiert werden"
|
94 |
|
95 |
-
#: ../lib/loco-admin.php:
|
|
|
96 |
msgid "Run Sync to update from %s"
|
97 |
msgstr "Benutze Sync, um aus %s zu aktualisieren"
|
98 |
|
99 |
-
#: ../lib/loco-admin.php:
|
100 |
msgid "Source code has been modified, run Sync to update POT"
|
101 |
msgstr "Quellcode wurde geändert, benutze Sync um POT zu aktualisieren"
|
102 |
|
103 |
-
#: ../lib/loco-admin.php:
|
104 |
msgid "POT has been modified since PO file was saved, run Sync to update"
|
105 |
msgstr ""
|
106 |
-
"POT wurde aktualisiert bevor die PO-Datei gespeichert wurde. Benutze Sync
|
107 |
-
"Aktualisieren."
|
108 |
|
109 |
-
#: ../lib/loco-admin.php:
|
110 |
msgid "Bad file path"
|
111 |
msgstr "Falscher Dateipfad"
|
112 |
|
113 |
-
#: ../lib/loco-admin.php:
|
|
|
114 |
msgid "Empty or invalid %s file"
|
115 |
msgstr "Leere oder ungültige %s-Datei"
|
116 |
|
117 |
-
#: ../lib/loco-admin.php:
|
|
|
118 |
msgid "%s file has no header"
|
119 |
msgstr "%s-Datei hat keinen Header"
|
120 |
|
121 |
-
#: ../lib/loco-admin.php:
|
122 |
msgctxt "Add button"
|
123 |
msgid "New template"
|
124 |
msgstr "Neues Template"
|
125 |
|
126 |
-
#: ../lib/loco-admin.php:
|
127 |
msgctxt "Add button"
|
128 |
msgid "New language"
|
129 |
msgstr "Neue Sprache"
|
130 |
|
131 |
-
#: ../lib/loco-admin.php:
|
|
|
132 |
msgid "%s%% translated"
|
133 |
msgstr "%s%% übersetzt"
|
134 |
|
135 |
-
#: ../lib/loco-admin.php:
|
|
|
136 |
msgid "1 string"
|
137 |
msgid_plural "%s strings"
|
138 |
msgstr[0] "1 Zeichenkette"
|
139 |
msgstr[1] "%s Zeichenketten"
|
140 |
|
141 |
-
#: ../lib/loco-admin.php:
|
|
|
142 |
msgid "%s fuzzy"
|
143 |
msgstr "%s undeutlich"
|
144 |
|
145 |
-
#: ../lib/loco-admin.php:
|
|
|
146 |
msgid "%s untranslated"
|
147 |
msgstr "%s nicht übersetzt"
|
148 |
|
149 |
-
#: ../lib/loco-admin.php:
|
150 |
msgid "Failed to compile MO file with built-in compiler"
|
151 |
msgstr "Kompilieren der MO-Datei mit dem internen Kompilierer fehlgeschlagen."
|
152 |
|
153 |
-
#: ../lib/loco-admin.php:
|
154 |
msgid "Loco, Translation Management"
|
155 |
msgstr "Loco, Translation Management"
|
156 |
|
157 |
-
#: ../lib/loco-admin.php:
|
158 |
msgid "Manage translations"
|
159 |
msgstr "Übersetzungen verwalten"
|
160 |
|
161 |
-
#: ../lib/loco-admin.php:
|
162 |
msgid "Translation options"
|
163 |
msgstr "Übersetzungsoptionen"
|
164 |
|
165 |
-
#: ../lib/loco-admin.php:
|
166 |
msgid "Loco Translate"
|
167 |
msgstr "Loco Translate"
|
168 |
|
169 |
-
#: ../lib/loco-admin.php:
|
|
|
|
|
170 |
msgid "Settings"
|
171 |
msgstr "Einstellungen"
|
172 |
|
173 |
-
#: ../lib/loco-admin.php:
|
174 |
msgid "File download failed"
|
175 |
msgstr "Dateidownload ist fehlgeschlagen"
|
176 |
|
177 |
-
#: ../lib/loco-locales.php:
|
178 |
msgid "Unknown language"
|
179 |
msgstr "Unbekannte Sprache"
|
180 |
|
181 |
-
#: ../lib/loco-packages.php:
|
182 |
msgid "Some files not writable"
|
183 |
msgstr "Einige Dateien nicht schreibbar"
|
184 |
|
185 |
-
#: ../lib/loco-packages.php:
|
186 |
msgid "Some files missing"
|
187 |
msgstr "Einige Dateien fehlen"
|
188 |
|
189 |
-
#: ../lib/loco-packages.php:
|
|
|
190 |
msgid "\"%s\" folder not writable"
|
191 |
msgstr "Ordner \"%s\" nicht schreibbar"
|
192 |
|
193 |
-
#: ../lib/loco-packages.php:
|
194 |
msgid "POT file not writable"
|
195 |
msgstr "POT-Datei nicht schreibbar"
|
196 |
|
197 |
-
#: ../lib/loco-packages.php:
|
198 |
msgid "PO file not writable"
|
199 |
msgstr "PO-Datei nicht schreibbar"
|
200 |
|
201 |
-
#: ../lib/loco-packages.php:
|
202 |
msgid "MO file not writable"
|
203 |
msgstr "MO-Datei nicht schreibbar"
|
204 |
|
205 |
-
#: ../lib/loco-packages.php:
|
206 |
msgid "MO file not found"
|
207 |
msgstr "MO-Datei nicht gefunden"
|
208 |
|
209 |
-
#: ../lib/loco-packages.php:
|
210 |
msgid "Folder not writable"
|
211 |
msgstr "Ordner nicht schreibbar"
|
212 |
|
@@ -215,6 +280,7 @@ msgid "User does not have permission to manage translations"
|
|
215 |
msgstr "Benutzer hat keine Rechte die Übersetzungen zu verwalten"
|
216 |
|
217 |
#: ../php/loco-download.php:75 ../php/loco-posave.php:121
|
|
|
218 |
msgid "Failed to compile MO file with %s, check your settings"
|
219 |
msgstr "Kompilieren der MO-Datei fehlgeschlagen. Bitte prüfe Deine Einstellungen"
|
220 |
|
@@ -223,41 +289,46 @@ msgid "Invalid data posted to server"
|
|
223 |
msgstr "Ungültige Daten zum Server gesendet"
|
224 |
|
225 |
#: ../php/loco-posave.php:23 ../php/loco-posync.php:22
|
|
|
226 |
msgid "Package not found called %s"
|
227 |
msgstr "Paket %s nicht gefunden"
|
228 |
|
229 |
#: ../php/loco-posave.php:58
|
|
|
230 |
msgid ""
|
231 |
"Web server cannot create backups in \"%s\". Fix file permissions or disable "
|
232 |
"backups in settings"
|
233 |
msgstr ""
|
234 |
-
"Webserver kann keine Sicherungen in \"%s\" anlegen. Setze die Datei-
|
235 |
-
"oder deaktiviere die Sicherungen in den Einstellungen"
|
236 |
|
237 |
#: ../php/loco-posave.php:66
|
|
|
238 |
msgid ""
|
239 |
-
"Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or
|
240 |
-
"it manually."
|
241 |
msgstr ""
|
242 |
"Webserver kann Ordner \"%s\" nicht in \"%s\" erstellen. Setze die Zugriffsrechte "
|
243 |
"oder erstelle den Ordner selbst."
|
244 |
|
245 |
#: ../php/loco-posave.php:69
|
|
|
246 |
msgid ""
|
247 |
-
"Web server cannot create files in the \"%s\" directory. Fix file permissions
|
248 |
-
"use the download function."
|
249 |
msgstr ""
|
250 |
"Webserver kann keine Dateien im Ordner \"%s\" erstellen. Setze die Datei-"
|
251 |
"Zugriffsrechte oder benutze Download anstatt Speichern."
|
252 |
|
253 |
#: ../php/loco-posave.php:81
|
|
|
254 |
msgid ""
|
255 |
-
"%s file is not writable by the web server. Fix file permissions or download
|
256 |
-
"copy to \"%s/%s\"."
|
257 |
msgstr ""
|
258 |
"Datei %s ist vom Webserver nicht schreibbar. Setze die Datei-Zugriffsrechte "
|
259 |
-
"oder benutze Download anstatt Speichern und speichere die Datei auf dem
|
260 |
-
"unter \"%s/%s\" ab."
|
261 |
|
262 |
#: ../php/loco-posave.php:102
|
263 |
msgid "Cannot create MO file"
|
@@ -271,59 +342,64 @@ msgstr "Überschreiben der MO-Datei fehlgeschlagen"
|
|
271 |
msgid "Failed to write MO file"
|
272 |
msgstr "Fehler beim Schreiben der MO-Datei"
|
273 |
|
274 |
-
#: ../php/loco-posync.php:
|
275 |
msgid "No strings could be extracted from source files"
|
276 |
msgstr "Es konnten keine Zeichenketten aus der Quelle extrahiert werden"
|
277 |
|
278 |
-
#: ../pub/js/lang/dummy.php:
|
279 |
msgid "Unknown error"
|
280 |
msgstr "Unbekannter Fehler"
|
281 |
|
282 |
-
#: ../pub/js/lang/dummy.php:
|
283 |
msgid "PO file saved"
|
284 |
msgstr "PO-Datei gespeichert"
|
285 |
|
286 |
-
#: ../pub/js/lang/dummy.php:
|
287 |
msgid "and MO file compiled"
|
288 |
msgstr "und MO-Datei kompiliert"
|
289 |
|
290 |
-
#: ../pub/js/lang/dummy.php:
|
|
|
291 |
msgid "Merged from %s"
|
292 |
msgstr "Aus %s zusammengeführt"
|
293 |
|
294 |
-
#: ../pub/js/lang/dummy.php:
|
295 |
msgid "Merged from source code"
|
296 |
msgstr "Aus Quelle zusammengeführt"
|
297 |
|
298 |
-
#: ../pub/js/lang/dummy.php:
|
|
|
299 |
msgid "Already up to date with %s"
|
300 |
msgstr "Bereits auf dem aktuellen Stand mit %s"
|
301 |
|
302 |
-
#: ../pub/js/lang/dummy.php:
|
303 |
msgid "Already up to date with source code"
|
304 |
msgstr "Bereits mit der Quelle auf dem aktuellen Stand"
|
305 |
|
306 |
-
#: ../pub/js/lang/dummy.php:
|
|
|
307 |
msgid "1 new string added"
|
308 |
msgid_plural "%s new strings added"
|
309 |
msgstr[0] "1 neue Zeichenkette hinzugefügt"
|
310 |
msgstr[1] "%s neue Zeichenketten hinzugefügt"
|
311 |
|
312 |
-
#: ../pub/js/lang/dummy.php:
|
|
|
313 |
msgid "1 obsolete string removed"
|
314 |
msgid_plural "%s obsolete strings removed"
|
315 |
msgstr[0] "1 veraltete Zeichenkette entfernt"
|
316 |
msgstr[1] "%s veraltete Zeichenketten entfernt"
|
317 |
|
318 |
-
#: ../pub/js/lang/dummy.php:
|
319 |
msgid "Your changes will be lost if you continue without saving"
|
320 |
msgstr "Deine Änderungen gehen verloren, wenn du fortsetzt ohne zu Speichern"
|
321 |
|
322 |
-
#: ../pub/js/lang/dummy.php:
|
323 |
msgid "Translation"
|
324 |
msgstr "Übersetzung"
|
325 |
|
326 |
-
#: ../tpl/admin-fscheck.tpl.php:6 ../tpl/admin-opts.tpl.php:6 ../tpl/admin-poedit.
|
|
|
327 |
msgid "Packages"
|
328 |
msgstr "Pakete"
|
329 |
|
@@ -332,6 +408,7 @@ msgid "File check"
|
|
332 |
msgstr "Dateiprüfung"
|
333 |
|
334 |
#: ../tpl/admin-fscheck.tpl.php:17
|
|
|
335 |
msgid "File system permissions for %s"
|
336 |
msgstr "Dateisystem-Rechte für %s"
|
337 |
|
@@ -339,7 +416,7 @@ msgstr "Dateisystem-Rechte für %s"
|
|
339 |
msgid "Back"
|
340 |
msgstr "Zurück"
|
341 |
|
342 |
-
#: ../tpl/admin-fscheck.tpl.php:41 ../tpl/admin-opts.tpl.php:
|
343 |
msgid "Get help"
|
344 |
msgstr "Hilfe erhalten"
|
345 |
|
@@ -364,6 +441,7 @@ msgid "File permissions"
|
|
364 |
msgstr "Dateizugriffsrechte"
|
365 |
|
366 |
#: ../tpl/admin-list.tpl.php:43
|
|
|
367 |
msgid "1 language"
|
368 |
msgid_plural "%u languages"
|
369 |
msgstr[0] "1 Sprache"
|
@@ -374,7 +452,7 @@ msgctxt "Modified time"
|
|
374 |
msgid "Updated"
|
375 |
msgstr "Aktualisiert"
|
376 |
|
377 |
-
#: ../tpl/admin-list.tpl.php:
|
378 |
msgid "OK"
|
379 |
msgstr "OK"
|
380 |
|
@@ -418,7 +496,7 @@ msgstr "PO-Datei sichern"
|
|
418 |
msgid "Number of backups to keep of each file:"
|
419 |
msgstr "Anzahl der Sicherungen pro Datei"
|
420 |
|
421 |
-
#: ../tpl/admin-opts.tpl.php:
|
422 |
msgid "Save settings"
|
423 |
msgstr "Einstellungen speichern"
|
424 |
|
@@ -484,6 +562,7 @@ msgid "Help"
|
|
484 |
msgstr "Hilfe"
|
485 |
|
486 |
#: ../tpl/admin-poinit.tpl.php:21
|
|
|
487 |
msgid "Initialize new translations in %s"
|
488 |
msgstr "Initialisiere neue Übersetzung in %s"
|
489 |
|
@@ -496,7 +575,7 @@ msgctxt "Form label"
|
|
496 |
msgid "or enter any language code"
|
497 |
msgstr "oder trage den Sprach-Code ein"
|
498 |
|
499 |
-
#: ../tpl/admin-poinit.tpl.php:
|
500 |
msgctxt "Submit button"
|
501 |
msgid "Start translating"
|
502 |
msgstr "Starte Übersetzung"
|
@@ -506,6 +585,7 @@ msgid "New version available"
|
|
506 |
msgstr "Neue Version verfügbar"
|
507 |
|
508 |
#: ../tpl/admin-root.tpl.php:21
|
|
|
509 |
msgid "Upgrade to version %s of Loco Translate"
|
510 |
msgstr "Bitte upgrade Loco Translate auf Version %s"
|
511 |
|
3 |
"Project-Id-Version: Loco Translate\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: Thu Jan 02 2014 17:30:57 GMT+0000 (GMT)\n"
|
6 |
+
"PO-Revision-Date: Mon Jun 09 2014 17:13:27 GMT+0100 (BST)\n"
|
7 |
+
"Last-Translator: Tim <support@localise.biz>\n"
|
8 |
"Language-Team: \n"
|
9 |
"Language: German\n"
|
10 |
"Plural-Forms: nplurals=2; plural=n != 1\n"
|
14 |
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
"X-Poedit-Basepath: .\n"
|
16 |
"X-Poedit-SearchPath-0: ..\n"
|
17 |
+
"X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
|
18 |
+
"__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
|
19 |
+
"_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
|
20 |
+
"esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
|
21 |
+
"esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
|
22 |
"X-Generator: Loco - https://localise.biz/\n"
|
23 |
"X-Loco-Target-Locale: de_DE"
|
24 |
|
25 |
+
#: ../lib/loco-packages.php:476
|
26 |
+
msgid "Folder not found"
|
27 |
+
msgstr ""
|
28 |
+
|
29 |
+
#: ../php/loco-posync.php:47
|
30 |
+
msgid "No source files in this package, nothing to sync"
|
31 |
+
msgstr ""
|
32 |
+
|
33 |
+
#. label for the window pane holding native translation
|
34 |
+
#: ../pub/js/lang/dummy.php:25
|
35 |
+
msgctxt "Editor pane"
|
36 |
+
msgid "Source text"
|
37 |
+
msgstr ""
|
38 |
+
|
39 |
+
#. where %s is the language, e.g French translation
|
40 |
+
#: ../pub/js/lang/dummy.php:27
|
41 |
+
#, php-format
|
42 |
+
msgctxt "Editor pane"
|
43 |
+
msgid "%s translation"
|
44 |
+
msgstr ""
|
45 |
+
|
46 |
+
#. label for the window pane holding translator comments
|
47 |
+
#: ../pub/js/lang/dummy.php:29
|
48 |
+
msgctxt "Editor pane"
|
49 |
+
msgid "Comments"
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
+
#. label for the window pane holding message context
|
53 |
+
#: ../pub/js/lang/dummy.php:31
|
54 |
+
msgctxt "Editor pane"
|
55 |
+
msgid "Context"
|
56 |
+
msgstr ""
|
57 |
+
|
58 |
+
#: ../tpl/admin-opts.tpl.php:77 ../tpl/admin-opts.tpl.php:81
|
59 |
+
msgid "Experimental features"
|
60 |
+
msgstr ""
|
61 |
+
|
62 |
+
#: ../tpl/admin-opts.tpl.php:86
|
63 |
+
msgid "Enable Wordpress core translations"
|
64 |
+
msgstr ""
|
65 |
+
|
66 |
+
#: ../tpl/admin-poinit.tpl.php:58
|
67 |
+
#, php-format
|
68 |
+
msgctxt "Form label"
|
69 |
+
msgid "create in <code>%s</code>"
|
70 |
+
msgstr ""
|
71 |
+
|
72 |
+
#: ../tpl/admin-poinit.tpl.php:63
|
73 |
+
msgctxt "Form label"
|
74 |
+
msgid "create in global languages directory"
|
75 |
+
msgstr ""
|
76 |
+
|
77 |
#. Translators: Bold text label in admin error messages
|
78 |
+
#: ../lib/loco-admin.php:15 ../pub/js/lang/dummy.php:8
|
79 |
msgctxt "Message label"
|
80 |
msgid "Error"
|
81 |
msgstr "Fehler"
|
82 |
|
83 |
+
#: ../lib/loco-admin.php:24 ../pub/js/lang/dummy.php:7
|
84 |
msgctxt "Message label"
|
85 |
msgid "Warning"
|
86 |
msgstr "Warnung"
|
87 |
|
88 |
+
#: ../lib/loco-admin.php:33 ../pub/js/lang/dummy.php:6
|
89 |
msgctxt "Message label"
|
90 |
msgid "OK"
|
91 |
msgstr "OK"
|
98 |
msgid "Settings saved"
|
99 |
msgstr "Einstellungen gespeichert"
|
100 |
|
101 |
+
#: ../lib/loco-admin.php:133
|
102 |
msgid "New PO file"
|
103 |
msgstr "Neue PO-Datei"
|
104 |
|
105 |
+
#: ../lib/loco-admin.php:240
|
106 |
msgid "You must specify a valid locale for a new PO file"
|
107 |
msgstr "Du musst einen gültigen Pfad für die PO-Datei angeben"
|
108 |
|
109 |
+
#: ../lib/loco-admin.php:265 ../lib/loco-admin.php:367
|
110 |
msgid "No translatable strings found"
|
111 |
msgstr "Keine übersetzbaren Zeichenketten gefunden"
|
112 |
|
113 |
+
#: ../lib/loco-admin.php:265
|
114 |
msgid "Cannot create a PO file."
|
115 |
msgstr "Erstellen der PO-Datei fehlgeschlagen."
|
116 |
|
117 |
+
#: ../lib/loco-admin.php:272
|
118 |
+
#, php-format
|
119 |
msgid "PO file already exists with locale %s"
|
120 |
msgstr "PO-Datei existiert schon unter %s"
|
121 |
|
122 |
+
#: ../lib/loco-admin.php:313
|
123 |
+
#, php-format
|
124 |
msgid "PO file used as template. This will be renamed to %s on first save"
|
125 |
msgstr ""
|
126 |
"PO-Datei wird als Template verwendet. Dies wird in %s beim ersten Speichern "
|
127 |
"umbenannt."
|
128 |
|
129 |
+
#: ../lib/loco-admin.php:337
|
130 |
msgid ""
|
131 |
+
"File cannot be created automatically. Fix the file permissions or use "
|
132 |
+
"Download instead of Save"
|
133 |
msgstr ""
|
134 |
"Datei kann nicht automatisch erstellt werden. Setze die Datei-Zugriffsrechte "
|
135 |
"oder benutze Download anstatt Speichern"
|
136 |
|
137 |
+
#: ../lib/loco-admin.php:346 ../lib/loco-admin.php:355
|
138 |
+
#, php-format
|
139 |
msgid "%s file is empty"
|
140 |
msgstr "Datei (%s) ist leer"
|
141 |
|
142 |
+
#: ../lib/loco-admin.php:347 ../lib/loco-admin.php:362
|
143 |
msgid "Run Sync to update from source code"
|
144 |
msgstr "Benutze Sync, um von der Quelle zu aktualisieren"
|
145 |
|
146 |
+
#: ../lib/loco-admin.php:351
|
147 |
msgid "No strings could be extracted from source code"
|
148 |
msgstr "Es konnten keine Zeichenketten vom Quellcode extrahiert werden"
|
149 |
|
150 |
+
#: ../lib/loco-admin.php:358
|
151 |
+
#, php-format
|
152 |
msgid "Run Sync to update from %s"
|
153 |
msgstr "Benutze Sync, um aus %s zu aktualisieren"
|
154 |
|
155 |
+
#: ../lib/loco-admin.php:377
|
156 |
msgid "Source code has been modified, run Sync to update POT"
|
157 |
msgstr "Quellcode wurde geändert, benutze Sync um POT zu aktualisieren"
|
158 |
|
159 |
+
#: ../lib/loco-admin.php:381
|
160 |
msgid "POT has been modified since PO file was saved, run Sync to update"
|
161 |
msgstr ""
|
162 |
+
"POT wurde aktualisiert bevor die PO-Datei gespeichert wurde. Benutze Sync "
|
163 |
+
"zum Aktualisieren."
|
164 |
|
165 |
+
#: ../lib/loco-admin.php:468
|
166 |
msgid "Bad file path"
|
167 |
msgstr "Falscher Dateipfad"
|
168 |
|
169 |
+
#: ../lib/loco-admin.php:692
|
170 |
+
#, php-format
|
171 |
msgid "Empty or invalid %s file"
|
172 |
msgstr "Leere oder ungültige %s-Datei"
|
173 |
|
174 |
+
#: ../lib/loco-admin.php:696
|
175 |
+
#, php-format
|
176 |
msgid "%s file has no header"
|
177 |
msgstr "%s-Datei hat keinen Header"
|
178 |
|
179 |
+
#: ../lib/loco-admin.php:828
|
180 |
msgctxt "Add button"
|
181 |
msgid "New template"
|
182 |
msgstr "Neues Template"
|
183 |
|
184 |
+
#: ../lib/loco-admin.php:847
|
185 |
msgctxt "Add button"
|
186 |
msgid "New language"
|
187 |
msgstr "Neue Sprache"
|
188 |
|
189 |
+
#: ../lib/loco-admin.php:886
|
190 |
+
#, php-format
|
191 |
msgid "%s%% translated"
|
192 |
msgstr "%s%% übersetzt"
|
193 |
|
194 |
+
#: ../lib/loco-admin.php:886
|
195 |
+
#, php-format
|
196 |
msgid "1 string"
|
197 |
msgid_plural "%s strings"
|
198 |
msgstr[0] "1 Zeichenkette"
|
199 |
msgstr[1] "%s Zeichenketten"
|
200 |
|
201 |
+
#: ../lib/loco-admin.php:889
|
202 |
+
#, php-format
|
203 |
msgid "%s fuzzy"
|
204 |
msgstr "%s undeutlich"
|
205 |
|
206 |
+
#: ../lib/loco-admin.php:892
|
207 |
+
#, php-format
|
208 |
msgid "%s untranslated"
|
209 |
msgstr "%s nicht übersetzt"
|
210 |
|
211 |
+
#: ../lib/loco-admin.php:934
|
212 |
msgid "Failed to compile MO file with built-in compiler"
|
213 |
msgstr "Kompilieren der MO-Datei mit dem internen Kompilierer fehlgeschlagen."
|
214 |
|
215 |
+
#: ../lib/loco-admin.php:977 ../tpl/admin-nav.tpl.php:21
|
216 |
msgid "Loco, Translation Management"
|
217 |
msgstr "Loco, Translation Management"
|
218 |
|
219 |
+
#: ../lib/loco-admin.php:978 ../lib/loco-admin.php:1009
|
220 |
msgid "Manage translations"
|
221 |
msgstr "Übersetzungen verwalten"
|
222 |
|
223 |
+
#: ../lib/loco-admin.php:979
|
224 |
msgid "Translation options"
|
225 |
msgstr "Übersetzungsoptionen"
|
226 |
|
227 |
+
#: ../lib/loco-admin.php:986
|
228 |
msgid "Loco Translate"
|
229 |
msgstr "Loco Translate"
|
230 |
|
231 |
+
#: ../lib/loco-admin.php:1010 ../tpl/admin-fscheck.tpl.php:7 ../tpl/admin-opts.
|
232 |
+
#: tpl.php:7 ../tpl/admin-poedit.tpl.php:8 ../tpl/admin-poinit.tpl.php:8 ..
|
233 |
+
#: tpl/admin-root.tpl.php:7
|
234 |
msgid "Settings"
|
235 |
msgstr "Einstellungen"
|
236 |
|
237 |
+
#: ../lib/loco-admin.php:1034
|
238 |
msgid "File download failed"
|
239 |
msgstr "Dateidownload ist fehlgeschlagen"
|
240 |
|
241 |
+
#: ../lib/loco-locales.php:65
|
242 |
msgid "Unknown language"
|
243 |
msgstr "Unbekannte Sprache"
|
244 |
|
245 |
+
#: ../lib/loco-packages.php:423 ../lib/loco-packages.php:430
|
246 |
msgid "Some files not writable"
|
247 |
msgstr "Einige Dateien nicht schreibbar"
|
248 |
|
249 |
+
#: ../lib/loco-packages.php:433
|
250 |
msgid "Some files missing"
|
251 |
msgstr "Einige Dateien fehlen"
|
252 |
|
253 |
+
#: ../lib/loco-packages.php:439 ../lib/loco-packages.php:443
|
254 |
+
#, php-format
|
255 |
msgid "\"%s\" folder not writable"
|
256 |
msgstr "Ordner \"%s\" nicht schreibbar"
|
257 |
|
258 |
+
#: ../lib/loco-packages.php:464
|
259 |
msgid "POT file not writable"
|
260 |
msgstr "POT-Datei nicht schreibbar"
|
261 |
|
262 |
+
#: ../lib/loco-packages.php:469
|
263 |
msgid "PO file not writable"
|
264 |
msgstr "PO-Datei nicht schreibbar"
|
265 |
|
266 |
+
#: ../lib/loco-packages.php:471
|
267 |
msgid "MO file not writable"
|
268 |
msgstr "MO-Datei nicht schreibbar"
|
269 |
|
270 |
+
#: ../lib/loco-packages.php:471
|
271 |
msgid "MO file not found"
|
272 |
msgstr "MO-Datei nicht gefunden"
|
273 |
|
274 |
+
#: ../lib/loco-packages.php:476
|
275 |
msgid "Folder not writable"
|
276 |
msgstr "Ordner nicht schreibbar"
|
277 |
|
280 |
msgstr "Benutzer hat keine Rechte die Übersetzungen zu verwalten"
|
281 |
|
282 |
#: ../php/loco-download.php:75 ../php/loco-posave.php:121
|
283 |
+
#, php-format
|
284 |
msgid "Failed to compile MO file with %s, check your settings"
|
285 |
msgstr "Kompilieren der MO-Datei fehlgeschlagen. Bitte prüfe Deine Einstellungen"
|
286 |
|
289 |
msgstr "Ungültige Daten zum Server gesendet"
|
290 |
|
291 |
#: ../php/loco-posave.php:23 ../php/loco-posync.php:22
|
292 |
+
#, php-format
|
293 |
msgid "Package not found called %s"
|
294 |
msgstr "Paket %s nicht gefunden"
|
295 |
|
296 |
#: ../php/loco-posave.php:58
|
297 |
+
#, php-format
|
298 |
msgid ""
|
299 |
"Web server cannot create backups in \"%s\". Fix file permissions or disable "
|
300 |
"backups in settings"
|
301 |
msgstr ""
|
302 |
+
"Webserver kann keine Sicherungen in \"%s\" anlegen. Setze die Datei-"
|
303 |
+
"Zugriffrechte oder deaktiviere die Sicherungen in den Einstellungen"
|
304 |
|
305 |
#: ../php/loco-posave.php:66
|
306 |
+
#, php-format
|
307 |
msgid ""
|
308 |
+
"Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or "
|
309 |
+
"create it manually."
|
310 |
msgstr ""
|
311 |
"Webserver kann Ordner \"%s\" nicht in \"%s\" erstellen. Setze die Zugriffsrechte "
|
312 |
"oder erstelle den Ordner selbst."
|
313 |
|
314 |
#: ../php/loco-posave.php:69
|
315 |
+
#, php-format
|
316 |
msgid ""
|
317 |
+
"Web server cannot create files in the \"%s\" directory. Fix file permissions "
|
318 |
+
"or use the download function."
|
319 |
msgstr ""
|
320 |
"Webserver kann keine Dateien im Ordner \"%s\" erstellen. Setze die Datei-"
|
321 |
"Zugriffsrechte oder benutze Download anstatt Speichern."
|
322 |
|
323 |
#: ../php/loco-posave.php:81
|
324 |
+
#, php-format
|
325 |
msgid ""
|
326 |
+
"%s file is not writable by the web server. Fix file permissions or download "
|
327 |
+
"and copy to \"%s/%s\"."
|
328 |
msgstr ""
|
329 |
"Datei %s ist vom Webserver nicht schreibbar. Setze die Datei-Zugriffsrechte "
|
330 |
+
"oder benutze Download anstatt Speichern und speichere die Datei auf dem "
|
331 |
+
"Server unter \"%s/%s\" ab."
|
332 |
|
333 |
#: ../php/loco-posave.php:102
|
334 |
msgid "Cannot create MO file"
|
342 |
msgid "Failed to write MO file"
|
343 |
msgstr "Fehler beim Schreiben der MO-Datei"
|
344 |
|
345 |
+
#: ../php/loco-posync.php:57
|
346 |
msgid "No strings could be extracted from source files"
|
347 |
msgstr "Es konnten keine Zeichenketten aus der Quelle extrahiert werden"
|
348 |
|
349 |
+
#: ../pub/js/lang/dummy.php:9
|
350 |
msgid "Unknown error"
|
351 |
msgstr "Unbekannter Fehler"
|
352 |
|
353 |
+
#: ../pub/js/lang/dummy.php:10
|
354 |
msgid "PO file saved"
|
355 |
msgstr "PO-Datei gespeichert"
|
356 |
|
357 |
+
#: ../pub/js/lang/dummy.php:11
|
358 |
msgid "and MO file compiled"
|
359 |
msgstr "und MO-Datei kompiliert"
|
360 |
|
361 |
+
#: ../pub/js/lang/dummy.php:12
|
362 |
+
#, php-format
|
363 |
msgid "Merged from %s"
|
364 |
msgstr "Aus %s zusammengeführt"
|
365 |
|
366 |
+
#: ../pub/js/lang/dummy.php:13
|
367 |
msgid "Merged from source code"
|
368 |
msgstr "Aus Quelle zusammengeführt"
|
369 |
|
370 |
+
#: ../pub/js/lang/dummy.php:14
|
371 |
+
#, php-format
|
372 |
msgid "Already up to date with %s"
|
373 |
msgstr "Bereits auf dem aktuellen Stand mit %s"
|
374 |
|
375 |
+
#: ../pub/js/lang/dummy.php:15
|
376 |
msgid "Already up to date with source code"
|
377 |
msgstr "Bereits mit der Quelle auf dem aktuellen Stand"
|
378 |
|
379 |
+
#: ../pub/js/lang/dummy.php:16
|
380 |
+
#, php-format
|
381 |
msgid "1 new string added"
|
382 |
msgid_plural "%s new strings added"
|
383 |
msgstr[0] "1 neue Zeichenkette hinzugefügt"
|
384 |
msgstr[1] "%s neue Zeichenketten hinzugefügt"
|
385 |
|
386 |
+
#: ../pub/js/lang/dummy.php:17
|
387 |
+
#, php-format
|
388 |
msgid "1 obsolete string removed"
|
389 |
msgid_plural "%s obsolete strings removed"
|
390 |
msgstr[0] "1 veraltete Zeichenkette entfernt"
|
391 |
msgstr[1] "%s veraltete Zeichenketten entfernt"
|
392 |
|
393 |
+
#: ../pub/js/lang/dummy.php:18
|
394 |
msgid "Your changes will be lost if you continue without saving"
|
395 |
msgstr "Deine Änderungen gehen verloren, wenn du fortsetzt ohne zu Speichern"
|
396 |
|
397 |
+
#: ../pub/js/lang/dummy.php:37
|
398 |
msgid "Translation"
|
399 |
msgstr "Übersetzung"
|
400 |
|
401 |
+
#: ../tpl/admin-fscheck.tpl.php:6 ../tpl/admin-opts.tpl.php:6 ../tpl/admin-poedit.
|
402 |
+
#: tpl.php:6 ../tpl/admin-poinit.tpl.php:6 ../tpl/admin-root.tpl.php:6
|
403 |
msgid "Packages"
|
404 |
msgstr "Pakete"
|
405 |
|
408 |
msgstr "Dateiprüfung"
|
409 |
|
410 |
#: ../tpl/admin-fscheck.tpl.php:17
|
411 |
+
#, php-format
|
412 |
msgid "File system permissions for %s"
|
413 |
msgstr "Dateisystem-Rechte für %s"
|
414 |
|
416 |
msgid "Back"
|
417 |
msgstr "Zurück"
|
418 |
|
419 |
+
#: ../tpl/admin-fscheck.tpl.php:41 ../tpl/admin-opts.tpl.php:96
|
420 |
msgid "Get help"
|
421 |
msgstr "Hilfe erhalten"
|
422 |
|
441 |
msgstr "Dateizugriffsrechte"
|
442 |
|
443 |
#: ../tpl/admin-list.tpl.php:43
|
444 |
+
#, php-format
|
445 |
msgid "1 language"
|
446 |
msgid_plural "%u languages"
|
447 |
msgstr[0] "1 Sprache"
|
452 |
msgid "Updated"
|
453 |
msgstr "Aktualisiert"
|
454 |
|
455 |
+
#: ../tpl/admin-list.tpl.php:97
|
456 |
msgid "OK"
|
457 |
msgstr "OK"
|
458 |
|
496 |
msgid "Number of backups to keep of each file:"
|
497 |
msgstr "Anzahl der Sicherungen pro Datei"
|
498 |
|
499 |
+
#: ../tpl/admin-opts.tpl.php:95
|
500 |
msgid "Save settings"
|
501 |
msgstr "Einstellungen speichern"
|
502 |
|
562 |
msgstr "Hilfe"
|
563 |
|
564 |
#: ../tpl/admin-poinit.tpl.php:21
|
565 |
+
#, php-format
|
566 |
msgid "Initialize new translations in %s"
|
567 |
msgstr "Initialisiere neue Übersetzung in %s"
|
568 |
|
575 |
msgid "or enter any language code"
|
576 |
msgstr "oder trage den Sprach-Code ein"
|
577 |
|
578 |
+
#: ../tpl/admin-poinit.tpl.php:68
|
579 |
msgctxt "Submit button"
|
580 |
msgid "Start translating"
|
581 |
msgstr "Starte Übersetzung"
|
585 |
msgstr "Neue Version verfügbar"
|
586 |
|
587 |
#: ../tpl/admin-root.tpl.php:21
|
588 |
+
#, php-format
|
589 |
msgid "Upgrade to version %s of Loco Translate"
|
590 |
msgstr "Bitte upgrade Loco Translate auf Version %s"
|
591 |
|
languages/loco-translate-nl_BE.mo
CHANGED
Binary file
|
languages/loco-translate-nl_BE.po
CHANGED
@@ -3,8 +3,8 @@ msgstr ""
|
|
3 |
"Project-Id-Version: Loco Translate\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: Thu Jan 02 2014 17:30:57 GMT+0000 (GMT)\n"
|
6 |
-
"PO-Revision-Date:
|
7 |
-
"Last-Translator:
|
8 |
"Language-Team: \n"
|
9 |
"Language: Dutch (Belgium)\n"
|
10 |
"Plural-Forms: nplurals=2; plural=n != 1\n"
|
@@ -14,11 +14,11 @@ msgstr ""
|
|
14 |
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
"X-Loco-Target-Locale: nl_BE\n"
|
16 |
"X-Generator: Loco - https://localise.biz/\n"
|
17 |
-
"X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;
|
18 |
-
"_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;
|
19 |
-
"_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;
|
20 |
-
"esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;
|
21 |
-
"comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
|
22 |
"X-Poedit-Basepath: .\n"
|
23 |
"X-Poedit-SearchPath-0: .."
|
24 |
|
@@ -30,71 +30,83 @@ msgstr ""
|
|
30 |
msgid "Settings saved"
|
31 |
msgstr ""
|
32 |
|
33 |
-
#: ../lib/loco-admin.php:
|
|
|
34 |
msgid "PO file used as template. This will be renamed to %s on first save"
|
35 |
msgstr ""
|
36 |
|
37 |
-
#: ../lib/loco-admin.php:
|
|
|
38 |
msgid "Empty or invalid %s file"
|
39 |
msgstr ""
|
40 |
|
41 |
-
#: ../lib/loco-admin.php:
|
|
|
42 |
msgid "%s file has no header"
|
43 |
msgstr ""
|
44 |
|
45 |
-
#: ../lib/loco-admin.php:
|
46 |
msgid "Failed to compile MO file with built-in compiler"
|
47 |
msgstr ""
|
48 |
|
49 |
-
#: ../lib/loco-admin.php:
|
50 |
msgid "Translation options"
|
51 |
msgstr ""
|
52 |
|
53 |
-
#: ../lib/loco-admin.php:
|
54 |
msgid "Loco Translate"
|
55 |
msgstr ""
|
56 |
|
57 |
-
#: ../lib/loco-admin.php:
|
|
|
|
|
58 |
msgid "Settings"
|
59 |
msgstr ""
|
60 |
|
61 |
-
#: ../lib/loco-admin.php:
|
62 |
msgid "File download failed"
|
63 |
msgstr ""
|
64 |
|
65 |
-
#: ../lib/loco-packages.php:
|
66 |
msgid "Some files missing"
|
67 |
msgstr ""
|
68 |
|
69 |
-
#: ../lib/loco-packages.php:
|
70 |
msgid "POT file not writable"
|
71 |
msgstr ""
|
72 |
|
73 |
-
#: ../lib/loco-packages.php:
|
74 |
msgid "PO file not writable"
|
75 |
msgstr ""
|
76 |
|
77 |
-
#: ../lib/loco-packages.php:
|
78 |
msgid "MO file not writable"
|
79 |
msgstr ""
|
80 |
|
81 |
-
#: ../lib/loco-packages.php:
|
82 |
msgid "MO file not found"
|
83 |
msgstr ""
|
84 |
|
85 |
-
#: ../lib/loco-packages.php:
|
86 |
msgid "Folder not writable"
|
87 |
msgstr ""
|
88 |
|
|
|
|
|
|
|
|
|
89 |
#: ../php/loco-download.php:75 ../php/loco-posave.php:121
|
|
|
90 |
msgid "Failed to compile MO file with %s, check your settings"
|
91 |
msgstr ""
|
92 |
|
93 |
#: ../php/loco-posave.php:23 ../php/loco-posync.php:22
|
|
|
94 |
msgid "Package not found called %s"
|
95 |
msgstr ""
|
96 |
|
97 |
#: ../php/loco-posave.php:58
|
|
|
98 |
msgid ""
|
99 |
"Web server cannot create backups in \"%s\". Fix file permissions or disable "
|
100 |
"backups in settings"
|
@@ -112,51 +124,84 @@ msgstr ""
|
|
112 |
msgid "Failed to write MO file"
|
113 |
msgstr ""
|
114 |
|
115 |
-
#: ../
|
116 |
-
msgid "
|
117 |
msgstr ""
|
118 |
|
119 |
#: ../pub/js/lang/dummy.php:9
|
120 |
-
msgid "
|
121 |
msgstr ""
|
122 |
|
123 |
#: ../pub/js/lang/dummy.php:10
|
124 |
-
msgid "
|
125 |
msgstr ""
|
126 |
|
127 |
#: ../pub/js/lang/dummy.php:11
|
128 |
-
msgid "
|
129 |
msgstr ""
|
130 |
|
131 |
#: ../pub/js/lang/dummy.php:12
|
132 |
-
|
|
|
133 |
msgstr ""
|
134 |
|
135 |
#: ../pub/js/lang/dummy.php:13
|
136 |
-
msgid "
|
137 |
msgstr ""
|
138 |
|
139 |
#: ../pub/js/lang/dummy.php:14
|
140 |
-
|
|
|
141 |
msgstr ""
|
142 |
|
143 |
#: ../pub/js/lang/dummy.php:15
|
|
|
|
|
|
|
|
|
|
|
144 |
msgid "1 new string added"
|
145 |
msgid_plural "%s new strings added"
|
146 |
msgstr[0] ""
|
147 |
msgstr[1] ""
|
148 |
|
149 |
-
#: ../pub/js/lang/dummy.php:
|
|
|
150 |
msgid "1 obsolete string removed"
|
151 |
msgid_plural "%s obsolete strings removed"
|
152 |
msgstr[0] ""
|
153 |
msgstr[1] ""
|
154 |
|
155 |
-
#: ../pub/js/lang/dummy.php:
|
156 |
msgid "Your changes will be lost if you continue without saving"
|
157 |
msgstr ""
|
158 |
|
159 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
msgid "Translation"
|
161 |
msgstr ""
|
162 |
|
@@ -165,6 +210,7 @@ msgid "File check"
|
|
165 |
msgstr ""
|
166 |
|
167 |
#: ../tpl/admin-fscheck.tpl.php:17
|
|
|
168 |
msgid "File system permissions for %s"
|
169 |
msgstr ""
|
170 |
|
@@ -172,11 +218,11 @@ msgstr ""
|
|
172 |
msgid "Back"
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: ../tpl/admin-fscheck.tpl.php:41 ../tpl/admin-opts.tpl.php:
|
176 |
msgid "Get help"
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: ../tpl/admin-list.tpl.php:
|
180 |
msgid "OK"
|
181 |
msgstr ""
|
182 |
|
@@ -216,7 +262,15 @@ msgstr ""
|
|
216 |
msgid "Number of backups to keep of each file:"
|
217 |
msgstr ""
|
218 |
|
219 |
-
#: ../tpl/admin-opts.tpl.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
220 |
msgid "Save settings"
|
221 |
msgstr ""
|
222 |
|
@@ -225,128 +279,149 @@ msgctxt "Dropdown label"
|
|
225 |
msgid "Switch to..."
|
226 |
msgstr ""
|
227 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
#: ../tpl/admin-root.tpl.php:66
|
229 |
msgctxt "Package list header"
|
230 |
msgid "Core"
|
231 |
msgstr ""
|
232 |
|
233 |
#. Translators: Bold text label in admin error messages
|
234 |
-
#: ../lib/loco-admin.php:15 ../pub/js/lang/dummy.php:
|
235 |
msgctxt "Message label"
|
236 |
msgid "Error"
|
237 |
msgstr "Fout"
|
238 |
|
239 |
-
#: ../lib/loco-admin.php:24 ../pub/js/lang/dummy.php:
|
240 |
msgctxt "Message label"
|
241 |
msgid "Warning"
|
242 |
msgstr "Waarschuwing"
|
243 |
|
244 |
-
#: ../lib/loco-admin.php:33 ../pub/js/lang/dummy.php:
|
245 |
msgctxt "Message label"
|
246 |
msgid "OK"
|
247 |
msgstr "OK"
|
248 |
|
249 |
-
#: ../lib/loco-admin.php:
|
250 |
msgid "New PO file"
|
251 |
msgstr "Nieuw PO-bestand"
|
252 |
|
253 |
-
#: ../lib/loco-admin.php:
|
254 |
msgid "You must specify a valid locale for a new PO file"
|
255 |
msgstr "Specifieer een geldige locale voor een nieuw PO-bestand"
|
256 |
|
257 |
-
#: ../lib/loco-admin.php:
|
258 |
msgid "No translatable strings found"
|
259 |
msgstr "Geen vertaalbare teksten gevonden"
|
260 |
|
261 |
-
#: ../lib/loco-admin.php:
|
262 |
msgid "Cannot create a PO file."
|
263 |
msgstr "Kan geen PO-bestand aanmaken"
|
264 |
|
265 |
-
#: ../lib/loco-admin.php:
|
|
|
266 |
msgid "PO file already exists with locale %s"
|
267 |
msgstr "PO-bestand bestaat al in locale %s"
|
268 |
|
269 |
-
#: ../lib/loco-admin.php:
|
270 |
msgid ""
|
271 |
-
"File cannot be created automatically. Fix the file permissions or use
|
272 |
-
"instead of Save"
|
273 |
msgstr ""
|
274 |
-
"Bestand kan niet automatisch aangemaakt worden. Verander de rechten of
|
275 |
-
"download en bewaar."
|
276 |
|
277 |
-
#: ../lib/loco-admin.php:
|
|
|
278 |
msgid "%s file is empty"
|
279 |
msgstr "Het bestand %s is leeg"
|
280 |
|
281 |
-
#: ../lib/loco-admin.php:
|
282 |
msgid "Run Sync to update from source code"
|
283 |
msgstr "Voer Sync uit om de broncode up te daten"
|
284 |
|
285 |
-
#: ../lib/loco-admin.php:
|
286 |
msgid "No strings could be extracted from source code"
|
287 |
msgstr "Er kon geen tekst uit de broncode gehaald worden"
|
288 |
|
289 |
-
#: ../lib/loco-admin.php:
|
|
|
290 |
msgid "Run Sync to update from %s"
|
291 |
msgstr "Gebruik Sync om vanuit %s up te daten"
|
292 |
|
293 |
-
#: ../lib/loco-admin.php:
|
294 |
msgid "Source code has been modified, run Sync to update POT"
|
295 |
msgstr "Broncode is veranderd. Gebruik Sync om POT up te daten"
|
296 |
|
297 |
-
#: ../lib/loco-admin.php:
|
298 |
msgid "POT has been modified since PO file was saved, run Sync to update"
|
299 |
-
msgstr "
|
|
|
|
|
300 |
|
301 |
-
#: ../lib/loco-admin.php:
|
302 |
msgid "Bad file path"
|
303 |
msgstr "Foute bestandslocatie"
|
304 |
|
305 |
-
#: ../lib/loco-admin.php:
|
306 |
msgctxt "Add button"
|
307 |
msgid "New template"
|
308 |
msgstr "Nieuw sjabloon"
|
309 |
|
310 |
-
#: ../lib/loco-admin.php:
|
311 |
msgctxt "Add button"
|
312 |
msgid "New language"
|
313 |
msgstr "Nieuwe taal"
|
314 |
|
315 |
-
#: ../lib/loco-admin.php:
|
|
|
316 |
msgid "%s%% translated"
|
317 |
msgstr "%s%% vertaald"
|
318 |
|
319 |
-
#: ../lib/loco-admin.php:
|
|
|
320 |
msgid "1 string"
|
321 |
msgid_plural "%s strings"
|
322 |
msgstr[0] "1 te vertalen tekst"
|
323 |
msgstr[1] "%s te vertalen teksten"
|
324 |
|
325 |
-
#: ../lib/loco-admin.php:
|
|
|
326 |
msgid "%s fuzzy"
|
327 |
msgstr "%s onzeker"
|
328 |
|
329 |
-
#: ../lib/loco-admin.php:
|
|
|
330 |
msgid "%s untranslated"
|
331 |
msgstr "%s onvertaald"
|
332 |
|
333 |
-
#: ../lib/loco-admin.php:
|
334 |
msgid "Loco, Translation Management"
|
335 |
msgstr "Loco, vertalingsbeheer"
|
336 |
|
337 |
-
#: ../lib/loco-admin.php:
|
338 |
msgid "Manage translations"
|
339 |
msgstr "Beheer vertalingen"
|
340 |
|
341 |
-
#: ../lib/loco-locales.php:
|
342 |
msgid "Unknown language"
|
343 |
msgstr "Onbekende taal"
|
344 |
|
345 |
-
#: ../lib/loco-packages.php:
|
346 |
msgid "Some files not writable"
|
347 |
msgstr "Sommige bestanden hebben geen schrijfrechten"
|
348 |
|
349 |
-
#: ../lib/loco-packages.php:
|
|
|
350 |
msgid "\"%s\" folder not writable"
|
351 |
msgstr "Map \"%s\" heeft geen schrijfrechten"
|
352 |
|
@@ -359,34 +434,38 @@ msgid "Invalid data posted to server"
|
|
359 |
msgstr "Ongeldige gegevens op server"
|
360 |
|
361 |
#: ../php/loco-posave.php:66
|
|
|
362 |
msgid ""
|
363 |
-
"Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or
|
364 |
-
"it manually."
|
365 |
msgstr ""
|
366 |
"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of maak "
|
367 |
"het zelf aan."
|
368 |
|
369 |
#: ../php/loco-posave.php:69
|
|
|
370 |
msgid ""
|
371 |
-
"Web server cannot create files in the \"%s\" directory. Fix file permissions
|
372 |
-
"use the download function."
|
373 |
msgstr ""
|
374 |
-
"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of
|
375 |
-
"de downloadfunctie."
|
376 |
|
377 |
#: ../php/loco-posave.php:81
|
|
|
378 |
msgid ""
|
379 |
-
"%s file is not writable by the web server. Fix file permissions or download
|
380 |
-
"copy to \"%s/%s\"."
|
381 |
msgstr ""
|
382 |
"Bestand %s kan niet beschreven worden door de webserver. Bewerk de "
|
383 |
"schrijfrechten of download en kopieer naar \"%s/%s\"."
|
384 |
|
385 |
-
#: ../php/loco-posync.php:
|
386 |
msgid "No strings could be extracted from source files"
|
387 |
msgstr "Er konden geen te vertalen teksten uit de bronbestanden gehaald worden"
|
388 |
|
389 |
-
#: ../tpl/admin-fscheck.tpl.php:6 ../tpl/admin-opts.tpl.php:6 ../tpl/admin-poedit.
|
|
|
390 |
msgid "Packages"
|
391 |
msgstr "Pakketten"
|
392 |
|
@@ -411,6 +490,7 @@ msgid "File permissions"
|
|
411 |
msgstr "Bestandsrechten"
|
412 |
|
413 |
#: ../tpl/admin-list.tpl.php:43
|
|
|
414 |
msgid "1 language"
|
415 |
msgid_plural "%u languages"
|
416 |
msgstr[0] "1 taal"
|
@@ -482,6 +562,7 @@ msgid "Help"
|
|
482 |
msgstr "Help"
|
483 |
|
484 |
#: ../tpl/admin-poinit.tpl.php:21
|
|
|
485 |
msgid "Initialize new translations in %s"
|
486 |
msgstr "Start nieuwe vertalingen in %s"
|
487 |
|
@@ -494,7 +575,7 @@ msgctxt "Form label"
|
|
494 |
msgid "or enter any language code"
|
495 |
msgstr "of geef een taalcode op"
|
496 |
|
497 |
-
#: ../tpl/admin-poinit.tpl.php:
|
498 |
msgctxt "Submit button"
|
499 |
msgid "Start translating"
|
500 |
msgstr "Start vertalen"
|
@@ -504,6 +585,7 @@ msgid "New version available"
|
|
504 |
msgstr "Nieuwe versie beschikbaar"
|
505 |
|
506 |
#: ../tpl/admin-root.tpl.php:21
|
|
|
507 |
msgid "Upgrade to version %s of Loco Translate"
|
508 |
msgstr "Loco Translate upgraden naar versie %s"
|
509 |
|
3 |
"Project-Id-Version: Loco Translate\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: Thu Jan 02 2014 17:30:57 GMT+0000 (GMT)\n"
|
6 |
+
"PO-Revision-Date: Mon Jun 09 2014 17:13:31 GMT+0100 (BST)\n"
|
7 |
+
"Last-Translator: Tim <support@localise.biz>\n"
|
8 |
"Language-Team: \n"
|
9 |
"Language: Dutch (Belgium)\n"
|
10 |
"Plural-Forms: nplurals=2; plural=n != 1\n"
|
14 |
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
"X-Loco-Target-Locale: nl_BE\n"
|
16 |
"X-Generator: Loco - https://localise.biz/\n"
|
17 |
+
"X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
|
18 |
+
"__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
|
19 |
+
"_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
|
20 |
+
"esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
|
21 |
+
"esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
|
22 |
"X-Poedit-Basepath: .\n"
|
23 |
"X-Poedit-SearchPath-0: .."
|
24 |
|
30 |
msgid "Settings saved"
|
31 |
msgstr ""
|
32 |
|
33 |
+
#: ../lib/loco-admin.php:313
|
34 |
+
#, php-format
|
35 |
msgid "PO file used as template. This will be renamed to %s on first save"
|
36 |
msgstr ""
|
37 |
|
38 |
+
#: ../lib/loco-admin.php:692
|
39 |
+
#, php-format
|
40 |
msgid "Empty or invalid %s file"
|
41 |
msgstr ""
|
42 |
|
43 |
+
#: ../lib/loco-admin.php:696
|
44 |
+
#, php-format
|
45 |
msgid "%s file has no header"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: ../lib/loco-admin.php:934
|
49 |
msgid "Failed to compile MO file with built-in compiler"
|
50 |
msgstr ""
|
51 |
|
52 |
+
#: ../lib/loco-admin.php:979
|
53 |
msgid "Translation options"
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: ../lib/loco-admin.php:986
|
57 |
msgid "Loco Translate"
|
58 |
msgstr ""
|
59 |
|
60 |
+
#: ../lib/loco-admin.php:1010 ../tpl/admin-fscheck.tpl.php:7 ../tpl/admin-opts.
|
61 |
+
#: tpl.php:7 ../tpl/admin-poedit.tpl.php:8 ../tpl/admin-poinit.tpl.php:8 ..
|
62 |
+
#: tpl/admin-root.tpl.php:7
|
63 |
msgid "Settings"
|
64 |
msgstr ""
|
65 |
|
66 |
+
#: ../lib/loco-admin.php:1034
|
67 |
msgid "File download failed"
|
68 |
msgstr ""
|
69 |
|
70 |
+
#: ../lib/loco-packages.php:433
|
71 |
msgid "Some files missing"
|
72 |
msgstr ""
|
73 |
|
74 |
+
#: ../lib/loco-packages.php:464
|
75 |
msgid "POT file not writable"
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: ../lib/loco-packages.php:469
|
79 |
msgid "PO file not writable"
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: ../lib/loco-packages.php:471
|
83 |
msgid "MO file not writable"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: ../lib/loco-packages.php:471
|
87 |
msgid "MO file not found"
|
88 |
msgstr ""
|
89 |
|
90 |
+
#: ../lib/loco-packages.php:476
|
91 |
msgid "Folder not writable"
|
92 |
msgstr ""
|
93 |
|
94 |
+
#: ../lib/loco-packages.php:476
|
95 |
+
msgid "Folder not found"
|
96 |
+
msgstr ""
|
97 |
+
|
98 |
#: ../php/loco-download.php:75 ../php/loco-posave.php:121
|
99 |
+
#, php-format
|
100 |
msgid "Failed to compile MO file with %s, check your settings"
|
101 |
msgstr ""
|
102 |
|
103 |
#: ../php/loco-posave.php:23 ../php/loco-posync.php:22
|
104 |
+
#, php-format
|
105 |
msgid "Package not found called %s"
|
106 |
msgstr ""
|
107 |
|
108 |
#: ../php/loco-posave.php:58
|
109 |
+
#, php-format
|
110 |
msgid ""
|
111 |
"Web server cannot create backups in \"%s\". Fix file permissions or disable "
|
112 |
"backups in settings"
|
124 |
msgid "Failed to write MO file"
|
125 |
msgstr ""
|
126 |
|
127 |
+
#: ../php/loco-posync.php:47
|
128 |
+
msgid "No source files in this package, nothing to sync"
|
129 |
msgstr ""
|
130 |
|
131 |
#: ../pub/js/lang/dummy.php:9
|
132 |
+
msgid "Unknown error"
|
133 |
msgstr ""
|
134 |
|
135 |
#: ../pub/js/lang/dummy.php:10
|
136 |
+
msgid "PO file saved"
|
137 |
msgstr ""
|
138 |
|
139 |
#: ../pub/js/lang/dummy.php:11
|
140 |
+
msgid "and MO file compiled"
|
141 |
msgstr ""
|
142 |
|
143 |
#: ../pub/js/lang/dummy.php:12
|
144 |
+
#, php-format
|
145 |
+
msgid "Merged from %s"
|
146 |
msgstr ""
|
147 |
|
148 |
#: ../pub/js/lang/dummy.php:13
|
149 |
+
msgid "Merged from source code"
|
150 |
msgstr ""
|
151 |
|
152 |
#: ../pub/js/lang/dummy.php:14
|
153 |
+
#, php-format
|
154 |
+
msgid "Already up to date with %s"
|
155 |
msgstr ""
|
156 |
|
157 |
#: ../pub/js/lang/dummy.php:15
|
158 |
+
msgid "Already up to date with source code"
|
159 |
+
msgstr ""
|
160 |
+
|
161 |
+
#: ../pub/js/lang/dummy.php:16
|
162 |
+
#, php-format
|
163 |
msgid "1 new string added"
|
164 |
msgid_plural "%s new strings added"
|
165 |
msgstr[0] ""
|
166 |
msgstr[1] ""
|
167 |
|
168 |
+
#: ../pub/js/lang/dummy.php:17
|
169 |
+
#, php-format
|
170 |
msgid "1 obsolete string removed"
|
171 |
msgid_plural "%s obsolete strings removed"
|
172 |
msgstr[0] ""
|
173 |
msgstr[1] ""
|
174 |
|
175 |
+
#: ../pub/js/lang/dummy.php:18
|
176 |
msgid "Your changes will be lost if you continue without saving"
|
177 |
msgstr ""
|
178 |
|
179 |
+
#. label for the window pane holding native translation
|
180 |
+
#: ../pub/js/lang/dummy.php:25
|
181 |
+
msgctxt "Editor pane"
|
182 |
+
msgid "Source text"
|
183 |
+
msgstr ""
|
184 |
+
|
185 |
+
#. where %s is the language, e.g French translation
|
186 |
+
#: ../pub/js/lang/dummy.php:27
|
187 |
+
#, php-format
|
188 |
+
msgctxt "Editor pane"
|
189 |
+
msgid "%s translation"
|
190 |
+
msgstr ""
|
191 |
+
|
192 |
+
#. label for the window pane holding translator comments
|
193 |
+
#: ../pub/js/lang/dummy.php:29
|
194 |
+
msgctxt "Editor pane"
|
195 |
+
msgid "Comments"
|
196 |
+
msgstr ""
|
197 |
+
|
198 |
+
#. label for the window pane holding message context
|
199 |
+
#: ../pub/js/lang/dummy.php:31
|
200 |
+
msgctxt "Editor pane"
|
201 |
+
msgid "Context"
|
202 |
+
msgstr ""
|
203 |
+
|
204 |
+
#: ../pub/js/lang/dummy.php:37
|
205 |
msgid "Translation"
|
206 |
msgstr ""
|
207 |
|
210 |
msgstr ""
|
211 |
|
212 |
#: ../tpl/admin-fscheck.tpl.php:17
|
213 |
+
#, php-format
|
214 |
msgid "File system permissions for %s"
|
215 |
msgstr ""
|
216 |
|
218 |
msgid "Back"
|
219 |
msgstr ""
|
220 |
|
221 |
+
#: ../tpl/admin-fscheck.tpl.php:41 ../tpl/admin-opts.tpl.php:96
|
222 |
msgid "Get help"
|
223 |
msgstr ""
|
224 |
|
225 |
+
#: ../tpl/admin-list.tpl.php:97
|
226 |
msgid "OK"
|
227 |
msgstr ""
|
228 |
|
262 |
msgid "Number of backups to keep of each file:"
|
263 |
msgstr ""
|
264 |
|
265 |
+
#: ../tpl/admin-opts.tpl.php:77 ../tpl/admin-opts.tpl.php:81
|
266 |
+
msgid "Experimental features"
|
267 |
+
msgstr ""
|
268 |
+
|
269 |
+
#: ../tpl/admin-opts.tpl.php:86
|
270 |
+
msgid "Enable Wordpress core translations"
|
271 |
+
msgstr ""
|
272 |
+
|
273 |
+
#: ../tpl/admin-opts.tpl.php:95
|
274 |
msgid "Save settings"
|
275 |
msgstr ""
|
276 |
|
279 |
msgid "Switch to..."
|
280 |
msgstr ""
|
281 |
|
282 |
+
#: ../tpl/admin-poinit.tpl.php:58
|
283 |
+
#, php-format
|
284 |
+
msgctxt "Form label"
|
285 |
+
msgid "create in <code>%s</code>"
|
286 |
+
msgstr ""
|
287 |
+
|
288 |
+
#: ../tpl/admin-poinit.tpl.php:63
|
289 |
+
msgctxt "Form label"
|
290 |
+
msgid "create in global languages directory"
|
291 |
+
msgstr ""
|
292 |
+
|
293 |
#: ../tpl/admin-root.tpl.php:66
|
294 |
msgctxt "Package list header"
|
295 |
msgid "Core"
|
296 |
msgstr ""
|
297 |
|
298 |
#. Translators: Bold text label in admin error messages
|
299 |
+
#: ../lib/loco-admin.php:15 ../pub/js/lang/dummy.php:8
|
300 |
msgctxt "Message label"
|
301 |
msgid "Error"
|
302 |
msgstr "Fout"
|
303 |
|
304 |
+
#: ../lib/loco-admin.php:24 ../pub/js/lang/dummy.php:7
|
305 |
msgctxt "Message label"
|
306 |
msgid "Warning"
|
307 |
msgstr "Waarschuwing"
|
308 |
|
309 |
+
#: ../lib/loco-admin.php:33 ../pub/js/lang/dummy.php:6
|
310 |
msgctxt "Message label"
|
311 |
msgid "OK"
|
312 |
msgstr "OK"
|
313 |
|
314 |
+
#: ../lib/loco-admin.php:133
|
315 |
msgid "New PO file"
|
316 |
msgstr "Nieuw PO-bestand"
|
317 |
|
318 |
+
#: ../lib/loco-admin.php:240
|
319 |
msgid "You must specify a valid locale for a new PO file"
|
320 |
msgstr "Specifieer een geldige locale voor een nieuw PO-bestand"
|
321 |
|
322 |
+
#: ../lib/loco-admin.php:265 ../lib/loco-admin.php:367
|
323 |
msgid "No translatable strings found"
|
324 |
msgstr "Geen vertaalbare teksten gevonden"
|
325 |
|
326 |
+
#: ../lib/loco-admin.php:265
|
327 |
msgid "Cannot create a PO file."
|
328 |
msgstr "Kan geen PO-bestand aanmaken"
|
329 |
|
330 |
+
#: ../lib/loco-admin.php:272
|
331 |
+
#, php-format
|
332 |
msgid "PO file already exists with locale %s"
|
333 |
msgstr "PO-bestand bestaat al in locale %s"
|
334 |
|
335 |
+
#: ../lib/loco-admin.php:337
|
336 |
msgid ""
|
337 |
+
"File cannot be created automatically. Fix the file permissions or use "
|
338 |
+
"Download instead of Save"
|
339 |
msgstr ""
|
340 |
+
"Bestand kan niet automatisch aangemaakt worden. Verander de rechten of "
|
341 |
+
"gebruik download en bewaar."
|
342 |
|
343 |
+
#: ../lib/loco-admin.php:346 ../lib/loco-admin.php:355
|
344 |
+
#, php-format
|
345 |
msgid "%s file is empty"
|
346 |
msgstr "Het bestand %s is leeg"
|
347 |
|
348 |
+
#: ../lib/loco-admin.php:347 ../lib/loco-admin.php:362
|
349 |
msgid "Run Sync to update from source code"
|
350 |
msgstr "Voer Sync uit om de broncode up te daten"
|
351 |
|
352 |
+
#: ../lib/loco-admin.php:351
|
353 |
msgid "No strings could be extracted from source code"
|
354 |
msgstr "Er kon geen tekst uit de broncode gehaald worden"
|
355 |
|
356 |
+
#: ../lib/loco-admin.php:358
|
357 |
+
#, php-format
|
358 |
msgid "Run Sync to update from %s"
|
359 |
msgstr "Gebruik Sync om vanuit %s up te daten"
|
360 |
|
361 |
+
#: ../lib/loco-admin.php:377
|
362 |
msgid "Source code has been modified, run Sync to update POT"
|
363 |
msgstr "Broncode is veranderd. Gebruik Sync om POT up te daten"
|
364 |
|
365 |
+
#: ../lib/loco-admin.php:381
|
366 |
msgid "POT has been modified since PO file was saved, run Sync to update"
|
367 |
+
msgstr ""
|
368 |
+
"POT is veranderd sedert bewaren van het PO-bestand. Gebruik Sync om up te "
|
369 |
+
"daten"
|
370 |
|
371 |
+
#: ../lib/loco-admin.php:468
|
372 |
msgid "Bad file path"
|
373 |
msgstr "Foute bestandslocatie"
|
374 |
|
375 |
+
#: ../lib/loco-admin.php:828
|
376 |
msgctxt "Add button"
|
377 |
msgid "New template"
|
378 |
msgstr "Nieuw sjabloon"
|
379 |
|
380 |
+
#: ../lib/loco-admin.php:847
|
381 |
msgctxt "Add button"
|
382 |
msgid "New language"
|
383 |
msgstr "Nieuwe taal"
|
384 |
|
385 |
+
#: ../lib/loco-admin.php:886
|
386 |
+
#, php-format
|
387 |
msgid "%s%% translated"
|
388 |
msgstr "%s%% vertaald"
|
389 |
|
390 |
+
#: ../lib/loco-admin.php:886
|
391 |
+
#, php-format
|
392 |
msgid "1 string"
|
393 |
msgid_plural "%s strings"
|
394 |
msgstr[0] "1 te vertalen tekst"
|
395 |
msgstr[1] "%s te vertalen teksten"
|
396 |
|
397 |
+
#: ../lib/loco-admin.php:889
|
398 |
+
#, php-format
|
399 |
msgid "%s fuzzy"
|
400 |
msgstr "%s onzeker"
|
401 |
|
402 |
+
#: ../lib/loco-admin.php:892
|
403 |
+
#, php-format
|
404 |
msgid "%s untranslated"
|
405 |
msgstr "%s onvertaald"
|
406 |
|
407 |
+
#: ../lib/loco-admin.php:977 ../tpl/admin-nav.tpl.php:21
|
408 |
msgid "Loco, Translation Management"
|
409 |
msgstr "Loco, vertalingsbeheer"
|
410 |
|
411 |
+
#: ../lib/loco-admin.php:978 ../lib/loco-admin.php:1009
|
412 |
msgid "Manage translations"
|
413 |
msgstr "Beheer vertalingen"
|
414 |
|
415 |
+
#: ../lib/loco-locales.php:65
|
416 |
msgid "Unknown language"
|
417 |
msgstr "Onbekende taal"
|
418 |
|
419 |
+
#: ../lib/loco-packages.php:423 ../lib/loco-packages.php:430
|
420 |
msgid "Some files not writable"
|
421 |
msgstr "Sommige bestanden hebben geen schrijfrechten"
|
422 |
|
423 |
+
#: ../lib/loco-packages.php:439 ../lib/loco-packages.php:443
|
424 |
+
#, php-format
|
425 |
msgid "\"%s\" folder not writable"
|
426 |
msgstr "Map \"%s\" heeft geen schrijfrechten"
|
427 |
|
434 |
msgstr "Ongeldige gegevens op server"
|
435 |
|
436 |
#: ../php/loco-posave.php:66
|
437 |
+
#, php-format
|
438 |
msgid ""
|
439 |
+
"Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or "
|
440 |
+
"create it manually."
|
441 |
msgstr ""
|
442 |
"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of maak "
|
443 |
"het zelf aan."
|
444 |
|
445 |
#: ../php/loco-posave.php:69
|
446 |
+
#, php-format
|
447 |
msgid ""
|
448 |
+
"Web server cannot create files in the \"%s\" directory. Fix file permissions "
|
449 |
+
"or use the download function."
|
450 |
msgstr ""
|
451 |
+
"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of "
|
452 |
+
"gebruik de downloadfunctie."
|
453 |
|
454 |
#: ../php/loco-posave.php:81
|
455 |
+
#, php-format
|
456 |
msgid ""
|
457 |
+
"%s file is not writable by the web server. Fix file permissions or download "
|
458 |
+
"and copy to \"%s/%s\"."
|
459 |
msgstr ""
|
460 |
"Bestand %s kan niet beschreven worden door de webserver. Bewerk de "
|
461 |
"schrijfrechten of download en kopieer naar \"%s/%s\"."
|
462 |
|
463 |
+
#: ../php/loco-posync.php:57
|
464 |
msgid "No strings could be extracted from source files"
|
465 |
msgstr "Er konden geen te vertalen teksten uit de bronbestanden gehaald worden"
|
466 |
|
467 |
+
#: ../tpl/admin-fscheck.tpl.php:6 ../tpl/admin-opts.tpl.php:6 ../tpl/admin-poedit.
|
468 |
+
#: tpl.php:6 ../tpl/admin-poinit.tpl.php:6 ../tpl/admin-root.tpl.php:6
|
469 |
msgid "Packages"
|
470 |
msgstr "Pakketten"
|
471 |
|
490 |
msgstr "Bestandsrechten"
|
491 |
|
492 |
#: ../tpl/admin-list.tpl.php:43
|
493 |
+
#, php-format
|
494 |
msgid "1 language"
|
495 |
msgid_plural "%u languages"
|
496 |
msgstr[0] "1 taal"
|
562 |
msgstr "Help"
|
563 |
|
564 |
#: ../tpl/admin-poinit.tpl.php:21
|
565 |
+
#, php-format
|
566 |
msgid "Initialize new translations in %s"
|
567 |
msgstr "Start nieuwe vertalingen in %s"
|
568 |
|
575 |
msgid "or enter any language code"
|
576 |
msgstr "of geef een taalcode op"
|
577 |
|
578 |
+
#: ../tpl/admin-poinit.tpl.php:68
|
579 |
msgctxt "Submit button"
|
580 |
msgid "Start translating"
|
581 |
msgstr "Start vertalen"
|
585 |
msgstr "Nieuwe versie beschikbaar"
|
586 |
|
587 |
#: ../tpl/admin-root.tpl.php:21
|
588 |
+
#, php-format
|
589 |
msgid "Upgrade to version %s of Loco Translate"
|
590 |
msgstr "Loco Translate upgraden naar versie %s"
|
591 |
|
languages/loco-translate-nl_NL.mo
CHANGED
Binary file
|
languages/loco-translate-nl_NL.po
CHANGED
@@ -3,8 +3,8 @@ msgstr ""
|
|
3 |
"Project-Id-Version: Loco Translate\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: Thu Jan 02 2014 17:30:57 GMT+0000 (GMT)\n"
|
6 |
-
"PO-Revision-Date:
|
7 |
-
"Last-Translator:
|
8 |
"Language-Team: \n"
|
9 |
"Language: Dutch\n"
|
10 |
"Plural-Forms: nplurals=2; plural=n != 1\n"
|
@@ -14,11 +14,11 @@ msgstr ""
|
|
14 |
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
"X-Loco-Target-Locale: nl_NL\n"
|
16 |
"X-Generator: Loco - https://localise.biz/\n"
|
17 |
-
"X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;
|
18 |
-
"_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;
|
19 |
-
"_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;
|
20 |
-
"esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;
|
21 |
-
"comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
|
22 |
"X-Poedit-Basepath: .\n"
|
23 |
"X-Poedit-SearchPath-0: .."
|
24 |
|
@@ -30,71 +30,83 @@ msgstr ""
|
|
30 |
msgid "Settings saved"
|
31 |
msgstr ""
|
32 |
|
33 |
-
#: ../lib/loco-admin.php:
|
|
|
34 |
msgid "PO file used as template. This will be renamed to %s on first save"
|
35 |
msgstr ""
|
36 |
|
37 |
-
#: ../lib/loco-admin.php:
|
|
|
38 |
msgid "Empty or invalid %s file"
|
39 |
msgstr ""
|
40 |
|
41 |
-
#: ../lib/loco-admin.php:
|
|
|
42 |
msgid "%s file has no header"
|
43 |
msgstr ""
|
44 |
|
45 |
-
#: ../lib/loco-admin.php:
|
46 |
msgid "Failed to compile MO file with built-in compiler"
|
47 |
msgstr ""
|
48 |
|
49 |
-
#: ../lib/loco-admin.php:
|
50 |
msgid "Translation options"
|
51 |
msgstr ""
|
52 |
|
53 |
-
#: ../lib/loco-admin.php:
|
54 |
msgid "Loco Translate"
|
55 |
msgstr ""
|
56 |
|
57 |
-
#: ../lib/loco-admin.php:
|
|
|
|
|
58 |
msgid "Settings"
|
59 |
msgstr ""
|
60 |
|
61 |
-
#: ../lib/loco-admin.php:
|
62 |
msgid "File download failed"
|
63 |
msgstr ""
|
64 |
|
65 |
-
#: ../lib/loco-packages.php:
|
66 |
msgid "Some files missing"
|
67 |
msgstr ""
|
68 |
|
69 |
-
#: ../lib/loco-packages.php:
|
70 |
msgid "POT file not writable"
|
71 |
msgstr ""
|
72 |
|
73 |
-
#: ../lib/loco-packages.php:
|
74 |
msgid "PO file not writable"
|
75 |
msgstr ""
|
76 |
|
77 |
-
#: ../lib/loco-packages.php:
|
78 |
msgid "MO file not writable"
|
79 |
msgstr ""
|
80 |
|
81 |
-
#: ../lib/loco-packages.php:
|
82 |
msgid "MO file not found"
|
83 |
msgstr ""
|
84 |
|
85 |
-
#: ../lib/loco-packages.php:
|
86 |
msgid "Folder not writable"
|
87 |
msgstr ""
|
88 |
|
|
|
|
|
|
|
|
|
89 |
#: ../php/loco-download.php:75 ../php/loco-posave.php:121
|
|
|
90 |
msgid "Failed to compile MO file with %s, check your settings"
|
91 |
msgstr ""
|
92 |
|
93 |
#: ../php/loco-posave.php:23 ../php/loco-posync.php:22
|
|
|
94 |
msgid "Package not found called %s"
|
95 |
msgstr ""
|
96 |
|
97 |
#: ../php/loco-posave.php:58
|
|
|
98 |
msgid ""
|
99 |
"Web server cannot create backups in \"%s\". Fix file permissions or disable "
|
100 |
"backups in settings"
|
@@ -112,51 +124,84 @@ msgstr ""
|
|
112 |
msgid "Failed to write MO file"
|
113 |
msgstr ""
|
114 |
|
115 |
-
#: ../
|
116 |
-
msgid "
|
117 |
msgstr ""
|
118 |
|
119 |
#: ../pub/js/lang/dummy.php:9
|
120 |
-
msgid "
|
121 |
msgstr ""
|
122 |
|
123 |
#: ../pub/js/lang/dummy.php:10
|
124 |
-
msgid "
|
125 |
msgstr ""
|
126 |
|
127 |
#: ../pub/js/lang/dummy.php:11
|
128 |
-
msgid "
|
129 |
msgstr ""
|
130 |
|
131 |
#: ../pub/js/lang/dummy.php:12
|
132 |
-
|
|
|
133 |
msgstr ""
|
134 |
|
135 |
#: ../pub/js/lang/dummy.php:13
|
136 |
-
msgid "
|
137 |
msgstr ""
|
138 |
|
139 |
#: ../pub/js/lang/dummy.php:14
|
140 |
-
|
|
|
141 |
msgstr ""
|
142 |
|
143 |
#: ../pub/js/lang/dummy.php:15
|
|
|
|
|
|
|
|
|
|
|
144 |
msgid "1 new string added"
|
145 |
msgid_plural "%s new strings added"
|
146 |
msgstr[0] ""
|
147 |
msgstr[1] ""
|
148 |
|
149 |
-
#: ../pub/js/lang/dummy.php:
|
|
|
150 |
msgid "1 obsolete string removed"
|
151 |
msgid_plural "%s obsolete strings removed"
|
152 |
msgstr[0] ""
|
153 |
msgstr[1] ""
|
154 |
|
155 |
-
#: ../pub/js/lang/dummy.php:
|
156 |
msgid "Your changes will be lost if you continue without saving"
|
157 |
msgstr ""
|
158 |
|
159 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
msgid "Translation"
|
161 |
msgstr ""
|
162 |
|
@@ -165,6 +210,7 @@ msgid "File check"
|
|
165 |
msgstr ""
|
166 |
|
167 |
#: ../tpl/admin-fscheck.tpl.php:17
|
|
|
168 |
msgid "File system permissions for %s"
|
169 |
msgstr ""
|
170 |
|
@@ -172,11 +218,11 @@ msgstr ""
|
|
172 |
msgid "Back"
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: ../tpl/admin-fscheck.tpl.php:41 ../tpl/admin-opts.tpl.php:
|
176 |
msgid "Get help"
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: ../tpl/admin-list.tpl.php:
|
180 |
msgid "OK"
|
181 |
msgstr ""
|
182 |
|
@@ -216,7 +262,15 @@ msgstr ""
|
|
216 |
msgid "Number of backups to keep of each file:"
|
217 |
msgstr ""
|
218 |
|
219 |
-
#: ../tpl/admin-opts.tpl.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
220 |
msgid "Save settings"
|
221 |
msgstr ""
|
222 |
|
@@ -225,128 +279,149 @@ msgctxt "Dropdown label"
|
|
225 |
msgid "Switch to..."
|
226 |
msgstr ""
|
227 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
#: ../tpl/admin-root.tpl.php:66
|
229 |
msgctxt "Package list header"
|
230 |
msgid "Core"
|
231 |
msgstr ""
|
232 |
|
233 |
#. Translators: Bold text label in admin error messages
|
234 |
-
#: ../lib/loco-admin.php:15 ../pub/js/lang/dummy.php:
|
235 |
msgctxt "Message label"
|
236 |
msgid "Error"
|
237 |
msgstr "Fout"
|
238 |
|
239 |
-
#: ../lib/loco-admin.php:24 ../pub/js/lang/dummy.php:
|
240 |
msgctxt "Message label"
|
241 |
msgid "Warning"
|
242 |
msgstr "Waarschuwing"
|
243 |
|
244 |
-
#: ../lib/loco-admin.php:33 ../pub/js/lang/dummy.php:
|
245 |
msgctxt "Message label"
|
246 |
msgid "OK"
|
247 |
msgstr "OK"
|
248 |
|
249 |
-
#: ../lib/loco-admin.php:
|
250 |
msgid "New PO file"
|
251 |
msgstr "Nieuw PO-bestand"
|
252 |
|
253 |
-
#: ../lib/loco-admin.php:
|
254 |
msgid "You must specify a valid locale for a new PO file"
|
255 |
msgstr "Specifieer een geldige locale voor een nieuw PO-bestand"
|
256 |
|
257 |
-
#: ../lib/loco-admin.php:
|
258 |
msgid "No translatable strings found"
|
259 |
msgstr "Geen vertaalbare teksten gevonden"
|
260 |
|
261 |
-
#: ../lib/loco-admin.php:
|
262 |
msgid "Cannot create a PO file."
|
263 |
msgstr "Kan geen PO-bestand aanmaken"
|
264 |
|
265 |
-
#: ../lib/loco-admin.php:
|
|
|
266 |
msgid "PO file already exists with locale %s"
|
267 |
msgstr "PO-bestand bestaat al in locale %s"
|
268 |
|
269 |
-
#: ../lib/loco-admin.php:
|
270 |
msgid ""
|
271 |
-
"File cannot be created automatically. Fix the file permissions or use
|
272 |
-
"instead of Save"
|
273 |
msgstr ""
|
274 |
-
"Bestand kan niet automatisch aangemaakt worden. Verander de rechten of
|
275 |
-
"download en bewaar."
|
276 |
|
277 |
-
#: ../lib/loco-admin.php:
|
|
|
278 |
msgid "%s file is empty"
|
279 |
msgstr "Het bestand %s is leeg"
|
280 |
|
281 |
-
#: ../lib/loco-admin.php:
|
282 |
msgid "Run Sync to update from source code"
|
283 |
msgstr "Voer Sync uit om de broncode up te daten"
|
284 |
|
285 |
-
#: ../lib/loco-admin.php:
|
286 |
msgid "No strings could be extracted from source code"
|
287 |
msgstr "Er kon geen tekst uit de broncode gehaald worden"
|
288 |
|
289 |
-
#: ../lib/loco-admin.php:
|
|
|
290 |
msgid "Run Sync to update from %s"
|
291 |
msgstr "Gebruik Sync om vanuit %s up te daten"
|
292 |
|
293 |
-
#: ../lib/loco-admin.php:
|
294 |
msgid "Source code has been modified, run Sync to update POT"
|
295 |
msgstr "Broncode is veranderd. Gebruik Sync om POT up te daten"
|
296 |
|
297 |
-
#: ../lib/loco-admin.php:
|
298 |
msgid "POT has been modified since PO file was saved, run Sync to update"
|
299 |
-
msgstr "
|
|
|
|
|
300 |
|
301 |
-
#: ../lib/loco-admin.php:
|
302 |
msgid "Bad file path"
|
303 |
msgstr "Foute bestandslocatie"
|
304 |
|
305 |
-
#: ../lib/loco-admin.php:
|
306 |
msgctxt "Add button"
|
307 |
msgid "New template"
|
308 |
msgstr "Nieuw sjabloon"
|
309 |
|
310 |
-
#: ../lib/loco-admin.php:
|
311 |
msgctxt "Add button"
|
312 |
msgid "New language"
|
313 |
msgstr "Nieuwe taal"
|
314 |
|
315 |
-
#: ../lib/loco-admin.php:
|
|
|
316 |
msgid "%s%% translated"
|
317 |
msgstr "%s%% vertaald"
|
318 |
|
319 |
-
#: ../lib/loco-admin.php:
|
|
|
320 |
msgid "1 string"
|
321 |
msgid_plural "%s strings"
|
322 |
msgstr[0] "1 te vertalen tekst"
|
323 |
msgstr[1] "%s te vertalen teksten"
|
324 |
|
325 |
-
#: ../lib/loco-admin.php:
|
|
|
326 |
msgid "%s fuzzy"
|
327 |
msgstr "%s onzeker"
|
328 |
|
329 |
-
#: ../lib/loco-admin.php:
|
|
|
330 |
msgid "%s untranslated"
|
331 |
msgstr "%s onvertaald"
|
332 |
|
333 |
-
#: ../lib/loco-admin.php:
|
334 |
msgid "Loco, Translation Management"
|
335 |
msgstr "Loco, vertalingsbeheer"
|
336 |
|
337 |
-
#: ../lib/loco-admin.php:
|
338 |
msgid "Manage translations"
|
339 |
msgstr "Beheer vertalingen"
|
340 |
|
341 |
-
#: ../lib/loco-locales.php:
|
342 |
msgid "Unknown language"
|
343 |
msgstr "Onbekende taal"
|
344 |
|
345 |
-
#: ../lib/loco-packages.php:
|
346 |
msgid "Some files not writable"
|
347 |
msgstr "Sommige bestanden hebben geen schrijfrechten"
|
348 |
|
349 |
-
#: ../lib/loco-packages.php:
|
|
|
350 |
msgid "\"%s\" folder not writable"
|
351 |
msgstr "Map \"%s\" heeft geen schrijfrechten"
|
352 |
|
@@ -359,34 +434,38 @@ msgid "Invalid data posted to server"
|
|
359 |
msgstr "Ongeldige gegevens op server"
|
360 |
|
361 |
#: ../php/loco-posave.php:66
|
|
|
362 |
msgid ""
|
363 |
-
"Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or
|
364 |
-
"it manually."
|
365 |
msgstr ""
|
366 |
"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of maak "
|
367 |
"het zelf aan."
|
368 |
|
369 |
#: ../php/loco-posave.php:69
|
|
|
370 |
msgid ""
|
371 |
-
"Web server cannot create files in the \"%s\" directory. Fix file permissions
|
372 |
-
"use the download function."
|
373 |
msgstr ""
|
374 |
-
"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of
|
375 |
-
"de downloadfunctie."
|
376 |
|
377 |
#: ../php/loco-posave.php:81
|
|
|
378 |
msgid ""
|
379 |
-
"%s file is not writable by the web server. Fix file permissions or download
|
380 |
-
"copy to \"%s/%s\"."
|
381 |
msgstr ""
|
382 |
"Bestand %s kan niet beschreven worden door de webserver. Bewerk de "
|
383 |
"schrijfrechten of download en kopieer naar \"%s/%s\"."
|
384 |
|
385 |
-
#: ../php/loco-posync.php:
|
386 |
msgid "No strings could be extracted from source files"
|
387 |
msgstr "Er konden geen te vertalen teksten uit de bronbestanden gehaald worden"
|
388 |
|
389 |
-
#: ../tpl/admin-fscheck.tpl.php:6 ../tpl/admin-opts.tpl.php:6 ../tpl/admin-poedit.
|
|
|
390 |
msgid "Packages"
|
391 |
msgstr "Pakketten"
|
392 |
|
@@ -411,6 +490,7 @@ msgid "File permissions"
|
|
411 |
msgstr "Bestandsrechten"
|
412 |
|
413 |
#: ../tpl/admin-list.tpl.php:43
|
|
|
414 |
msgid "1 language"
|
415 |
msgid_plural "%u languages"
|
416 |
msgstr[0] "1 taal"
|
@@ -482,6 +562,7 @@ msgid "Help"
|
|
482 |
msgstr "Help"
|
483 |
|
484 |
#: ../tpl/admin-poinit.tpl.php:21
|
|
|
485 |
msgid "Initialize new translations in %s"
|
486 |
msgstr "Start nieuwe vertalingen in %s"
|
487 |
|
@@ -494,7 +575,7 @@ msgctxt "Form label"
|
|
494 |
msgid "or enter any language code"
|
495 |
msgstr "of geef een taalcode op"
|
496 |
|
497 |
-
#: ../tpl/admin-poinit.tpl.php:
|
498 |
msgctxt "Submit button"
|
499 |
msgid "Start translating"
|
500 |
msgstr "Start vertalen"
|
@@ -504,6 +585,7 @@ msgid "New version available"
|
|
504 |
msgstr "Nieuwe versie beschikbaar"
|
505 |
|
506 |
#: ../tpl/admin-root.tpl.php:21
|
|
|
507 |
msgid "Upgrade to version %s of Loco Translate"
|
508 |
msgstr "Loco Translate upgraden naar versie %s"
|
509 |
|
3 |
"Project-Id-Version: Loco Translate\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: Thu Jan 02 2014 17:30:57 GMT+0000 (GMT)\n"
|
6 |
+
"PO-Revision-Date: Mon Jun 09 2014 17:13:35 GMT+0100 (BST)\n"
|
7 |
+
"Last-Translator: Tim <support@localise.biz>\n"
|
8 |
"Language-Team: \n"
|
9 |
"Language: Dutch\n"
|
10 |
"Plural-Forms: nplurals=2; plural=n != 1\n"
|
14 |
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
"X-Loco-Target-Locale: nl_NL\n"
|
16 |
"X-Generator: Loco - https://localise.biz/\n"
|
17 |
+
"X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
|
18 |
+
"__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
|
19 |
+
"_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
|
20 |
+
"esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
|
21 |
+
"esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
|
22 |
"X-Poedit-Basepath: .\n"
|
23 |
"X-Poedit-SearchPath-0: .."
|
24 |
|
30 |
msgid "Settings saved"
|
31 |
msgstr ""
|
32 |
|
33 |
+
#: ../lib/loco-admin.php:313
|
34 |
+
#, php-format
|
35 |
msgid "PO file used as template. This will be renamed to %s on first save"
|
36 |
msgstr ""
|
37 |
|
38 |
+
#: ../lib/loco-admin.php:692
|
39 |
+
#, php-format
|
40 |
msgid "Empty or invalid %s file"
|
41 |
msgstr ""
|
42 |
|
43 |
+
#: ../lib/loco-admin.php:696
|
44 |
+
#, php-format
|
45 |
msgid "%s file has no header"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: ../lib/loco-admin.php:934
|
49 |
msgid "Failed to compile MO file with built-in compiler"
|
50 |
msgstr ""
|
51 |
|
52 |
+
#: ../lib/loco-admin.php:979
|
53 |
msgid "Translation options"
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: ../lib/loco-admin.php:986
|
57 |
msgid "Loco Translate"
|
58 |
msgstr ""
|
59 |
|
60 |
+
#: ../lib/loco-admin.php:1010 ../tpl/admin-fscheck.tpl.php:7 ../tpl/admin-opts.
|
61 |
+
#: tpl.php:7 ../tpl/admin-poedit.tpl.php:8 ../tpl/admin-poinit.tpl.php:8 ..
|
62 |
+
#: tpl/admin-root.tpl.php:7
|
63 |
msgid "Settings"
|
64 |
msgstr ""
|
65 |
|
66 |
+
#: ../lib/loco-admin.php:1034
|
67 |
msgid "File download failed"
|
68 |
msgstr ""
|
69 |
|
70 |
+
#: ../lib/loco-packages.php:433
|
71 |
msgid "Some files missing"
|
72 |
msgstr ""
|
73 |
|
74 |
+
#: ../lib/loco-packages.php:464
|
75 |
msgid "POT file not writable"
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: ../lib/loco-packages.php:469
|
79 |
msgid "PO file not writable"
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: ../lib/loco-packages.php:471
|
83 |
msgid "MO file not writable"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: ../lib/loco-packages.php:471
|
87 |
msgid "MO file not found"
|
88 |
msgstr ""
|
89 |
|
90 |
+
#: ../lib/loco-packages.php:476
|
91 |
msgid "Folder not writable"
|
92 |
msgstr ""
|
93 |
|
94 |
+
#: ../lib/loco-packages.php:476
|
95 |
+
msgid "Folder not found"
|
96 |
+
msgstr ""
|
97 |
+
|
98 |
#: ../php/loco-download.php:75 ../php/loco-posave.php:121
|
99 |
+
#, php-format
|
100 |
msgid "Failed to compile MO file with %s, check your settings"
|
101 |
msgstr ""
|
102 |
|
103 |
#: ../php/loco-posave.php:23 ../php/loco-posync.php:22
|
104 |
+
#, php-format
|
105 |
msgid "Package not found called %s"
|
106 |
msgstr ""
|
107 |
|
108 |
#: ../php/loco-posave.php:58
|
109 |
+
#, php-format
|
110 |
msgid ""
|
111 |
"Web server cannot create backups in \"%s\". Fix file permissions or disable "
|
112 |
"backups in settings"
|
124 |
msgid "Failed to write MO file"
|
125 |
msgstr ""
|
126 |
|
127 |
+
#: ../php/loco-posync.php:47
|
128 |
+
msgid "No source files in this package, nothing to sync"
|
129 |
msgstr ""
|
130 |
|
131 |
#: ../pub/js/lang/dummy.php:9
|
132 |
+
msgid "Unknown error"
|
133 |
msgstr ""
|
134 |
|
135 |
#: ../pub/js/lang/dummy.php:10
|
136 |
+
msgid "PO file saved"
|
137 |
msgstr ""
|
138 |
|
139 |
#: ../pub/js/lang/dummy.php:11
|
140 |
+
msgid "and MO file compiled"
|
141 |
msgstr ""
|
142 |
|
143 |
#: ../pub/js/lang/dummy.php:12
|
144 |
+
#, php-format
|
145 |
+
msgid "Merged from %s"
|
146 |
msgstr ""
|
147 |
|
148 |
#: ../pub/js/lang/dummy.php:13
|
149 |
+
msgid "Merged from source code"
|
150 |
msgstr ""
|
151 |
|
152 |
#: ../pub/js/lang/dummy.php:14
|
153 |
+
#, php-format
|
154 |
+
msgid "Already up to date with %s"
|
155 |
msgstr ""
|
156 |
|
157 |
#: ../pub/js/lang/dummy.php:15
|
158 |
+
msgid "Already up to date with source code"
|
159 |
+
msgstr ""
|
160 |
+
|
161 |
+
#: ../pub/js/lang/dummy.php:16
|
162 |
+
#, php-format
|
163 |
msgid "1 new string added"
|
164 |
msgid_plural "%s new strings added"
|
165 |
msgstr[0] ""
|
166 |
msgstr[1] ""
|
167 |
|
168 |
+
#: ../pub/js/lang/dummy.php:17
|
169 |
+
#, php-format
|
170 |
msgid "1 obsolete string removed"
|
171 |
msgid_plural "%s obsolete strings removed"
|
172 |
msgstr[0] ""
|
173 |
msgstr[1] ""
|
174 |
|
175 |
+
#: ../pub/js/lang/dummy.php:18
|
176 |
msgid "Your changes will be lost if you continue without saving"
|
177 |
msgstr ""
|
178 |
|
179 |
+
#. label for the window pane holding native translation
|
180 |
+
#: ../pub/js/lang/dummy.php:25
|
181 |
+
msgctxt "Editor pane"
|
182 |
+
msgid "Source text"
|
183 |
+
msgstr ""
|
184 |
+
|
185 |
+
#. where %s is the language, e.g French translation
|
186 |
+
#: ../pub/js/lang/dummy.php:27
|
187 |
+
#, php-format
|
188 |
+
msgctxt "Editor pane"
|
189 |
+
msgid "%s translation"
|
190 |
+
msgstr ""
|
191 |
+
|
192 |
+
#. label for the window pane holding translator comments
|
193 |
+
#: ../pub/js/lang/dummy.php:29
|
194 |
+
msgctxt "Editor pane"
|
195 |
+
msgid "Comments"
|
196 |
+
msgstr ""
|
197 |
+
|
198 |
+
#. label for the window pane holding message context
|
199 |
+
#: ../pub/js/lang/dummy.php:31
|
200 |
+
msgctxt "Editor pane"
|
201 |
+
msgid "Context"
|
202 |
+
msgstr ""
|
203 |
+
|
204 |
+
#: ../pub/js/lang/dummy.php:37
|
205 |
msgid "Translation"
|
206 |
msgstr ""
|
207 |
|
210 |
msgstr ""
|
211 |
|
212 |
#: ../tpl/admin-fscheck.tpl.php:17
|
213 |
+
#, php-format
|
214 |
msgid "File system permissions for %s"
|
215 |
msgstr ""
|
216 |
|
218 |
msgid "Back"
|
219 |
msgstr ""
|
220 |
|
221 |
+
#: ../tpl/admin-fscheck.tpl.php:41 ../tpl/admin-opts.tpl.php:96
|
222 |
msgid "Get help"
|
223 |
msgstr ""
|
224 |
|
225 |
+
#: ../tpl/admin-list.tpl.php:97
|
226 |
msgid "OK"
|
227 |
msgstr ""
|
228 |
|
262 |
msgid "Number of backups to keep of each file:"
|
263 |
msgstr ""
|
264 |
|
265 |
+
#: ../tpl/admin-opts.tpl.php:77 ../tpl/admin-opts.tpl.php:81
|
266 |
+
msgid "Experimental features"
|
267 |
+
msgstr ""
|
268 |
+
|
269 |
+
#: ../tpl/admin-opts.tpl.php:86
|
270 |
+
msgid "Enable Wordpress core translations"
|
271 |
+
msgstr ""
|
272 |
+
|
273 |
+
#: ../tpl/admin-opts.tpl.php:95
|
274 |
msgid "Save settings"
|
275 |
msgstr ""
|
276 |
|
279 |
msgid "Switch to..."
|
280 |
msgstr ""
|
281 |
|
282 |
+
#: ../tpl/admin-poinit.tpl.php:58
|
283 |
+
#, php-format
|
284 |
+
msgctxt "Form label"
|
285 |
+
msgid "create in <code>%s</code>"
|
286 |
+
msgstr ""
|
287 |
+
|
288 |
+
#: ../tpl/admin-poinit.tpl.php:63
|
289 |
+
msgctxt "Form label"
|
290 |
+
msgid "create in global languages directory"
|
291 |
+
msgstr ""
|
292 |
+
|
293 |
#: ../tpl/admin-root.tpl.php:66
|
294 |
msgctxt "Package list header"
|
295 |
msgid "Core"
|
296 |
msgstr ""
|
297 |
|
298 |
#. Translators: Bold text label in admin error messages
|
299 |
+
#: ../lib/loco-admin.php:15 ../pub/js/lang/dummy.php:8
|
300 |
msgctxt "Message label"
|
301 |
msgid "Error"
|
302 |
msgstr "Fout"
|
303 |
|
304 |
+
#: ../lib/loco-admin.php:24 ../pub/js/lang/dummy.php:7
|
305 |
msgctxt "Message label"
|
306 |
msgid "Warning"
|
307 |
msgstr "Waarschuwing"
|
308 |
|
309 |
+
#: ../lib/loco-admin.php:33 ../pub/js/lang/dummy.php:6
|
310 |
msgctxt "Message label"
|
311 |
msgid "OK"
|
312 |
msgstr "OK"
|
313 |
|
314 |
+
#: ../lib/loco-admin.php:133
|
315 |
msgid "New PO file"
|
316 |
msgstr "Nieuw PO-bestand"
|
317 |
|
318 |
+
#: ../lib/loco-admin.php:240
|
319 |
msgid "You must specify a valid locale for a new PO file"
|
320 |
msgstr "Specifieer een geldige locale voor een nieuw PO-bestand"
|
321 |
|
322 |
+
#: ../lib/loco-admin.php:265 ../lib/loco-admin.php:367
|
323 |
msgid "No translatable strings found"
|
324 |
msgstr "Geen vertaalbare teksten gevonden"
|
325 |
|
326 |
+
#: ../lib/loco-admin.php:265
|
327 |
msgid "Cannot create a PO file."
|
328 |
msgstr "Kan geen PO-bestand aanmaken"
|
329 |
|
330 |
+
#: ../lib/loco-admin.php:272
|
331 |
+
#, php-format
|
332 |
msgid "PO file already exists with locale %s"
|
333 |
msgstr "PO-bestand bestaat al in locale %s"
|
334 |
|
335 |
+
#: ../lib/loco-admin.php:337
|
336 |
msgid ""
|
337 |
+
"File cannot be created automatically. Fix the file permissions or use "
|
338 |
+
"Download instead of Save"
|
339 |
msgstr ""
|
340 |
+
"Bestand kan niet automatisch aangemaakt worden. Verander de rechten of "
|
341 |
+
"gebruik download en bewaar."
|
342 |
|
343 |
+
#: ../lib/loco-admin.php:346 ../lib/loco-admin.php:355
|
344 |
+
#, php-format
|
345 |
msgid "%s file is empty"
|
346 |
msgstr "Het bestand %s is leeg"
|
347 |
|
348 |
+
#: ../lib/loco-admin.php:347 ../lib/loco-admin.php:362
|
349 |
msgid "Run Sync to update from source code"
|
350 |
msgstr "Voer Sync uit om de broncode up te daten"
|
351 |
|
352 |
+
#: ../lib/loco-admin.php:351
|
353 |
msgid "No strings could be extracted from source code"
|
354 |
msgstr "Er kon geen tekst uit de broncode gehaald worden"
|
355 |
|
356 |
+
#: ../lib/loco-admin.php:358
|
357 |
+
#, php-format
|
358 |
msgid "Run Sync to update from %s"
|
359 |
msgstr "Gebruik Sync om vanuit %s up te daten"
|
360 |
|
361 |
+
#: ../lib/loco-admin.php:377
|
362 |
msgid "Source code has been modified, run Sync to update POT"
|
363 |
msgstr "Broncode is veranderd. Gebruik Sync om POT up te daten"
|
364 |
|
365 |
+
#: ../lib/loco-admin.php:381
|
366 |
msgid "POT has been modified since PO file was saved, run Sync to update"
|
367 |
+
msgstr ""
|
368 |
+
"POT is veranderd sedert bewaren van het PO-bestand. Gebruik Sync om up te "
|
369 |
+
"daten"
|
370 |
|
371 |
+
#: ../lib/loco-admin.php:468
|
372 |
msgid "Bad file path"
|
373 |
msgstr "Foute bestandslocatie"
|
374 |
|
375 |
+
#: ../lib/loco-admin.php:828
|
376 |
msgctxt "Add button"
|
377 |
msgid "New template"
|
378 |
msgstr "Nieuw sjabloon"
|
379 |
|
380 |
+
#: ../lib/loco-admin.php:847
|
381 |
msgctxt "Add button"
|
382 |
msgid "New language"
|
383 |
msgstr "Nieuwe taal"
|
384 |
|
385 |
+
#: ../lib/loco-admin.php:886
|
386 |
+
#, php-format
|
387 |
msgid "%s%% translated"
|
388 |
msgstr "%s%% vertaald"
|
389 |
|
390 |
+
#: ../lib/loco-admin.php:886
|
391 |
+
#, php-format
|
392 |
msgid "1 string"
|
393 |
msgid_plural "%s strings"
|
394 |
msgstr[0] "1 te vertalen tekst"
|
395 |
msgstr[1] "%s te vertalen teksten"
|
396 |
|
397 |
+
#: ../lib/loco-admin.php:889
|
398 |
+
#, php-format
|
399 |
msgid "%s fuzzy"
|
400 |
msgstr "%s onzeker"
|
401 |
|
402 |
+
#: ../lib/loco-admin.php:892
|
403 |
+
#, php-format
|
404 |
msgid "%s untranslated"
|
405 |
msgstr "%s onvertaald"
|
406 |
|
407 |
+
#: ../lib/loco-admin.php:977 ../tpl/admin-nav.tpl.php:21
|
408 |
msgid "Loco, Translation Management"
|
409 |
msgstr "Loco, vertalingsbeheer"
|
410 |
|
411 |
+
#: ../lib/loco-admin.php:978 ../lib/loco-admin.php:1009
|
412 |
msgid "Manage translations"
|
413 |
msgstr "Beheer vertalingen"
|
414 |
|
415 |
+
#: ../lib/loco-locales.php:65
|
416 |
msgid "Unknown language"
|
417 |
msgstr "Onbekende taal"
|
418 |
|
419 |
+
#: ../lib/loco-packages.php:423 ../lib/loco-packages.php:430
|
420 |
msgid "Some files not writable"
|
421 |
msgstr "Sommige bestanden hebben geen schrijfrechten"
|
422 |
|
423 |
+
#: ../lib/loco-packages.php:439 ../lib/loco-packages.php:443
|
424 |
+
#, php-format
|
425 |
msgid "\"%s\" folder not writable"
|
426 |
msgstr "Map \"%s\" heeft geen schrijfrechten"
|
427 |
|
434 |
msgstr "Ongeldige gegevens op server"
|
435 |
|
436 |
#: ../php/loco-posave.php:66
|
437 |
+
#, php-format
|
438 |
msgid ""
|
439 |
+
"Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or "
|
440 |
+
"create it manually."
|
441 |
msgstr ""
|
442 |
"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of maak "
|
443 |
"het zelf aan."
|
444 |
|
445 |
#: ../php/loco-posave.php:69
|
446 |
+
#, php-format
|
447 |
msgid ""
|
448 |
+
"Web server cannot create files in the \"%s\" directory. Fix file permissions "
|
449 |
+
"or use the download function."
|
450 |
msgstr ""
|
451 |
+
"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of "
|
452 |
+
"gebruik de downloadfunctie."
|
453 |
|
454 |
#: ../php/loco-posave.php:81
|
455 |
+
#, php-format
|
456 |
msgid ""
|
457 |
+
"%s file is not writable by the web server. Fix file permissions or download "
|
458 |
+
"and copy to \"%s/%s\"."
|
459 |
msgstr ""
|
460 |
"Bestand %s kan niet beschreven worden door de webserver. Bewerk de "
|
461 |
"schrijfrechten of download en kopieer naar \"%s/%s\"."
|
462 |
|
463 |
+
#: ../php/loco-posync.php:57
|
464 |
msgid "No strings could be extracted from source files"
|
465 |
msgstr "Er konden geen te vertalen teksten uit de bronbestanden gehaald worden"
|
466 |
|
467 |
+
#: ../tpl/admin-fscheck.tpl.php:6 ../tpl/admin-opts.tpl.php:6 ../tpl/admin-poedit.
|
468 |
+
#: tpl.php:6 ../tpl/admin-poinit.tpl.php:6 ../tpl/admin-root.tpl.php:6
|
469 |
msgid "Packages"
|
470 |
msgstr "Pakketten"
|
471 |
|
490 |
msgstr "Bestandsrechten"
|
491 |
|
492 |
#: ../tpl/admin-list.tpl.php:43
|
493 |
+
#, php-format
|
494 |
msgid "1 language"
|
495 |
msgid_plural "%u languages"
|
496 |
msgstr[0] "1 taal"
|
562 |
msgstr "Help"
|
563 |
|
564 |
#: ../tpl/admin-poinit.tpl.php:21
|
565 |
+
#, php-format
|
566 |
msgid "Initialize new translations in %s"
|
567 |
msgstr "Start nieuwe vertalingen in %s"
|
568 |
|
575 |
msgid "or enter any language code"
|
576 |
msgstr "of geef een taalcode op"
|
577 |
|
578 |
+
#: ../tpl/admin-poinit.tpl.php:68
|
579 |
msgctxt "Submit button"
|
580 |
msgid "Start translating"
|
581 |
msgstr "Start vertalen"
|
585 |
msgstr "Nieuwe versie beschikbaar"
|
586 |
|
587 |
#: ../tpl/admin-root.tpl.php:21
|
588 |
+
#, php-format
|
589 |
msgid "Upgrade to version %s of Loco Translate"
|
590 |
msgstr "Loco Translate upgraden naar versie %s"
|
591 |
|
languages/loco-translate-ru_RU.mo
ADDED
Binary file
|
languages/loco-translate-ru_RU.po
ADDED
@@ -0,0 +1,609 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: Loco Translate\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: Thu Jan 02 2014 17:30:57 GMT+0000 (GMT)\n"
|
6 |
+
"PO-Revision-Date: Mon Jun 09 2014 17:13:38 GMT+0100 (BST)\n"
|
7 |
+
"Last-Translator: Tim <support@localise.biz>\n"
|
8 |
+
"Language-Team: \n"
|
9 |
+
"Language: Russian\n"
|
10 |
+
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && "
|
11 |
+
"n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)\n"
|
12 |
+
"MIME-Version: 1.0\n"
|
13 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
14 |
+
"Content-Transfer-Encoding: 8bit\n"
|
15 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
16 |
+
"X-Poedit-Basepath: .\n"
|
17 |
+
"X-Poedit-SearchPath-0: ..\n"
|
18 |
+
"X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
|
19 |
+
"__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
|
20 |
+
"_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
|
21 |
+
"esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
|
22 |
+
"esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
|
23 |
+
"X-Generator: Loco - https://localise.biz/\n"
|
24 |
+
"X-Loco-Target-Locale: ru_RU"
|
25 |
+
|
26 |
+
#: ../lib/loco-packages.php:476
|
27 |
+
msgid "Folder not found"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: ../php/loco-posync.php:47
|
31 |
+
msgid "No source files in this package, nothing to sync"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: ../pub/js/lang/dummy.php:19
|
35 |
+
#, php-format
|
36 |
+
msgid "Already up to date with %s"
|
37 |
+
msgstr ""
|
38 |
+
|
39 |
+
#: ../pub/js/lang/dummy.php:21
|
40 |
+
msgid "Already up to date with source code"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. label for the window pane holding native translation
|
44 |
+
#: ../pub/js/lang/dummy.php:35
|
45 |
+
msgctxt "Editor pane"
|
46 |
+
msgid "Source text"
|
47 |
+
msgstr ""
|
48 |
+
|
49 |
+
#. where %s is the language, e.g French translation
|
50 |
+
#: ../pub/js/lang/dummy.php:38
|
51 |
+
#, php-format
|
52 |
+
msgctxt "Editor pane"
|
53 |
+
msgid "%s translation"
|
54 |
+
msgstr ""
|
55 |
+
|
56 |
+
#. label for the window pane holding translator comments
|
57 |
+
#: ../pub/js/lang/dummy.php:41
|
58 |
+
msgctxt "Editor pane"
|
59 |
+
msgid "Comments"
|
60 |
+
msgstr ""
|
61 |
+
|
62 |
+
#. label for the window pane holding message context
|
63 |
+
#: ../pub/js/lang/dummy.php:44
|
64 |
+
msgctxt "Editor pane"
|
65 |
+
msgid "Context"
|
66 |
+
msgstr ""
|
67 |
+
|
68 |
+
#: ../tpl/admin-opts.tpl.php:69
|
69 |
+
msgid "Number of backups to keep of each file:"
|
70 |
+
msgstr ""
|
71 |
+
|
72 |
+
#: ../tpl/admin-opts.tpl.php:77 ../tpl/admin-opts.tpl.php:81
|
73 |
+
msgid "Experimental features"
|
74 |
+
msgstr ""
|
75 |
+
|
76 |
+
#: ../tpl/admin-opts.tpl.php:86
|
77 |
+
msgid "Enable Wordpress core translations"
|
78 |
+
msgstr ""
|
79 |
+
|
80 |
+
#: ../tpl/admin-poinit.tpl.php:58
|
81 |
+
#, php-format
|
82 |
+
msgctxt "Form label"
|
83 |
+
msgid "create in <code>%s</code>"
|
84 |
+
msgstr ""
|
85 |
+
|
86 |
+
#: ../tpl/admin-poinit.tpl.php:63
|
87 |
+
msgctxt "Form label"
|
88 |
+
msgid "create in global languages directory"
|
89 |
+
msgstr ""
|
90 |
+
|
91 |
+
#. Translators: Bold text label in admin error messages
|
92 |
+
#: ../lib/loco-admin.php:15
|
93 |
+
msgctxt "Message label"
|
94 |
+
msgid "Error"
|
95 |
+
msgstr "Ошибка"
|
96 |
+
|
97 |
+
#: ../lib/loco-admin.php:24
|
98 |
+
msgctxt "Message label"
|
99 |
+
msgid "Warning"
|
100 |
+
msgstr "Предупреждение"
|
101 |
+
|
102 |
+
#: ../lib/loco-admin.php:33
|
103 |
+
msgctxt "Message label"
|
104 |
+
msgid "OK"
|
105 |
+
msgstr "ОК"
|
106 |
+
|
107 |
+
#: ../lib/loco-admin.php:42
|
108 |
+
msgid "Permission denied"
|
109 |
+
msgstr "Доступ невозможен"
|
110 |
+
|
111 |
+
#: ../lib/loco-admin.php:58
|
112 |
+
msgid "Settings saved"
|
113 |
+
msgstr "Установки сохранены"
|
114 |
+
|
115 |
+
#: ../lib/loco-admin.php:133
|
116 |
+
msgid "New PO file"
|
117 |
+
msgstr "Новый РО файл"
|
118 |
+
|
119 |
+
#: ../lib/loco-admin.php:240
|
120 |
+
msgid "You must specify a valid locale for a new PO file"
|
121 |
+
msgstr "Укажите правильную локаль для нового РО файла"
|
122 |
+
|
123 |
+
#: ../lib/loco-admin.php:265 ../lib/loco-admin.php:367
|
124 |
+
msgid "No translatable strings found"
|
125 |
+
msgstr "Не обнаружено строк для перевода"
|
126 |
+
|
127 |
+
#: ../lib/loco-admin.php:265
|
128 |
+
msgid "Cannot create a PO file."
|
129 |
+
msgstr "Невозможно создать РО файл"
|
130 |
+
|
131 |
+
#: ../lib/loco-admin.php:272
|
132 |
+
#, php-format
|
133 |
+
msgid "PO file already exists with locale %s"
|
134 |
+
msgstr "PO файл уже существует в локали %s"
|
135 |
+
|
136 |
+
#: ../lib/loco-admin.php:313
|
137 |
+
#, php-format
|
138 |
+
msgid "PO file used as template. This will be renamed to %s on first save"
|
139 |
+
msgstr ""
|
140 |
+
"PO файл используется как шаблон. Он будет переименован в %s при первом "
|
141 |
+
"сохраннии."
|
142 |
+
|
143 |
+
#: ../lib/loco-admin.php:337
|
144 |
+
msgid ""
|
145 |
+
"File cannot be created automatically. Fix the file permissions or use "
|
146 |
+
"Download instead of Save"
|
147 |
+
msgstr ""
|
148 |
+
"Файл не может быть создан автоматически. Исправьте права доступа, или "
|
149 |
+
"используйте Загрузить вместо Сохранить"
|
150 |
+
|
151 |
+
#: ../lib/loco-admin.php:346 ../lib/loco-admin.php:355
|
152 |
+
#, php-format
|
153 |
+
msgid "%s file is empty"
|
154 |
+
msgstr "%s файл пуст"
|
155 |
+
|
156 |
+
#: ../lib/loco-admin.php:347 ../lib/loco-admin.php:362
|
157 |
+
msgid "Run Sync to update from source code"
|
158 |
+
msgstr "Выполните Синхронизацию для обновления из исходного кода"
|
159 |
+
|
160 |
+
#: ../lib/loco-admin.php:351
|
161 |
+
msgid "No strings could be extracted from source code"
|
162 |
+
msgstr "Нет строк для извлечения из исходного кода"
|
163 |
+
|
164 |
+
#: ../lib/loco-admin.php:358
|
165 |
+
#, php-format
|
166 |
+
msgid "Run Sync to update from %s"
|
167 |
+
msgstr "Выполните Синхронизацию для обновления из "
|
168 |
+
|
169 |
+
#: ../lib/loco-admin.php:377
|
170 |
+
msgid "Source code has been modified, run Sync to update POT"
|
171 |
+
msgstr "Исходный код был изменён. Выполните Синхронизацию для обновления РОТ"
|
172 |
+
|
173 |
+
#: ../lib/loco-admin.php:381
|
174 |
+
msgid "POT has been modified since PO file was saved, run Sync to update"
|
175 |
+
msgstr "РОТ был изменён после сохранения РО. Выполните Синхронизацию для обновления"
|
176 |
+
|
177 |
+
#: ../lib/loco-admin.php:468
|
178 |
+
msgid "Bad file path"
|
179 |
+
msgstr "Неправильный путь к файлу"
|
180 |
+
|
181 |
+
#: ../lib/loco-admin.php:692
|
182 |
+
#, php-format
|
183 |
+
msgid "Empty or invalid %s file"
|
184 |
+
msgstr "Пустой, или поврежденный %s файл"
|
185 |
+
|
186 |
+
#: ../lib/loco-admin.php:696
|
187 |
+
#, php-format
|
188 |
+
msgid "%s file has no header"
|
189 |
+
msgstr "%s файл без заголовка"
|
190 |
+
|
191 |
+
#: ../lib/loco-admin.php:828
|
192 |
+
msgctxt "Add button"
|
193 |
+
msgid "New template"
|
194 |
+
msgstr "Новый шаблон"
|
195 |
+
|
196 |
+
#: ../lib/loco-admin.php:847
|
197 |
+
msgctxt "Add button"
|
198 |
+
msgid "New language"
|
199 |
+
msgstr "Новый язык"
|
200 |
+
|
201 |
+
#: ../lib/loco-admin.php:886
|
202 |
+
#, php-format
|
203 |
+
msgid "%s%% translated"
|
204 |
+
msgstr "%s%% переведено"
|
205 |
+
|
206 |
+
#: ../lib/loco-admin.php:886
|
207 |
+
#, php-format
|
208 |
+
msgid "1 string"
|
209 |
+
msgid_plural "%s strings"
|
210 |
+
msgstr[0] "1 строка"
|
211 |
+
msgstr[1] "%s строк(и)"
|
212 |
+
|
213 |
+
#: ../lib/loco-admin.php:889
|
214 |
+
#, php-format
|
215 |
+
msgid "%s fuzzy"
|
216 |
+
msgstr "неточный перевод"
|
217 |
+
|
218 |
+
#: ../lib/loco-admin.php:892
|
219 |
+
#, php-format
|
220 |
+
msgid "%s untranslated"
|
221 |
+
msgstr "%s не переведено"
|
222 |
+
|
223 |
+
#: ../lib/loco-admin.php:934
|
224 |
+
msgid "Failed to compile MO file with built-in compiler"
|
225 |
+
msgstr "Ошибка компиляции МО файла встроенным компилятором"
|
226 |
+
|
227 |
+
#: ../lib/loco-admin.php:977 ../tpl/admin-nav.tpl.php:21
|
228 |
+
msgid "Loco, Translation Management"
|
229 |
+
msgstr "Loco, управление переводами"
|
230 |
+
|
231 |
+
#: ../lib/loco-admin.php:978 ../lib/loco-admin.php:1009
|
232 |
+
msgid "Manage translations"
|
233 |
+
msgstr "Управление переводами"
|
234 |
+
|
235 |
+
#: ../lib/loco-admin.php:979
|
236 |
+
msgid "Translation options"
|
237 |
+
msgstr "Опции перевода"
|
238 |
+
|
239 |
+
#: ../lib/loco-admin.php:986
|
240 |
+
msgid "Loco Translate"
|
241 |
+
msgstr "Переводчик Loco"
|
242 |
+
|
243 |
+
#: ../lib/loco-admin.php:1010 ../tpl/admin-fscheck.tpl.php:7 ../tpl/admin-opts.
|
244 |
+
#: tpl.php:7 ../tpl/admin-poedit.tpl.php:8 ../tpl/admin-poinit.tpl.php:8 ..
|
245 |
+
#: tpl/admin-root.tpl.php:7
|
246 |
+
msgid "Settings"
|
247 |
+
msgstr "Установки"
|
248 |
+
|
249 |
+
#: ../lib/loco-admin.php:1034
|
250 |
+
msgid "File download failed"
|
251 |
+
msgstr "Ошибка загрузки файла"
|
252 |
+
|
253 |
+
#: ../lib/loco-locales.php:65
|
254 |
+
msgid "Unknown language"
|
255 |
+
msgstr "Неизвестный язык"
|
256 |
+
|
257 |
+
#: ../lib/loco-packages.php:423 ../lib/loco-packages.php:430
|
258 |
+
msgid "Some files not writable"
|
259 |
+
msgstr "Некоторые файлы недоступны для записи"
|
260 |
+
|
261 |
+
#: ../lib/loco-packages.php:433
|
262 |
+
msgid "Some files missing"
|
263 |
+
msgstr "Некоторые файлы с ошибками, или отсутствуют"
|
264 |
+
|
265 |
+
#: ../lib/loco-packages.php:439 ../lib/loco-packages.php:443
|
266 |
+
#, php-format
|
267 |
+
msgid "\"%s\" folder not writable"
|
268 |
+
msgstr "\"%s\" каталог недоступен для записи"
|
269 |
+
|
270 |
+
#: ../lib/loco-packages.php:464
|
271 |
+
msgid "POT file not writable"
|
272 |
+
msgstr "РОТ файл недоступен для записи"
|
273 |
+
|
274 |
+
#: ../lib/loco-packages.php:469
|
275 |
+
msgid "PO file not writable"
|
276 |
+
msgstr "РО файл недоступен для записи"
|
277 |
+
|
278 |
+
#: ../lib/loco-packages.php:471
|
279 |
+
msgid "MO file not writable"
|
280 |
+
msgstr "МО файл недоступен для записи"
|
281 |
+
|
282 |
+
#: ../lib/loco-packages.php:471
|
283 |
+
msgid "MO file not found"
|
284 |
+
msgstr "МО файл не найден"
|
285 |
+
|
286 |
+
#: ../lib/loco-packages.php:476
|
287 |
+
msgid "Folder not writable"
|
288 |
+
msgstr "Каталог недоступен для записи"
|
289 |
+
|
290 |
+
#: ../php/loco-ajax.php:17 ../php/loco-download.php:21
|
291 |
+
msgid "User does not have permission to manage translations"
|
292 |
+
msgstr "У пользователя недостаточно прав для управления переводами"
|
293 |
+
|
294 |
+
#: ../php/loco-download.php:75 ../php/loco-posave.php:121
|
295 |
+
#, php-format
|
296 |
+
msgid "Failed to compile MO file with %s, check your settings"
|
297 |
+
msgstr "Ошибка компилирования МО файла с %s . Проверьте настройки"
|
298 |
+
|
299 |
+
#: ../php/loco-posave.php:10 ../php/loco-posync.php:9
|
300 |
+
msgid "Invalid data posted to server"
|
301 |
+
msgstr "На сервер отправлены неверные данные"
|
302 |
+
|
303 |
+
#: ../php/loco-posave.php:23 ../php/loco-posync.php:22
|
304 |
+
#, php-format
|
305 |
+
msgid "Package not found called %s"
|
306 |
+
msgstr "Не найден пакет с именем "
|
307 |
+
|
308 |
+
#: ../php/loco-posave.php:58
|
309 |
+
#, php-format
|
310 |
+
msgid ""
|
311 |
+
"Web server cannot create backups in \"%s\". Fix file permissions or disable "
|
312 |
+
"backups in settings"
|
313 |
+
msgstr ""
|
314 |
+
"Web сервер не может создать резервную копию в \"%s\". Исправьте права доступа, "
|
315 |
+
"или отключите функцию резервирования в настройках"
|
316 |
+
|
317 |
+
#: ../php/loco-posave.php:66
|
318 |
+
#, php-format
|
319 |
+
msgid ""
|
320 |
+
"Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or "
|
321 |
+
"create it manually."
|
322 |
+
msgstr ""
|
323 |
+
"Web сервер не может создать \"%s\" каталог в \"%s\". Исправьте права доступа, "
|
324 |
+
"или создайте каталог вручную"
|
325 |
+
|
326 |
+
#: ../php/loco-posave.php:69
|
327 |
+
#, php-format
|
328 |
+
msgid ""
|
329 |
+
"Web server cannot create files in the \"%s\" directory. Fix file permissions "
|
330 |
+
"or use the download function."
|
331 |
+
msgstr ""
|
332 |
+
"Web сервер не может создать файлы в каталоге \"%s\" . Иправьте права доступа, "
|
333 |
+
"или используйте функцию загрузки."
|
334 |
+
|
335 |
+
#: ../php/loco-posave.php:81
|
336 |
+
#, php-format
|
337 |
+
msgid ""
|
338 |
+
"%s file is not writable by the web server. Fix file permissions or download "
|
339 |
+
"and copy to \"%s/%s\"."
|
340 |
+
msgstr ""
|
341 |
+
"%s файл не может быть записан на сервер. Исправьте права доступа или "
|
342 |
+
"загрузите и скопируйте \"%s/%s\"."
|
343 |
+
|
344 |
+
#: ../php/loco-posave.php:102
|
345 |
+
msgid "Cannot create MO file"
|
346 |
+
msgstr "Невозможно создать МО файл"
|
347 |
+
|
348 |
+
#: ../php/loco-posave.php:105
|
349 |
+
msgid "Cannot overwrite MO file"
|
350 |
+
msgstr "Невозможно перезаписать МО файл"
|
351 |
+
|
352 |
+
#: ../php/loco-posave.php:131
|
353 |
+
msgid "Failed to write MO file"
|
354 |
+
msgstr "Ошибка записи МО файла"
|
355 |
+
|
356 |
+
#: ../php/loco-posync.php:57
|
357 |
+
msgid "No strings could be extracted from source files"
|
358 |
+
msgstr "Нет строк для обработки из исходного кода"
|
359 |
+
|
360 |
+
#: ../pub/js/lang/dummy.php:8
|
361 |
+
msgid "Unknown error"
|
362 |
+
msgstr "Неизвестная ошибка"
|
363 |
+
|
364 |
+
#: ../pub/js/lang/dummy.php:10
|
365 |
+
msgid "PO file saved"
|
366 |
+
msgstr "РО файл сохранён"
|
367 |
+
|
368 |
+
#: ../pub/js/lang/dummy.php:12
|
369 |
+
msgid "and MO file compiled"
|
370 |
+
msgstr "и МО файл скомпилирован"
|
371 |
+
|
372 |
+
#: ../pub/js/lang/dummy.php:15
|
373 |
+
#, php-format
|
374 |
+
msgid "Merged from %s"
|
375 |
+
msgstr "Объединено с %s"
|
376 |
+
|
377 |
+
#: ../pub/js/lang/dummy.php:17
|
378 |
+
msgid "Merged from source code"
|
379 |
+
msgstr "Объединено с исходным кодом"
|
380 |
+
|
381 |
+
#: ../pub/js/lang/dummy.php:23
|
382 |
+
#, php-format
|
383 |
+
msgid "1 new string added"
|
384 |
+
msgid_plural "%s new strings added"
|
385 |
+
msgstr[0] "1 новая строка добавлена"
|
386 |
+
msgstr[1] "%s новых строки добавлено"
|
387 |
+
|
388 |
+
#: ../pub/js/lang/dummy.php:25
|
389 |
+
#, php-format
|
390 |
+
msgid "1 obsolete string removed"
|
391 |
+
msgid_plural "%s obsolete strings removed"
|
392 |
+
msgstr[0] "1строка удалена"
|
393 |
+
msgstr[1] "%s строки удалено"
|
394 |
+
|
395 |
+
#: ../pub/js/lang/dummy.php:27
|
396 |
+
msgid "Your changes will be lost if you continue without saving"
|
397 |
+
msgstr "Изменения будут потеряны, если Вы не сохранитесь"
|
398 |
+
|
399 |
+
#: ../pub/js/lang/dummy.php:52
|
400 |
+
msgid "Translation"
|
401 |
+
msgstr "Перевод"
|
402 |
+
|
403 |
+
#: ../tpl/admin-fscheck.tpl.php:6 ../tpl/admin-opts.tpl.php:6 ../tpl/admin-poedit.
|
404 |
+
#: tpl.php:6 ../tpl/admin-poinit.tpl.php:6 ../tpl/admin-root.tpl.php:6
|
405 |
+
msgid "Packages"
|
406 |
+
msgstr "Пакеты переводов"
|
407 |
+
|
408 |
+
#: ../tpl/admin-fscheck.tpl.php:8
|
409 |
+
msgid "File check"
|
410 |
+
msgstr "Проверка файла"
|
411 |
+
|
412 |
+
#: ../tpl/admin-fscheck.tpl.php:17
|
413 |
+
#, php-format
|
414 |
+
msgid "File system permissions for %s"
|
415 |
+
msgstr "Права доступа файловой системы для "
|
416 |
+
|
417 |
+
#: ../tpl/admin-fscheck.tpl.php:40
|
418 |
+
msgid "Back"
|
419 |
+
msgstr "Назад"
|
420 |
+
|
421 |
+
#: ../tpl/admin-fscheck.tpl.php:41 ../tpl/admin-opts.tpl.php:96
|
422 |
+
msgid "Get help"
|
423 |
+
msgstr "Помощь"
|
424 |
+
|
425 |
+
#: ../tpl/admin-list.tpl.php:11
|
426 |
+
msgctxt "Table header"
|
427 |
+
msgid "Package details"
|
428 |
+
msgstr ""
|
429 |
+
"Детали пакета\n"
|
430 |
+
"\n"
|
431 |
+
|
432 |
+
#: ../tpl/admin-list.tpl.php:14
|
433 |
+
msgctxt "Table header"
|
434 |
+
msgid "Translations (PO)"
|
435 |
+
msgstr "Переводы (РО)\n"
|
436 |
+
|
437 |
+
#: ../tpl/admin-list.tpl.php:17
|
438 |
+
msgctxt "Table header"
|
439 |
+
msgid "Template (POT)"
|
440 |
+
msgstr "Шаблоны (РОТ)\n"
|
441 |
+
|
442 |
+
#: ../tpl/admin-list.tpl.php:20
|
443 |
+
msgctxt "Table header"
|
444 |
+
msgid "File permissions"
|
445 |
+
msgstr "Права доступа к файлу"
|
446 |
+
|
447 |
+
#: ../tpl/admin-list.tpl.php:43
|
448 |
+
#, php-format
|
449 |
+
msgid "1 language"
|
450 |
+
msgid_plural "%u languages"
|
451 |
+
msgstr[0] "1 язык"
|
452 |
+
msgstr[1] "%u языка(ов)"
|
453 |
+
|
454 |
+
#: ../tpl/admin-list.tpl.php:48
|
455 |
+
msgctxt "Modified time"
|
456 |
+
msgid "Updated"
|
457 |
+
msgstr "Обновлённый"
|
458 |
+
|
459 |
+
#: ../tpl/admin-list.tpl.php:97
|
460 |
+
msgid "OK"
|
461 |
+
msgstr "ОК"
|
462 |
+
|
463 |
+
#: ../tpl/admin-nav.tpl.php:20
|
464 |
+
msgid "Powered by"
|
465 |
+
msgstr "Представлено"
|
466 |
+
|
467 |
+
#: ../tpl/admin-nav.tpl.php:26
|
468 |
+
msgid "Loco may not work as expected"
|
469 |
+
msgstr "Плагин Loco может не работать, как ожидалось"
|
470 |
+
|
471 |
+
#: ../tpl/admin-opts.tpl.php:18
|
472 |
+
msgid "Configure Loco Translate"
|
473 |
+
msgstr "Настройка Loco"
|
474 |
+
|
475 |
+
#: ../tpl/admin-opts.tpl.php:27 ../tpl/admin-opts.tpl.php:31
|
476 |
+
msgid "Compiling MO files"
|
477 |
+
msgstr "Комптляция МО файлов"
|
478 |
+
|
479 |
+
#: ../tpl/admin-opts.tpl.php:36
|
480 |
+
msgid "Use built-in MO compiler."
|
481 |
+
msgstr "Использовать встроенный МО компилятор"
|
482 |
+
|
483 |
+
#: ../tpl/admin-opts.tpl.php:42
|
484 |
+
msgid "Use external command:"
|
485 |
+
msgstr "Использовать внешнюю программу:"
|
486 |
+
|
487 |
+
#: ../tpl/admin-opts.tpl.php:47
|
488 |
+
msgid "Enter path to msgfmt on server"
|
489 |
+
msgstr "Путь к msgfmt на сервере"
|
490 |
+
|
491 |
+
#: ../tpl/admin-opts.tpl.php:54
|
492 |
+
msgid "Generate hash tables"
|
493 |
+
msgstr "Генерировать hash таблицы"
|
494 |
+
|
495 |
+
#: ../tpl/admin-opts.tpl.php:61 ../tpl/admin-opts.tpl.php:65
|
496 |
+
msgid "Backing up PO files"
|
497 |
+
msgstr "Резервное копирование РО файлов"
|
498 |
+
|
499 |
+
#: ../tpl/admin-opts.tpl.php:95
|
500 |
+
msgid "Save settings"
|
501 |
+
msgstr "Сохранить установки"
|
502 |
+
|
503 |
+
#: ../tpl/admin-poedit.tpl.php:31
|
504 |
+
msgid "Template file"
|
505 |
+
msgstr "Файл шаблона"
|
506 |
+
|
507 |
+
#: ../tpl/admin-poedit.tpl.php:39
|
508 |
+
msgctxt "Dropdown label"
|
509 |
+
msgid "Switch to..."
|
510 |
+
msgstr "Переключиться на..."
|
511 |
+
|
512 |
+
#: ../tpl/admin-poedit.tpl.php:57
|
513 |
+
msgid "Updated"
|
514 |
+
msgstr "Обновлено"
|
515 |
+
|
516 |
+
#: ../tpl/admin-poedit.tpl.php:62
|
517 |
+
msgid "never"
|
518 |
+
msgstr "никогда"
|
519 |
+
|
520 |
+
#: ../tpl/admin-poedit.tpl.php:87
|
521 |
+
msgctxt "Editor button"
|
522 |
+
msgid "Save"
|
523 |
+
msgstr "Сохранить"
|
524 |
+
|
525 |
+
#: ../tpl/admin-poedit.tpl.php:94 ../tpl/admin-poedit.tpl.php:103
|
526 |
+
msgctxt "Editor button"
|
527 |
+
msgid "Download"
|
528 |
+
msgstr "Загрузить"
|
529 |
+
|
530 |
+
#: ../tpl/admin-poedit.tpl.php:115
|
531 |
+
msgctxt "Editor button"
|
532 |
+
msgid "Sync"
|
533 |
+
msgstr "Синхронизация"
|
534 |
+
|
535 |
+
#: ../tpl/admin-poedit.tpl.php:120
|
536 |
+
msgctxt "Editor button"
|
537 |
+
msgid "Revert"
|
538 |
+
msgstr "Вернуться"
|
539 |
+
|
540 |
+
#: ../tpl/admin-poedit.tpl.php:125
|
541 |
+
msgctxt "Editor button"
|
542 |
+
msgid "Add"
|
543 |
+
msgstr "Добавить"
|
544 |
+
|
545 |
+
#: ../tpl/admin-poedit.tpl.php:130
|
546 |
+
msgctxt "Editor button"
|
547 |
+
msgid "Del"
|
548 |
+
msgstr "Удалить"
|
549 |
+
|
550 |
+
#: ../tpl/admin-poedit.tpl.php:135
|
551 |
+
msgctxt "Editor button"
|
552 |
+
msgid "Fuzzy"
|
553 |
+
msgstr "отметить, как неточный перевод"
|
554 |
+
|
555 |
+
#: ../tpl/admin-poedit.tpl.php:140
|
556 |
+
msgid "Filter translations"
|
557 |
+
msgstr "Поиск фразы по фильтру"
|
558 |
+
|
559 |
+
#: ../tpl/admin-poedit.tpl.php:145
|
560 |
+
msgctxt "Editor button"
|
561 |
+
msgid "Help"
|
562 |
+
msgstr "Помощь"
|
563 |
+
|
564 |
+
#: ../tpl/admin-poinit.tpl.php:21
|
565 |
+
#, php-format
|
566 |
+
msgid "Initialize new translations in %s"
|
567 |
+
msgstr "Начать новый перевод %s"
|
568 |
+
|
569 |
+
#: ../tpl/admin-poinit.tpl.php:34
|
570 |
+
msgid "Select from common languages"
|
571 |
+
msgstr "Выбрать язык из списка"
|
572 |
+
|
573 |
+
#: ../tpl/admin-poinit.tpl.php:45
|
574 |
+
msgctxt "Form label"
|
575 |
+
msgid "or enter any language code"
|
576 |
+
msgstr "или ввести код языка"
|
577 |
+
|
578 |
+
#: ../tpl/admin-poinit.tpl.php:68
|
579 |
+
msgctxt "Submit button"
|
580 |
+
msgid "Start translating"
|
581 |
+
msgstr "Начать перевод"
|
582 |
+
|
583 |
+
#: ../tpl/admin-root.tpl.php:18
|
584 |
+
msgid "New version available"
|
585 |
+
msgstr "Доступна новая версия"
|
586 |
+
|
587 |
+
#: ../tpl/admin-root.tpl.php:21
|
588 |
+
#, php-format
|
589 |
+
msgid "Upgrade to version %s of Loco Translate"
|
590 |
+
msgstr "Обновить Loco Translate до версии %s"
|
591 |
+
|
592 |
+
#: ../tpl/admin-root.tpl.php:31
|
593 |
+
msgid "Select a plugin or theme to translate"
|
594 |
+
msgstr "Выбрать плагин или тему для перевода "
|
595 |
+
|
596 |
+
#: ../tpl/admin-root.tpl.php:40
|
597 |
+
msgctxt "Package list header"
|
598 |
+
msgid "Themes"
|
599 |
+
msgstr "Темы"
|
600 |
+
|
601 |
+
#: ../tpl/admin-root.tpl.php:53
|
602 |
+
msgctxt "Package list header"
|
603 |
+
msgid "Plugins"
|
604 |
+
msgstr "Плагины"
|
605 |
+
|
606 |
+
#: ../tpl/admin-root.tpl.php:66
|
607 |
+
msgctxt "Package list header"
|
608 |
+
msgid "Core"
|
609 |
+
msgstr "Ядро"
|
languages/loco-translate-sv_SE.mo
ADDED
Binary file
|
languages/loco-translate-sv_SE.po
ADDED
@@ -0,0 +1,606 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: Loco Translate\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: Thu Jan 02 2014 17:30:57 GMT+0000 (GMT)\n"
|
6 |
+
"PO-Revision-Date: Mon Jun 09 2014 17:13:41 GMT+0100 (BST)\n"
|
7 |
+
"Last-Translator: Tim <support@localise.biz>\n"
|
8 |
+
"Language-Team: \n"
|
9 |
+
"Language: Swedish\n"
|
10 |
+
"Plural-Forms: nplurals=2; plural=n != 1\n"
|
11 |
+
"MIME-Version: 1.0\n"
|
12 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
+
"Content-Transfer-Encoding: 8bit\n"
|
14 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
+
"X-Poedit-Basepath: .\n"
|
16 |
+
"X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
|
17 |
+
"__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
|
18 |
+
"_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
|
19 |
+
"esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
|
20 |
+
"esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
|
21 |
+
"X-Generator: Loco - https://localise.biz/\n"
|
22 |
+
"X-Loco-Target-Locale: sv_SE\n"
|
23 |
+
"X-Poedit-SearchPath-0: .."
|
24 |
+
|
25 |
+
#. label for the window pane holding native translation
|
26 |
+
#: ../pub/js/lang/dummy.php:25
|
27 |
+
msgctxt "Editor pane"
|
28 |
+
msgid "Source text"
|
29 |
+
msgstr ""
|
30 |
+
|
31 |
+
#. where %s is the language, e.g French translation
|
32 |
+
#: ../pub/js/lang/dummy.php:27
|
33 |
+
#, php-format
|
34 |
+
msgctxt "Editor pane"
|
35 |
+
msgid "%s translation"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. label for the window pane holding translator comments
|
39 |
+
#: ../pub/js/lang/dummy.php:29
|
40 |
+
msgctxt "Editor pane"
|
41 |
+
msgid "Comments"
|
42 |
+
msgstr ""
|
43 |
+
|
44 |
+
#. label for the window pane holding message context
|
45 |
+
#: ../pub/js/lang/dummy.php:31
|
46 |
+
msgctxt "Editor pane"
|
47 |
+
msgid "Context"
|
48 |
+
msgstr ""
|
49 |
+
|
50 |
+
#: ../tpl/admin-poinit.tpl.php:58
|
51 |
+
#, php-format
|
52 |
+
msgctxt "Form label"
|
53 |
+
msgid "create in <code>%s</code>"
|
54 |
+
msgstr ""
|
55 |
+
|
56 |
+
#. Translators: Bold text label in admin error messages
|
57 |
+
#: ../lib/loco-admin.php:15 ../pub/js/lang/dummy.php:8
|
58 |
+
msgctxt "Message label"
|
59 |
+
msgid "Error"
|
60 |
+
msgstr "Fel"
|
61 |
+
|
62 |
+
#: ../lib/loco-admin.php:24 ../pub/js/lang/dummy.php:7
|
63 |
+
msgctxt "Message label"
|
64 |
+
msgid "Warning"
|
65 |
+
msgstr "Varning"
|
66 |
+
|
67 |
+
#: ../lib/loco-admin.php:33 ../pub/js/lang/dummy.php:6
|
68 |
+
msgctxt "Message label"
|
69 |
+
msgid "OK"
|
70 |
+
msgstr "OK"
|
71 |
+
|
72 |
+
#: ../lib/loco-admin.php:42
|
73 |
+
msgid "Permission denied"
|
74 |
+
msgstr "Behörighet saknas"
|
75 |
+
|
76 |
+
#: ../lib/loco-admin.php:58
|
77 |
+
msgid "Settings saved"
|
78 |
+
msgstr "Inställningar sparade"
|
79 |
+
|
80 |
+
#: ../lib/loco-admin.php:133
|
81 |
+
msgid "New PO file"
|
82 |
+
msgstr "Ny PO-fil"
|
83 |
+
|
84 |
+
#: ../lib/loco-admin.php:240
|
85 |
+
msgid "You must specify a valid locale for a new PO file"
|
86 |
+
msgstr "Du måste ange en giltig landskod för en ny PO-fil"
|
87 |
+
|
88 |
+
#: ../lib/loco-admin.php:265 ../lib/loco-admin.php:367
|
89 |
+
msgid "No translatable strings found"
|
90 |
+
msgstr "Inga översättbara strängar hittades"
|
91 |
+
|
92 |
+
#: ../lib/loco-admin.php:265
|
93 |
+
msgid "Cannot create a PO file."
|
94 |
+
msgstr "Kunde ej skapa en PO-fil."
|
95 |
+
|
96 |
+
#: ../lib/loco-admin.php:272
|
97 |
+
#, php-format
|
98 |
+
msgid "PO file already exists with locale %s"
|
99 |
+
msgstr "PO-fil finns redan med landskod %s"
|
100 |
+
|
101 |
+
#: ../lib/loco-admin.php:313
|
102 |
+
#, php-format
|
103 |
+
msgid "PO file used as template. This will be renamed to %s on first save"
|
104 |
+
msgstr ""
|
105 |
+
"PO-fil används som mall. Den kommer att byta namn till %s när du väljer att "
|
106 |
+
"spara"
|
107 |
+
|
108 |
+
#: ../lib/loco-admin.php:337
|
109 |
+
msgid ""
|
110 |
+
"File cannot be created automatically. Fix the file permissions or use "
|
111 |
+
"Download instead of Save"
|
112 |
+
msgstr ""
|
113 |
+
"Fil kunde ej skapas automatiskt. Ändra filrättigheter eller använd Ladda ner "
|
114 |
+
"istället för Spara"
|
115 |
+
|
116 |
+
#: ../lib/loco-admin.php:346 ../lib/loco-admin.php:355
|
117 |
+
#, php-format
|
118 |
+
msgid "%s file is empty"
|
119 |
+
msgstr "%s-filen är tom"
|
120 |
+
|
121 |
+
#: ../lib/loco-admin.php:347 ../lib/loco-admin.php:362
|
122 |
+
msgid "Run Sync to update from source code"
|
123 |
+
msgstr "Använd Synka för att uppdatera från källkoden"
|
124 |
+
|
125 |
+
#: ../lib/loco-admin.php:351
|
126 |
+
msgid "No strings could be extracted from source code"
|
127 |
+
msgstr "Inga strängar kunde hittas från källkoden"
|
128 |
+
|
129 |
+
#: ../lib/loco-admin.php:358
|
130 |
+
#, php-format
|
131 |
+
msgid "Run Sync to update from %s"
|
132 |
+
msgstr "Använd Synka för att uppdatera från %s"
|
133 |
+
|
134 |
+
#: ../lib/loco-admin.php:377
|
135 |
+
msgid "Source code has been modified, run Sync to update POT"
|
136 |
+
msgstr "Källkod har ändrats, använd Synka för att uppdatera POT"
|
137 |
+
|
138 |
+
#: ../lib/loco-admin.php:381
|
139 |
+
msgid "POT has been modified since PO file was saved, run Sync to update"
|
140 |
+
msgstr "POT har ändrats sedan PO-filen sparades, använd Synka för att uppdatera"
|
141 |
+
|
142 |
+
#: ../lib/loco-admin.php:468
|
143 |
+
msgid "Bad file path"
|
144 |
+
msgstr "Ogiltig sökväg"
|
145 |
+
|
146 |
+
#: ../lib/loco-admin.php:692
|
147 |
+
#, php-format
|
148 |
+
msgid "Empty or invalid %s file"
|
149 |
+
msgstr "Tom eller ogiltigt %s-fil"
|
150 |
+
|
151 |
+
#: ../lib/loco-admin.php:696
|
152 |
+
#, php-format
|
153 |
+
msgid "%s file has no header"
|
154 |
+
msgstr "%s-filen saknar header"
|
155 |
+
|
156 |
+
#: ../lib/loco-admin.php:828
|
157 |
+
msgctxt "Add button"
|
158 |
+
msgid "New template"
|
159 |
+
msgstr "Ny mall"
|
160 |
+
|
161 |
+
#: ../lib/loco-admin.php:847
|
162 |
+
msgctxt "Add button"
|
163 |
+
msgid "New language"
|
164 |
+
msgstr "Nytt språk"
|
165 |
+
|
166 |
+
#: ../lib/loco-admin.php:886
|
167 |
+
#, php-format
|
168 |
+
msgid "%s%% translated"
|
169 |
+
msgstr "%s%% översatt"
|
170 |
+
|
171 |
+
#: ../lib/loco-admin.php:886
|
172 |
+
#, php-format
|
173 |
+
msgid "1 string"
|
174 |
+
msgid_plural "%s strings"
|
175 |
+
msgstr[0] "1 sträng"
|
176 |
+
msgstr[1] "%s strängar"
|
177 |
+
|
178 |
+
#: ../lib/loco-admin.php:889
|
179 |
+
#, php-format
|
180 |
+
msgid "%s fuzzy"
|
181 |
+
msgstr "%s oklar"
|
182 |
+
|
183 |
+
#: ../lib/loco-admin.php:892
|
184 |
+
#, php-format
|
185 |
+
msgid "%s untranslated"
|
186 |
+
msgstr "%s ej översatta"
|
187 |
+
|
188 |
+
#: ../lib/loco-admin.php:934
|
189 |
+
msgid "Failed to compile MO file with built-in compiler"
|
190 |
+
msgstr "Det gick ej att sammanställa MO-fil med inbyggd kompilator"
|
191 |
+
|
192 |
+
#: ../lib/loco-admin.php:977 ../tpl/admin-nav.tpl.php:21
|
193 |
+
msgid "Loco, Translation Management"
|
194 |
+
msgstr "Loco, Translation Management"
|
195 |
+
|
196 |
+
#: ../lib/loco-admin.php:978 ../lib/loco-admin.php:1009
|
197 |
+
msgid "Manage translations"
|
198 |
+
msgstr "Språkfiler"
|
199 |
+
|
200 |
+
#: ../lib/loco-admin.php:979
|
201 |
+
msgid "Translation options"
|
202 |
+
msgstr "Inställningar"
|
203 |
+
|
204 |
+
#: ../lib/loco-admin.php:986
|
205 |
+
msgid "Loco Translate"
|
206 |
+
msgstr "Översättningar"
|
207 |
+
|
208 |
+
#: ../lib/loco-admin.php:1010 ../tpl/admin-fscheck.tpl.php:7 ../tpl/admin-opts.
|
209 |
+
#: tpl.php:7 ../tpl/admin-poedit.tpl.php:8 ../tpl/admin-poinit.tpl.php:8 ..
|
210 |
+
#: tpl/admin-root.tpl.php:7
|
211 |
+
msgid "Settings"
|
212 |
+
msgstr "Inställningar"
|
213 |
+
|
214 |
+
#: ../lib/loco-admin.php:1034
|
215 |
+
msgid "File download failed"
|
216 |
+
msgstr "Nedladdning misslyckades"
|
217 |
+
|
218 |
+
#: ../lib/loco-locales.php:65
|
219 |
+
msgid "Unknown language"
|
220 |
+
msgstr "Okänt språk"
|
221 |
+
|
222 |
+
#: ../lib/loco-packages.php:423 ../lib/loco-packages.php:430
|
223 |
+
msgid "Some files not writable"
|
224 |
+
msgstr "Vissa filer är ej skrivbara"
|
225 |
+
|
226 |
+
#: ../lib/loco-packages.php:433
|
227 |
+
msgid "Some files missing"
|
228 |
+
msgstr "Vissa filer saknas"
|
229 |
+
|
230 |
+
#: ../lib/loco-packages.php:439 ../lib/loco-packages.php:443
|
231 |
+
#, php-format
|
232 |
+
msgid "\"%s\" folder not writable"
|
233 |
+
msgstr "Mappen \"%s\" är ej skrivbar"
|
234 |
+
|
235 |
+
#: ../lib/loco-packages.php:464
|
236 |
+
msgid "POT file not writable"
|
237 |
+
msgstr "POT-filen är ej skrivbar"
|
238 |
+
|
239 |
+
#: ../lib/loco-packages.php:469
|
240 |
+
msgid "PO file not writable"
|
241 |
+
msgstr "PO-filen är ej skrivbar"
|
242 |
+
|
243 |
+
#: ../lib/loco-packages.php:471
|
244 |
+
msgid "MO file not writable"
|
245 |
+
msgstr "MO-filen är ej skrivbar"
|
246 |
+
|
247 |
+
#: ../lib/loco-packages.php:471
|
248 |
+
msgid "MO file not found"
|
249 |
+
msgstr "MO-fil hittades ej"
|
250 |
+
|
251 |
+
#: ../lib/loco-packages.php:476
|
252 |
+
msgid "Folder not writable"
|
253 |
+
msgstr "Mappen är ej skrivbar"
|
254 |
+
|
255 |
+
#: ../lib/loco-packages.php:476
|
256 |
+
msgid "Folder not found"
|
257 |
+
msgstr "Mappen hittades ej"
|
258 |
+
|
259 |
+
#: ../php/loco-ajax.php:17 ../php/loco-download.php:21
|
260 |
+
msgid "User does not have permission to manage translations"
|
261 |
+
msgstr "Användaren saknar behörighet att hantera översättningar"
|
262 |
+
|
263 |
+
#: ../php/loco-download.php:75 ../php/loco-posave.php:121
|
264 |
+
#, php-format
|
265 |
+
msgid "Failed to compile MO file with %s, check your settings"
|
266 |
+
msgstr "Det gick ej sammanställa MO-filen med %s , kontrollera dina inställningar"
|
267 |
+
|
268 |
+
#: ../php/loco-posave.php:10 ../php/loco-posync.php:9
|
269 |
+
msgid "Invalid data posted to server"
|
270 |
+
msgstr "Ogiltig data skickades till servern"
|
271 |
+
|
272 |
+
#: ../php/loco-posave.php:23 ../php/loco-posync.php:22
|
273 |
+
#, php-format
|
274 |
+
msgid "Package not found called %s"
|
275 |
+
msgstr "Paket %s ej hittat"
|
276 |
+
|
277 |
+
#: ../php/loco-posave.php:58
|
278 |
+
#, php-format
|
279 |
+
msgid ""
|
280 |
+
"Web server cannot create backups in \"%s\". Fix file permissions or disable "
|
281 |
+
"backups in settings"
|
282 |
+
msgstr ""
|
283 |
+
"Webbservern kunde ej skapa säkerhetskopior i \"%s\". Ändra filrättigheter "
|
284 |
+
"eller inaktivera säkerhetskopior i inställningarna"
|
285 |
+
|
286 |
+
#: ../php/loco-posave.php:66
|
287 |
+
#, php-format
|
288 |
+
msgid ""
|
289 |
+
"Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or "
|
290 |
+
"create it manually."
|
291 |
+
msgstr ""
|
292 |
+
"Webbservern kunde ej skapa mappen \"%s\" i \"%s\". Ändra filrättigheter eller "
|
293 |
+
"skapa den manuellt."
|
294 |
+
|
295 |
+
#: ../php/loco-posave.php:69
|
296 |
+
#, php-format
|
297 |
+
msgid ""
|
298 |
+
"Web server cannot create files in the \"%s\" directory. Fix file permissions "
|
299 |
+
"or use the download function."
|
300 |
+
msgstr ""
|
301 |
+
"Webbservern kunde ej skapa filer i mappen \"%s\". Ändra filrättigheter eller "
|
302 |
+
"använd nedladdningsfunktionen."
|
303 |
+
|
304 |
+
#: ../php/loco-posave.php:81
|
305 |
+
#, php-format
|
306 |
+
msgid ""
|
307 |
+
"%s file is not writable by the web server. Fix file permissions or download "
|
308 |
+
"and copy to \"%s/%s\"."
|
309 |
+
msgstr ""
|
310 |
+
"%s-filen är ej skrivbar av webbservern. Ändra filrättigheter eller ladda ner "
|
311 |
+
"och kopiera till \"%s/%s\"."
|
312 |
+
|
313 |
+
#: ../php/loco-posave.php:102
|
314 |
+
msgid "Cannot create MO file"
|
315 |
+
msgstr "Kunde ej skapa MO-fil"
|
316 |
+
|
317 |
+
#: ../php/loco-posave.php:105
|
318 |
+
msgid "Cannot overwrite MO file"
|
319 |
+
msgstr "Kunde ej skriva över MO-fil"
|
320 |
+
|
321 |
+
#: ../php/loco-posave.php:131
|
322 |
+
msgid "Failed to write MO file"
|
323 |
+
msgstr "Kunde ej skapa MO-fil"
|
324 |
+
|
325 |
+
#: ../php/loco-posync.php:47
|
326 |
+
msgid "No source files in this package, nothing to sync"
|
327 |
+
msgstr "Inga källfiler hittades till denna språkfil, ingenting att synkronisera"
|
328 |
+
|
329 |
+
#: ../php/loco-posync.php:57
|
330 |
+
msgid "No strings could be extracted from source files"
|
331 |
+
msgstr "Inga strängar kunde hittas från källfiler"
|
332 |
+
|
333 |
+
#: ../pub/js/lang/dummy.php:9
|
334 |
+
msgid "Unknown error"
|
335 |
+
msgstr "Okänt fel"
|
336 |
+
|
337 |
+
#: ../pub/js/lang/dummy.php:10
|
338 |
+
msgid "PO file saved"
|
339 |
+
msgstr "PO-fil sparad"
|
340 |
+
|
341 |
+
#: ../pub/js/lang/dummy.php:11
|
342 |
+
msgid "and MO file compiled"
|
343 |
+
msgstr "och MO-fil sammanställd"
|
344 |
+
|
345 |
+
#: ../pub/js/lang/dummy.php:12
|
346 |
+
#, php-format
|
347 |
+
msgid "Merged from %s"
|
348 |
+
msgstr "Sammanslagen från %s"
|
349 |
+
|
350 |
+
#: ../pub/js/lang/dummy.php:13
|
351 |
+
msgid "Merged from source code"
|
352 |
+
msgstr "Sammanslagen från källkod"
|
353 |
+
|
354 |
+
#: ../pub/js/lang/dummy.php:14
|
355 |
+
#, php-format
|
356 |
+
msgid "Already up to date with %s"
|
357 |
+
msgstr "Redan aktuell med %s"
|
358 |
+
|
359 |
+
#: ../pub/js/lang/dummy.php:15
|
360 |
+
msgid "Already up to date with source code"
|
361 |
+
msgstr "Redan aktuell med källkod"
|
362 |
+
|
363 |
+
#: ../pub/js/lang/dummy.php:16
|
364 |
+
#, php-format
|
365 |
+
msgid "1 new string added"
|
366 |
+
msgid_plural "%s new strings added"
|
367 |
+
msgstr[0] "1 ny sträng tillagd"
|
368 |
+
msgstr[1] "%s nya strängar tillagda"
|
369 |
+
|
370 |
+
#: ../pub/js/lang/dummy.php:17
|
371 |
+
#, php-format
|
372 |
+
msgid "1 obsolete string removed"
|
373 |
+
msgid_plural "%s obsolete strings removed"
|
374 |
+
msgstr[0] "1 föråldrad sträng togs bort"
|
375 |
+
msgstr[1] "%s föråldrade strängar togs bort"
|
376 |
+
|
377 |
+
#: ../pub/js/lang/dummy.php:18
|
378 |
+
msgid "Your changes will be lost if you continue without saving"
|
379 |
+
msgstr "Dina ändringar kommer att gå förlorade om du fortsätter utan att spara"
|
380 |
+
|
381 |
+
#: ../pub/js/lang/dummy.php:37
|
382 |
+
msgid "Translation"
|
383 |
+
msgstr "Översättning"
|
384 |
+
|
385 |
+
#: ../tpl/admin-fscheck.tpl.php:6 ../tpl/admin-opts.tpl.php:6 ../tpl/admin-poedit.
|
386 |
+
#: tpl.php:6 ../tpl/admin-poinit.tpl.php:6 ../tpl/admin-root.tpl.php:6
|
387 |
+
msgid "Packages"
|
388 |
+
msgstr "Språkfiler"
|
389 |
+
|
390 |
+
#: ../tpl/admin-fscheck.tpl.php:8
|
391 |
+
msgid "File check"
|
392 |
+
msgstr "Filrättigheter"
|
393 |
+
|
394 |
+
#: ../tpl/admin-fscheck.tpl.php:17
|
395 |
+
#, php-format
|
396 |
+
msgid "File system permissions for %s"
|
397 |
+
msgstr "Filsystem rättigheter för %s"
|
398 |
+
|
399 |
+
#: ../tpl/admin-fscheck.tpl.php:40
|
400 |
+
msgid "Back"
|
401 |
+
msgstr "Tillbaka"
|
402 |
+
|
403 |
+
#: ../tpl/admin-fscheck.tpl.php:41 ../tpl/admin-opts.tpl.php:96
|
404 |
+
msgid "Get help"
|
405 |
+
msgstr "Hjälp"
|
406 |
+
|
407 |
+
#: ../tpl/admin-list.tpl.php:11
|
408 |
+
msgctxt "Table header"
|
409 |
+
msgid "Package details"
|
410 |
+
msgstr "Beskrivning"
|
411 |
+
|
412 |
+
#: ../tpl/admin-list.tpl.php:14
|
413 |
+
msgctxt "Table header"
|
414 |
+
msgid "Translations (PO)"
|
415 |
+
msgstr "Översättningar (PO)"
|
416 |
+
|
417 |
+
#: ../tpl/admin-list.tpl.php:17
|
418 |
+
msgctxt "Table header"
|
419 |
+
msgid "Template (POT)"
|
420 |
+
msgstr "Mall (POT)"
|
421 |
+
|
422 |
+
#: ../tpl/admin-list.tpl.php:20
|
423 |
+
msgctxt "Table header"
|
424 |
+
msgid "File permissions"
|
425 |
+
msgstr "Filrättigheter"
|
426 |
+
|
427 |
+
#: ../tpl/admin-list.tpl.php:43
|
428 |
+
#, php-format
|
429 |
+
msgid "1 language"
|
430 |
+
msgid_plural "%u languages"
|
431 |
+
msgstr[0] "1 språk"
|
432 |
+
msgstr[1] "%u språk"
|
433 |
+
|
434 |
+
#: ../tpl/admin-list.tpl.php:48
|
435 |
+
msgctxt "Modified time"
|
436 |
+
msgid "Updated"
|
437 |
+
msgstr "Senast sparad"
|
438 |
+
|
439 |
+
#: ../tpl/admin-list.tpl.php:97
|
440 |
+
msgid "OK"
|
441 |
+
msgstr "OK"
|
442 |
+
|
443 |
+
#: ../tpl/admin-nav.tpl.php:20
|
444 |
+
msgid "Powered by"
|
445 |
+
msgstr "Drivs av"
|
446 |
+
|
447 |
+
#: ../tpl/admin-nav.tpl.php:26
|
448 |
+
msgid "Loco may not work as expected"
|
449 |
+
msgstr "Loco kanske ej fungerar som väntat"
|
450 |
+
|
451 |
+
#: ../tpl/admin-opts.tpl.php:18
|
452 |
+
msgid "Configure Loco Translate"
|
453 |
+
msgstr "Konfigurera Loco Translate"
|
454 |
+
|
455 |
+
#: ../tpl/admin-opts.tpl.php:27 ../tpl/admin-opts.tpl.php:31
|
456 |
+
msgid "Compiling MO files"
|
457 |
+
msgstr "Sammanställa MO-filer"
|
458 |
+
|
459 |
+
#: ../tpl/admin-opts.tpl.php:36
|
460 |
+
msgid "Use built-in MO compiler."
|
461 |
+
msgstr "Använd inbyggd MO-kompilator."
|
462 |
+
|
463 |
+
#: ../tpl/admin-opts.tpl.php:42
|
464 |
+
msgid "Use external command:"
|
465 |
+
msgstr "Använd externt kommando:"
|
466 |
+
|
467 |
+
#: ../tpl/admin-opts.tpl.php:47
|
468 |
+
msgid "Enter path to msgfmt on server"
|
469 |
+
msgstr "Skriv in sökväg till msgfmt på servern"
|
470 |
+
|
471 |
+
#: ../tpl/admin-opts.tpl.php:54
|
472 |
+
msgid "Generate hash tables"
|
473 |
+
msgstr "Generera hashtabeller"
|
474 |
+
|
475 |
+
#: ../tpl/admin-opts.tpl.php:61 ../tpl/admin-opts.tpl.php:65
|
476 |
+
msgid "Backing up PO files"
|
477 |
+
msgstr "Säkerhetskopiera PO-filer"
|
478 |
+
|
479 |
+
#: ../tpl/admin-opts.tpl.php:69
|
480 |
+
msgid "Number of backups to keep of each file:"
|
481 |
+
msgstr "Antal säkerhetskopior att behålla för varje fil:"
|
482 |
+
|
483 |
+
#: ../tpl/admin-opts.tpl.php:77 ../tpl/admin-opts.tpl.php:81
|
484 |
+
msgid "Experimental features"
|
485 |
+
msgstr "Experimentella funktioner"
|
486 |
+
|
487 |
+
#: ../tpl/admin-opts.tpl.php:86
|
488 |
+
msgid "Enable Wordpress core translations"
|
489 |
+
msgstr "Aktivera Wordpress översättningar"
|
490 |
+
|
491 |
+
#: ../tpl/admin-opts.tpl.php:95
|
492 |
+
msgid "Save settings"
|
493 |
+
msgstr "Spara inställningar"
|
494 |
+
|
495 |
+
#: ../tpl/admin-poedit.tpl.php:31
|
496 |
+
msgid "Template file"
|
497 |
+
msgstr "Mallfil"
|
498 |
+
|
499 |
+
#: ../tpl/admin-poedit.tpl.php:39
|
500 |
+
msgctxt "Dropdown label"
|
501 |
+
msgid "Switch to..."
|
502 |
+
msgstr "Växla till..."
|
503 |
+
|
504 |
+
#: ../tpl/admin-poedit.tpl.php:57
|
505 |
+
msgid "Updated"
|
506 |
+
msgstr "Uppdaterad"
|
507 |
+
|
508 |
+
#: ../tpl/admin-poedit.tpl.php:62
|
509 |
+
msgid "never"
|
510 |
+
msgstr "aldrig"
|
511 |
+
|
512 |
+
#: ../tpl/admin-poedit.tpl.php:87
|
513 |
+
msgctxt "Editor button"
|
514 |
+
msgid "Save"
|
515 |
+
msgstr "Spara"
|
516 |
+
|
517 |
+
#: ../tpl/admin-poedit.tpl.php:94 ../tpl/admin-poedit.tpl.php:103
|
518 |
+
msgctxt "Editor button"
|
519 |
+
msgid "Download"
|
520 |
+
msgstr "Ladda ner"
|
521 |
+
|
522 |
+
#: ../tpl/admin-poedit.tpl.php:115
|
523 |
+
msgctxt "Editor button"
|
524 |
+
msgid "Sync"
|
525 |
+
msgstr "Synka"
|
526 |
+
|
527 |
+
#: ../tpl/admin-poedit.tpl.php:120
|
528 |
+
msgctxt "Editor button"
|
529 |
+
msgid "Revert"
|
530 |
+
msgstr "Återgå"
|
531 |
+
|
532 |
+
#: ../tpl/admin-poedit.tpl.php:125
|
533 |
+
msgctxt "Editor button"
|
534 |
+
msgid "Add"
|
535 |
+
msgstr "Lägg till"
|
536 |
+
|
537 |
+
#: ../tpl/admin-poedit.tpl.php:130
|
538 |
+
msgctxt "Editor button"
|
539 |
+
msgid "Del"
|
540 |
+
msgstr "Radera"
|
541 |
+
|
542 |
+
#: ../tpl/admin-poedit.tpl.php:135
|
543 |
+
msgctxt "Editor button"
|
544 |
+
msgid "Fuzzy"
|
545 |
+
msgstr "Oklar"
|
546 |
+
|
547 |
+
#: ../tpl/admin-poedit.tpl.php:139
|
548 |
+
msgid "Filter translations"
|
549 |
+
msgstr "Sök översättningar"
|
550 |
+
|
551 |
+
#: ../tpl/admin-poedit.tpl.php:143
|
552 |
+
msgctxt "Editor button"
|
553 |
+
msgid "Help"
|
554 |
+
msgstr "Hjälp"
|
555 |
+
|
556 |
+
#: ../tpl/admin-poinit.tpl.php:21
|
557 |
+
#, php-format
|
558 |
+
msgid "Initialize new translations in %s"
|
559 |
+
msgstr "Skapa nya översättningar i %s"
|
560 |
+
|
561 |
+
#: ../tpl/admin-poinit.tpl.php:34
|
562 |
+
msgid "Select from common languages"
|
563 |
+
msgstr "Välj bland vanliga språk"
|
564 |
+
|
565 |
+
#: ../tpl/admin-poinit.tpl.php:45
|
566 |
+
msgctxt "Form label"
|
567 |
+
msgid "or enter any language code"
|
568 |
+
msgstr "eller skriv valfri landskod"
|
569 |
+
|
570 |
+
#: ../tpl/admin-poinit.tpl.php:63
|
571 |
+
msgctxt "Form label"
|
572 |
+
msgid "create in global languages directory"
|
573 |
+
msgstr "skapa i den globala språk katalogen"
|
574 |
+
|
575 |
+
#: ../tpl/admin-poinit.tpl.php:68
|
576 |
+
msgctxt "Submit button"
|
577 |
+
msgid "Start translating"
|
578 |
+
msgstr "Börja översätta"
|
579 |
+
|
580 |
+
#: ../tpl/admin-root.tpl.php:18
|
581 |
+
msgid "New version available"
|
582 |
+
msgstr "Ny version tillgänglig"
|
583 |
+
|
584 |
+
#: ../tpl/admin-root.tpl.php:21
|
585 |
+
#, php-format
|
586 |
+
msgid "Upgrade to version %s of Loco Translate"
|
587 |
+
msgstr "Uppdatera till version %s av Loco Translate"
|
588 |
+
|
589 |
+
#: ../tpl/admin-root.tpl.php:31
|
590 |
+
msgid "Select a plugin or theme to translate"
|
591 |
+
msgstr "Välj ett tillägg eller tema att översätta"
|
592 |
+
|
593 |
+
#: ../tpl/admin-root.tpl.php:40
|
594 |
+
msgctxt "Package list header"
|
595 |
+
msgid "Themes"
|
596 |
+
msgstr "Teman"
|
597 |
+
|
598 |
+
#: ../tpl/admin-root.tpl.php:53
|
599 |
+
msgctxt "Package list header"
|
600 |
+
msgid "Plugins"
|
601 |
+
msgstr "Tillägg"
|
602 |
+
|
603 |
+
#: ../tpl/admin-root.tpl.php:66
|
604 |
+
msgctxt "Package list header"
|
605 |
+
msgid "Core"
|
606 |
+
msgstr "Wordpress"
|
languages/loco-translate-tr_TR.mo
CHANGED
Binary file
|
languages/loco-translate-tr_TR.po
CHANGED
@@ -3,22 +3,22 @@ msgstr ""
|
|
3 |
"Project-Id-Version: Loco Translate\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: Thu Jan 02 2014 17:30:57 GMT+0000 (GMT)\n"
|
6 |
-
"PO-Revision-Date:
|
7 |
-
"Last-Translator:
|
8 |
"Language-Team: \n"
|
9 |
"Language: Turkish\n"
|
10 |
-
"Plural-Forms: nplurals=
|
11 |
"MIME-Version: 1.0\n"
|
12 |
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
"Content-Transfer-Encoding: 8bit\n"
|
14 |
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
"X-Poedit-Basepath: .\n"
|
16 |
"X-Poedit-SearchPath-0: ..\n"
|
17 |
-
"X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;
|
18 |
-
"_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;
|
19 |
-
"_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;
|
20 |
-
"esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;
|
21 |
-
"comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
|
22 |
"X-Generator: Loco - https://localise.biz/\n"
|
23 |
"X-Loco-Target-Locale: tr_TR"
|
24 |
|
@@ -26,32 +26,69 @@ msgstr ""
|
|
26 |
msgid "Permission denied"
|
27 |
msgstr ""
|
28 |
|
29 |
-
#: ../lib/loco-admin.php:
|
|
|
30 |
msgid "PO file used as template. This will be renamed to %s on first save"
|
31 |
msgstr ""
|
32 |
|
33 |
-
#: ../lib/loco-admin.php:
|
|
|
34 |
msgid "Empty or invalid %s file"
|
35 |
msgstr ""
|
36 |
|
37 |
-
#: ../lib/loco-admin.php:
|
|
|
38 |
msgid "%s file has no header"
|
39 |
msgstr ""
|
40 |
|
41 |
-
#: ../lib/loco-admin.php:
|
42 |
msgid "Translation options"
|
43 |
msgstr ""
|
44 |
|
45 |
-
#: ../lib/loco-admin.php:
|
46 |
msgid "Loco Translate"
|
47 |
msgstr ""
|
48 |
|
|
|
|
|
|
|
|
|
49 |
#: ../php/loco-posave.php:58
|
|
|
50 |
msgid ""
|
51 |
"Web server cannot create backups in \"%s\". Fix file permissions or disable "
|
52 |
"backups in settings"
|
53 |
msgstr ""
|
54 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
#: ../tpl/admin-nav.tpl.php:26
|
56 |
msgid "Loco may not work as expected"
|
57 |
msgstr ""
|
@@ -64,18 +101,37 @@ msgstr ""
|
|
64 |
msgid "Number of backups to keep of each file:"
|
65 |
msgstr ""
|
66 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
#. Translators: Bold text label in admin error messages
|
68 |
-
#: ../lib/loco-admin.php:15 ../pub/js/lang/dummy.php:
|
69 |
msgctxt "Message label"
|
70 |
msgid "Error"
|
71 |
msgstr "Hata"
|
72 |
|
73 |
-
#: ../lib/loco-admin.php:24 ../pub/js/lang/dummy.php:
|
74 |
msgctxt "Message label"
|
75 |
msgid "Warning"
|
76 |
msgstr "Uyarı"
|
77 |
|
78 |
-
#: ../lib/loco-admin.php:33 ../pub/js/lang/dummy.php:
|
79 |
msgctxt "Message label"
|
80 |
msgid "OK"
|
81 |
msgstr "TAMAM"
|
@@ -84,145 +140,155 @@ msgstr "TAMAM"
|
|
84 |
msgid "Settings saved"
|
85 |
msgstr "Ayarlar saklandı"
|
86 |
|
87 |
-
#: ../lib/loco-admin.php:
|
88 |
msgid "New PO file"
|
89 |
msgstr "Yeni PO Dosyası"
|
90 |
|
91 |
-
#: ../lib/loco-admin.php:
|
92 |
msgid "You must specify a valid locale for a new PO file"
|
93 |
msgstr "Yeni PO dosyası için geçerli bir locale değeri belirtmek zorundasınız"
|
94 |
|
95 |
-
#: ../lib/loco-admin.php:
|
96 |
msgid "No translatable strings found"
|
97 |
msgstr "Çevrilebilir cümle bulunamadı"
|
98 |
|
99 |
-
#: ../lib/loco-admin.php:
|
100 |
msgid "Cannot create a PO file."
|
101 |
msgstr "Bir PO dosyası oluşturulamıyor."
|
102 |
|
103 |
-
#: ../lib/loco-admin.php:
|
|
|
104 |
msgid "PO file already exists with locale %s"
|
105 |
msgstr "PO dosyası %s locale değeri ile zaten mevcut"
|
106 |
|
107 |
-
#: ../lib/loco-admin.php:
|
108 |
msgid ""
|
109 |
-
"File cannot be created automatically. Fix the file permissions or use
|
110 |
-
"instead of Save"
|
111 |
msgstr ""
|
112 |
"Dosya otomatik olarak oluşturulamıyor. Dosya izinlerini tamir edin ya da "
|
113 |
"Saklama yerine İndirin."
|
114 |
|
115 |
-
#: ../lib/loco-admin.php:
|
|
|
116 |
msgid "%s file is empty"
|
117 |
msgstr "%s dosyası boş"
|
118 |
|
119 |
-
#: ../lib/loco-admin.php:
|
120 |
msgid "Run Sync to update from source code"
|
121 |
msgstr "Kaynak dosyasından güncelleme için Senkr. çalıştır"
|
122 |
|
123 |
-
#: ../lib/loco-admin.php:
|
124 |
msgid "No strings could be extracted from source code"
|
125 |
msgstr "Kaynak kodundan herhangi cümle çıkarılamadı"
|
126 |
|
127 |
-
#: ../lib/loco-admin.php:
|
|
|
128 |
msgid "Run Sync to update from %s"
|
129 |
msgstr "%s üzerinden güncelleme için Senkr. çalıştır"
|
130 |
|
131 |
-
#: ../lib/loco-admin.php:
|
132 |
msgid "Source code has been modified, run Sync to update POT"
|
133 |
msgstr "Kaynak dosyası değiştirilmiş, POT güncellemesi için Senkr. çalıştırın"
|
134 |
|
135 |
-
#: ../lib/loco-admin.php:
|
136 |
msgid "POT has been modified since PO file was saved, run Sync to update"
|
137 |
msgstr ""
|
138 |
-
"PO dosyası en son saklandığından beri POT değişikliğe uğramış, güncelleme
|
139 |
-
"Senkr. çalıştırın."
|
140 |
|
141 |
-
#: ../lib/loco-admin.php:
|
142 |
msgid "Bad file path"
|
143 |
msgstr "Uygun olmayan dosya yolu"
|
144 |
|
145 |
-
#: ../lib/loco-admin.php:
|
146 |
msgctxt "Add button"
|
147 |
msgid "New template"
|
148 |
msgstr "Yeni şablon"
|
149 |
|
150 |
-
#: ../lib/loco-admin.php:
|
151 |
msgctxt "Add button"
|
152 |
msgid "New language"
|
153 |
msgstr "Yeni dil"
|
154 |
|
155 |
-
#: ../lib/loco-admin.php:
|
|
|
156 |
msgid "%s%% translated"
|
157 |
msgstr "%s%% çevrildi"
|
158 |
|
159 |
-
#: ../lib/loco-admin.php:
|
|
|
160 |
msgid "1 string"
|
161 |
msgid_plural "%s strings"
|
162 |
msgstr[0] "1 cümle"
|
163 |
msgstr[1] "%s cümle"
|
164 |
|
165 |
-
#: ../lib/loco-admin.php:
|
|
|
166 |
msgid "%s fuzzy"
|
167 |
msgstr "%s bulanık"
|
168 |
|
169 |
-
#: ../lib/loco-admin.php:
|
|
|
170 |
msgid "%s untranslated"
|
171 |
msgstr "%s çevrilmemiş"
|
172 |
|
173 |
-
#: ../lib/loco-admin.php:
|
174 |
msgid "Failed to compile MO file with built-in compiler"
|
175 |
msgstr "Dahili derleyici ile MO derlemesinde hata"
|
176 |
|
177 |
-
#: ../lib/loco-admin.php:
|
178 |
msgid "Loco, Translation Management"
|
179 |
msgstr "Loco, Çevri Yönetimi"
|
180 |
|
181 |
-
#: ../lib/loco-admin.php:
|
182 |
msgid "Manage translations"
|
183 |
msgstr "Çevrileri Yönet"
|
184 |
|
185 |
-
#: ../lib/loco-admin.php:
|
|
|
|
|
186 |
msgid "Settings"
|
187 |
msgstr "Ayarlar"
|
188 |
|
189 |
-
#: ../lib/loco-admin.php:
|
190 |
msgid "File download failed"
|
191 |
msgstr "Dosya indirme hatası"
|
192 |
|
193 |
-
#: ../lib/loco-locales.php:
|
194 |
msgid "Unknown language"
|
195 |
msgstr "Bilinmeyen dil"
|
196 |
|
197 |
-
#: ../lib/loco-packages.php:
|
198 |
msgid "Some files not writable"
|
199 |
msgstr "Bazı dosyalar yazılabilir değil"
|
200 |
|
201 |
-
#: ../lib/loco-packages.php:
|
202 |
msgid "Some files missing"
|
203 |
msgstr "Bazı dosyalar eksik"
|
204 |
|
205 |
-
#: ../lib/loco-packages.php:
|
|
|
206 |
msgid "\"%s\" folder not writable"
|
207 |
msgstr "\"%s\" dizini yazılabilir değil"
|
208 |
|
209 |
-
#: ../lib/loco-packages.php:
|
210 |
msgid "POT file not writable"
|
211 |
msgstr "POT dosyası yazılabilir değil"
|
212 |
|
213 |
-
#: ../lib/loco-packages.php:
|
214 |
msgid "PO file not writable"
|
215 |
msgstr "PO dosyası yazılabilir değil"
|
216 |
|
217 |
-
#: ../lib/loco-packages.php:
|
218 |
msgid "MO file not writable"
|
219 |
msgstr "MO dosyası yazılabilir değil"
|
220 |
|
221 |
-
#: ../lib/loco-packages.php:
|
222 |
msgid "MO file not found"
|
223 |
msgstr "MO dosyası bulunamadı"
|
224 |
|
225 |
-
#: ../lib/loco-packages.php:
|
226 |
msgid "Folder not writable"
|
227 |
msgstr "Dizin yazılabilir değil"
|
228 |
|
@@ -231,6 +297,7 @@ msgid "User does not have permission to manage translations"
|
|
231 |
msgstr "Kullanıcı çevrileri yönetmeye yetkili değil"
|
232 |
|
233 |
#: ../php/loco-download.php:75 ../php/loco-posave.php:121
|
|
|
234 |
msgid "Failed to compile MO file with %s, check your settings"
|
235 |
msgstr "%s ile MO dosyası derlemede hata, ayarlarınızı denetleyin"
|
236 |
|
@@ -239,32 +306,36 @@ msgid "Invalid data posted to server"
|
|
239 |
msgstr "Sunucuya gönderili veri geçersiz"
|
240 |
|
241 |
#: ../php/loco-posave.php:23 ../php/loco-posync.php:22
|
|
|
242 |
msgid "Package not found called %s"
|
243 |
msgstr "%s isimli paket bulunamadı"
|
244 |
|
245 |
#: ../php/loco-posave.php:66
|
|
|
246 |
msgid ""
|
247 |
-
"Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or
|
248 |
-
"it manually."
|
249 |
msgstr ""
|
250 |
-
"Web sunucusu \"%s\" dizini oluşturamıyor \"%s\" içinde. Dosya izinlerini tamir
|
251 |
-
"ya da elle oluşturun."
|
252 |
|
253 |
#: ../php/loco-posave.php:69
|
|
|
254 |
msgid ""
|
255 |
-
"Web server cannot create files in the \"%s\" directory. Fix file permissions
|
256 |
-
"use the download function."
|
257 |
msgstr ""
|
258 |
"Web sunucusu \"%s\" dizini içinde dosya oluşturamıyor. Dosya izinlerini tamir "
|
259 |
"edin ya da indirme fonksiyonunu kullanın."
|
260 |
|
261 |
#: ../php/loco-posave.php:81
|
|
|
262 |
msgid ""
|
263 |
-
"%s file is not writable by the web server. Fix file permissions or download
|
264 |
-
"copy to \"%s/%s\"."
|
265 |
msgstr ""
|
266 |
-
"%s dosyası web sunucu tarafından yazılamaz durumda. Dosya izinlerini tamir
|
267 |
-
"ya da indirip \"%s/%s\" yoluna kopyalayın."
|
268 |
|
269 |
#: ../php/loco-posave.php:102
|
270 |
msgid "Cannot create MO file"
|
@@ -278,59 +349,64 @@ msgstr "MO dosyası üzerine yazılamıyor"
|
|
278 |
msgid "Failed to write MO file"
|
279 |
msgstr "MO dosyası yazmada hata"
|
280 |
|
281 |
-
#: ../php/loco-posync.php:
|
282 |
msgid "No strings could be extracted from source files"
|
283 |
msgstr "Kaynak dosyalarından herhangi cümle çıkartılamadı"
|
284 |
|
285 |
-
#: ../pub/js/lang/dummy.php:
|
286 |
msgid "Unknown error"
|
287 |
msgstr "Bilinmeyen hata"
|
288 |
|
289 |
-
#: ../pub/js/lang/dummy.php:
|
290 |
msgid "PO file saved"
|
291 |
msgstr "PO dosyası saklandı"
|
292 |
|
293 |
-
#: ../pub/js/lang/dummy.php:
|
294 |
msgid "and MO file compiled"
|
295 |
msgstr "ve MO dosyası derlendi"
|
296 |
|
297 |
-
#: ../pub/js/lang/dummy.php:
|
|
|
298 |
msgid "Merged from %s"
|
299 |
msgstr "%s üzerinden birleştirildi"
|
300 |
|
301 |
-
#: ../pub/js/lang/dummy.php:
|
302 |
msgid "Merged from source code"
|
303 |
msgstr "Kaynak kodtan birleştirildi"
|
304 |
|
305 |
-
#: ../pub/js/lang/dummy.php:
|
|
|
306 |
msgid "Already up to date with %s"
|
307 |
msgstr "%s ile zaten güncel"
|
308 |
|
309 |
-
#: ../pub/js/lang/dummy.php:
|
310 |
msgid "Already up to date with source code"
|
311 |
msgstr "Kaynak kod ile zaten güncel"
|
312 |
|
313 |
-
#: ../pub/js/lang/dummy.php:
|
|
|
314 |
msgid "1 new string added"
|
315 |
msgid_plural "%s new strings added"
|
316 |
msgstr[0] "1 yeni cümle eklendi"
|
317 |
msgstr[1] "%s yeni cümle eklendi"
|
318 |
|
319 |
-
#: ../pub/js/lang/dummy.php:
|
|
|
320 |
msgid "1 obsolete string removed"
|
321 |
msgid_plural "%s obsolete strings removed"
|
322 |
msgstr[0] "1 kullanımdışı cümle kaldırıldı"
|
323 |
msgstr[1] "%s kullanımdışı cümle kaldırıldı"
|
324 |
|
325 |
-
#: ../pub/js/lang/dummy.php:
|
326 |
msgid "Your changes will be lost if you continue without saving"
|
327 |
msgstr "Saklamadan devam ederseniz değişiklikleriniz kaybolacak"
|
328 |
|
329 |
-
#: ../pub/js/lang/dummy.php:
|
330 |
msgid "Translation"
|
331 |
msgstr "Çevri"
|
332 |
|
333 |
-
#: ../tpl/admin-fscheck.tpl.php:6 ../tpl/admin-opts.tpl.php:6 ../tpl/admin-poedit.
|
|
|
334 |
msgid "Packages"
|
335 |
msgstr "Paketler"
|
336 |
|
@@ -339,6 +415,7 @@ msgid "File check"
|
|
339 |
msgstr "Dosya denetimi"
|
340 |
|
341 |
#: ../tpl/admin-fscheck.tpl.php:17
|
|
|
342 |
msgid "File system permissions for %s"
|
343 |
msgstr "%s için dosya sistemi izinleri"
|
344 |
|
@@ -346,7 +423,7 @@ msgstr "%s için dosya sistemi izinleri"
|
|
346 |
msgid "Back"
|
347 |
msgstr "Geri"
|
348 |
|
349 |
-
#: ../tpl/admin-fscheck.tpl.php:41 ../tpl/admin-opts.tpl.php:
|
350 |
msgid "Get help"
|
351 |
msgstr "Yardım al"
|
352 |
|
@@ -371,6 +448,7 @@ msgid "File permissions"
|
|
371 |
msgstr "Dosya izinleri"
|
372 |
|
373 |
#: ../tpl/admin-list.tpl.php:43
|
|
|
374 |
msgid "1 language"
|
375 |
msgid_plural "%u languages"
|
376 |
msgstr[0] "1 dil"
|
@@ -381,7 +459,7 @@ msgctxt "Modified time"
|
|
381 |
msgid "Updated"
|
382 |
msgstr "Güncellenme"
|
383 |
|
384 |
-
#: ../tpl/admin-list.tpl.php:
|
385 |
msgid "OK"
|
386 |
msgstr "TAMAM"
|
387 |
|
@@ -413,7 +491,7 @@ msgstr "Sunucudaki msgfmt'ye yol gir"
|
|
413 |
msgid "Generate hash tables"
|
414 |
msgstr "Hash tabloları üret"
|
415 |
|
416 |
-
#: ../tpl/admin-opts.tpl.php:
|
417 |
msgid "Save settings"
|
418 |
msgstr "Ayarları sakla"
|
419 |
|
@@ -479,6 +557,7 @@ msgid "Help"
|
|
479 |
msgstr "Yardım"
|
480 |
|
481 |
#: ../tpl/admin-poinit.tpl.php:21
|
|
|
482 |
msgid "Initialize new translations in %s"
|
483 |
msgstr "%s için yeni çevriler başlat"
|
484 |
|
@@ -491,7 +570,7 @@ msgctxt "Form label"
|
|
491 |
msgid "or enter any language code"
|
492 |
msgstr "veya herhangi dil kodu gir"
|
493 |
|
494 |
-
#: ../tpl/admin-poinit.tpl.php:
|
495 |
msgctxt "Submit button"
|
496 |
msgid "Start translating"
|
497 |
msgstr "Çevriye Başla"
|
@@ -501,6 +580,7 @@ msgid "New version available"
|
|
501 |
msgstr "Yeni versiyon mevcut"
|
502 |
|
503 |
#: ../tpl/admin-root.tpl.php:21
|
|
|
504 |
msgid "Upgrade to version %s of Loco Translate"
|
505 |
msgstr "Loco Translate'in %s versiyonuna yükselt"
|
506 |
|
3 |
"Project-Id-Version: Loco Translate\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: Thu Jan 02 2014 17:30:57 GMT+0000 (GMT)\n"
|
6 |
+
"PO-Revision-Date: Mon Jun 09 2014 17:13:45 GMT+0100 (BST)\n"
|
7 |
+
"Last-Translator: Tim <support@localise.biz>\n"
|
8 |
"Language-Team: \n"
|
9 |
"Language: Turkish\n"
|
10 |
+
"Plural-Forms: nplurals=1; plural=0\n"
|
11 |
"MIME-Version: 1.0\n"
|
12 |
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
"Content-Transfer-Encoding: 8bit\n"
|
14 |
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
"X-Poedit-Basepath: .\n"
|
16 |
"X-Poedit-SearchPath-0: ..\n"
|
17 |
+
"X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
|
18 |
+
"__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
|
19 |
+
"_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
|
20 |
+
"esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
|
21 |
+
"esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
|
22 |
"X-Generator: Loco - https://localise.biz/\n"
|
23 |
"X-Loco-Target-Locale: tr_TR"
|
24 |
|
26 |
msgid "Permission denied"
|
27 |
msgstr ""
|
28 |
|
29 |
+
#: ../lib/loco-admin.php:313
|
30 |
+
#, php-format
|
31 |
msgid "PO file used as template. This will be renamed to %s on first save"
|
32 |
msgstr ""
|
33 |
|
34 |
+
#: ../lib/loco-admin.php:692
|
35 |
+
#, php-format
|
36 |
msgid "Empty or invalid %s file"
|
37 |
msgstr ""
|
38 |
|
39 |
+
#: ../lib/loco-admin.php:696
|
40 |
+
#, php-format
|
41 |
msgid "%s file has no header"
|
42 |
msgstr ""
|
43 |
|
44 |
+
#: ../lib/loco-admin.php:979
|
45 |
msgid "Translation options"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: ../lib/loco-admin.php:986
|
49 |
msgid "Loco Translate"
|
50 |
msgstr ""
|
51 |
|
52 |
+
#: ../lib/loco-packages.php:476
|
53 |
+
msgid "Folder not found"
|
54 |
+
msgstr ""
|
55 |
+
|
56 |
#: ../php/loco-posave.php:58
|
57 |
+
#, php-format
|
58 |
msgid ""
|
59 |
"Web server cannot create backups in \"%s\". Fix file permissions or disable "
|
60 |
"backups in settings"
|
61 |
msgstr ""
|
62 |
|
63 |
+
#: ../php/loco-posync.php:47
|
64 |
+
msgid "No source files in this package, nothing to sync"
|
65 |
+
msgstr ""
|
66 |
+
|
67 |
+
#. label for the window pane holding native translation
|
68 |
+
#: ../pub/js/lang/dummy.php:25
|
69 |
+
msgctxt "Editor pane"
|
70 |
+
msgid "Source text"
|
71 |
+
msgstr ""
|
72 |
+
|
73 |
+
#. where %s is the language, e.g French translation
|
74 |
+
#: ../pub/js/lang/dummy.php:27
|
75 |
+
#, php-format
|
76 |
+
msgctxt "Editor pane"
|
77 |
+
msgid "%s translation"
|
78 |
+
msgstr ""
|
79 |
+
|
80 |
+
#. label for the window pane holding translator comments
|
81 |
+
#: ../pub/js/lang/dummy.php:29
|
82 |
+
msgctxt "Editor pane"
|
83 |
+
msgid "Comments"
|
84 |
+
msgstr ""
|
85 |
+
|
86 |
+
#. label for the window pane holding message context
|
87 |
+
#: ../pub/js/lang/dummy.php:31
|
88 |
+
msgctxt "Editor pane"
|
89 |
+
msgid "Context"
|
90 |
+
msgstr ""
|
91 |
+
|
92 |
#: ../tpl/admin-nav.tpl.php:26
|
93 |
msgid "Loco may not work as expected"
|
94 |
msgstr ""
|
101 |
msgid "Number of backups to keep of each file:"
|
102 |
msgstr ""
|
103 |
|
104 |
+
#: ../tpl/admin-opts.tpl.php:77 ../tpl/admin-opts.tpl.php:81
|
105 |
+
msgid "Experimental features"
|
106 |
+
msgstr ""
|
107 |
+
|
108 |
+
#: ../tpl/admin-opts.tpl.php:86
|
109 |
+
msgid "Enable Wordpress core translations"
|
110 |
+
msgstr ""
|
111 |
+
|
112 |
+
#: ../tpl/admin-poinit.tpl.php:58
|
113 |
+
#, php-format
|
114 |
+
msgctxt "Form label"
|
115 |
+
msgid "create in <code>%s</code>"
|
116 |
+
msgstr ""
|
117 |
+
|
118 |
+
#: ../tpl/admin-poinit.tpl.php:63
|
119 |
+
msgctxt "Form label"
|
120 |
+
msgid "create in global languages directory"
|
121 |
+
msgstr ""
|
122 |
+
|
123 |
#. Translators: Bold text label in admin error messages
|
124 |
+
#: ../lib/loco-admin.php:15 ../pub/js/lang/dummy.php:8
|
125 |
msgctxt "Message label"
|
126 |
msgid "Error"
|
127 |
msgstr "Hata"
|
128 |
|
129 |
+
#: ../lib/loco-admin.php:24 ../pub/js/lang/dummy.php:7
|
130 |
msgctxt "Message label"
|
131 |
msgid "Warning"
|
132 |
msgstr "Uyarı"
|
133 |
|
134 |
+
#: ../lib/loco-admin.php:33 ../pub/js/lang/dummy.php:6
|
135 |
msgctxt "Message label"
|
136 |
msgid "OK"
|
137 |
msgstr "TAMAM"
|
140 |
msgid "Settings saved"
|
141 |
msgstr "Ayarlar saklandı"
|
142 |
|
143 |
+
#: ../lib/loco-admin.php:133
|
144 |
msgid "New PO file"
|
145 |
msgstr "Yeni PO Dosyası"
|
146 |
|
147 |
+
#: ../lib/loco-admin.php:240
|
148 |
msgid "You must specify a valid locale for a new PO file"
|
149 |
msgstr "Yeni PO dosyası için geçerli bir locale değeri belirtmek zorundasınız"
|
150 |
|
151 |
+
#: ../lib/loco-admin.php:265 ../lib/loco-admin.php:367
|
152 |
msgid "No translatable strings found"
|
153 |
msgstr "Çevrilebilir cümle bulunamadı"
|
154 |
|
155 |
+
#: ../lib/loco-admin.php:265
|
156 |
msgid "Cannot create a PO file."
|
157 |
msgstr "Bir PO dosyası oluşturulamıyor."
|
158 |
|
159 |
+
#: ../lib/loco-admin.php:272
|
160 |
+
#, php-format
|
161 |
msgid "PO file already exists with locale %s"
|
162 |
msgstr "PO dosyası %s locale değeri ile zaten mevcut"
|
163 |
|
164 |
+
#: ../lib/loco-admin.php:337
|
165 |
msgid ""
|
166 |
+
"File cannot be created automatically. Fix the file permissions or use "
|
167 |
+
"Download instead of Save"
|
168 |
msgstr ""
|
169 |
"Dosya otomatik olarak oluşturulamıyor. Dosya izinlerini tamir edin ya da "
|
170 |
"Saklama yerine İndirin."
|
171 |
|
172 |
+
#: ../lib/loco-admin.php:346 ../lib/loco-admin.php:355
|
173 |
+
#, php-format
|
174 |
msgid "%s file is empty"
|
175 |
msgstr "%s dosyası boş"
|
176 |
|
177 |
+
#: ../lib/loco-admin.php:347 ../lib/loco-admin.php:362
|
178 |
msgid "Run Sync to update from source code"
|
179 |
msgstr "Kaynak dosyasından güncelleme için Senkr. çalıştır"
|
180 |
|
181 |
+
#: ../lib/loco-admin.php:351
|
182 |
msgid "No strings could be extracted from source code"
|
183 |
msgstr "Kaynak kodundan herhangi cümle çıkarılamadı"
|
184 |
|
185 |
+
#: ../lib/loco-admin.php:358
|
186 |
+
#, php-format
|
187 |
msgid "Run Sync to update from %s"
|
188 |
msgstr "%s üzerinden güncelleme için Senkr. çalıştır"
|
189 |
|
190 |
+
#: ../lib/loco-admin.php:377
|
191 |
msgid "Source code has been modified, run Sync to update POT"
|
192 |
msgstr "Kaynak dosyası değiştirilmiş, POT güncellemesi için Senkr. çalıştırın"
|
193 |
|
194 |
+
#: ../lib/loco-admin.php:381
|
195 |
msgid "POT has been modified since PO file was saved, run Sync to update"
|
196 |
msgstr ""
|
197 |
+
"PO dosyası en son saklandığından beri POT değişikliğe uğramış, güncelleme "
|
198 |
+
"için Senkr. çalıştırın."
|
199 |
|
200 |
+
#: ../lib/loco-admin.php:468
|
201 |
msgid "Bad file path"
|
202 |
msgstr "Uygun olmayan dosya yolu"
|
203 |
|
204 |
+
#: ../lib/loco-admin.php:828
|
205 |
msgctxt "Add button"
|
206 |
msgid "New template"
|
207 |
msgstr "Yeni şablon"
|
208 |
|
209 |
+
#: ../lib/loco-admin.php:847
|
210 |
msgctxt "Add button"
|
211 |
msgid "New language"
|
212 |
msgstr "Yeni dil"
|
213 |
|
214 |
+
#: ../lib/loco-admin.php:886
|
215 |
+
#, php-format
|
216 |
msgid "%s%% translated"
|
217 |
msgstr "%s%% çevrildi"
|
218 |
|
219 |
+
#: ../lib/loco-admin.php:886
|
220 |
+
#, php-format
|
221 |
msgid "1 string"
|
222 |
msgid_plural "%s strings"
|
223 |
msgstr[0] "1 cümle"
|
224 |
msgstr[1] "%s cümle"
|
225 |
|
226 |
+
#: ../lib/loco-admin.php:889
|
227 |
+
#, php-format
|
228 |
msgid "%s fuzzy"
|
229 |
msgstr "%s bulanık"
|
230 |
|
231 |
+
#: ../lib/loco-admin.php:892
|
232 |
+
#, php-format
|
233 |
msgid "%s untranslated"
|
234 |
msgstr "%s çevrilmemiş"
|
235 |
|
236 |
+
#: ../lib/loco-admin.php:934
|
237 |
msgid "Failed to compile MO file with built-in compiler"
|
238 |
msgstr "Dahili derleyici ile MO derlemesinde hata"
|
239 |
|
240 |
+
#: ../lib/loco-admin.php:977 ../tpl/admin-nav.tpl.php:21
|
241 |
msgid "Loco, Translation Management"
|
242 |
msgstr "Loco, Çevri Yönetimi"
|
243 |
|
244 |
+
#: ../lib/loco-admin.php:978 ../lib/loco-admin.php:1009
|
245 |
msgid "Manage translations"
|
246 |
msgstr "Çevrileri Yönet"
|
247 |
|
248 |
+
#: ../lib/loco-admin.php:1010 ../tpl/admin-fscheck.tpl.php:7 ../tpl/admin-opts.
|
249 |
+
#: tpl.php:7 ../tpl/admin-poedit.tpl.php:8 ../tpl/admin-poinit.tpl.php:8 ..
|
250 |
+
#: tpl/admin-root.tpl.php:7
|
251 |
msgid "Settings"
|
252 |
msgstr "Ayarlar"
|
253 |
|
254 |
+
#: ../lib/loco-admin.php:1034
|
255 |
msgid "File download failed"
|
256 |
msgstr "Dosya indirme hatası"
|
257 |
|
258 |
+
#: ../lib/loco-locales.php:65
|
259 |
msgid "Unknown language"
|
260 |
msgstr "Bilinmeyen dil"
|
261 |
|
262 |
+
#: ../lib/loco-packages.php:423 ../lib/loco-packages.php:430
|
263 |
msgid "Some files not writable"
|
264 |
msgstr "Bazı dosyalar yazılabilir değil"
|
265 |
|
266 |
+
#: ../lib/loco-packages.php:433
|
267 |
msgid "Some files missing"
|
268 |
msgstr "Bazı dosyalar eksik"
|
269 |
|
270 |
+
#: ../lib/loco-packages.php:439 ../lib/loco-packages.php:443
|
271 |
+
#, php-format
|
272 |
msgid "\"%s\" folder not writable"
|
273 |
msgstr "\"%s\" dizini yazılabilir değil"
|
274 |
|
275 |
+
#: ../lib/loco-packages.php:464
|
276 |
msgid "POT file not writable"
|
277 |
msgstr "POT dosyası yazılabilir değil"
|
278 |
|
279 |
+
#: ../lib/loco-packages.php:469
|
280 |
msgid "PO file not writable"
|
281 |
msgstr "PO dosyası yazılabilir değil"
|
282 |
|
283 |
+
#: ../lib/loco-packages.php:471
|
284 |
msgid "MO file not writable"
|
285 |
msgstr "MO dosyası yazılabilir değil"
|
286 |
|
287 |
+
#: ../lib/loco-packages.php:471
|
288 |
msgid "MO file not found"
|
289 |
msgstr "MO dosyası bulunamadı"
|
290 |
|
291 |
+
#: ../lib/loco-packages.php:476
|
292 |
msgid "Folder not writable"
|
293 |
msgstr "Dizin yazılabilir değil"
|
294 |
|
297 |
msgstr "Kullanıcı çevrileri yönetmeye yetkili değil"
|
298 |
|
299 |
#: ../php/loco-download.php:75 ../php/loco-posave.php:121
|
300 |
+
#, php-format
|
301 |
msgid "Failed to compile MO file with %s, check your settings"
|
302 |
msgstr "%s ile MO dosyası derlemede hata, ayarlarınızı denetleyin"
|
303 |
|
306 |
msgstr "Sunucuya gönderili veri geçersiz"
|
307 |
|
308 |
#: ../php/loco-posave.php:23 ../php/loco-posync.php:22
|
309 |
+
#, php-format
|
310 |
msgid "Package not found called %s"
|
311 |
msgstr "%s isimli paket bulunamadı"
|
312 |
|
313 |
#: ../php/loco-posave.php:66
|
314 |
+
#, php-format
|
315 |
msgid ""
|
316 |
+
"Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or "
|
317 |
+
"create it manually."
|
318 |
msgstr ""
|
319 |
+
"Web sunucusu \"%s\" dizini oluşturamıyor \"%s\" içinde. Dosya izinlerini tamir "
|
320 |
+
"edin ya da elle oluşturun."
|
321 |
|
322 |
#: ../php/loco-posave.php:69
|
323 |
+
#, php-format
|
324 |
msgid ""
|
325 |
+
"Web server cannot create files in the \"%s\" directory. Fix file permissions "
|
326 |
+
"or use the download function."
|
327 |
msgstr ""
|
328 |
"Web sunucusu \"%s\" dizini içinde dosya oluşturamıyor. Dosya izinlerini tamir "
|
329 |
"edin ya da indirme fonksiyonunu kullanın."
|
330 |
|
331 |
#: ../php/loco-posave.php:81
|
332 |
+
#, php-format
|
333 |
msgid ""
|
334 |
+
"%s file is not writable by the web server. Fix file permissions or download "
|
335 |
+
"and copy to \"%s/%s\"."
|
336 |
msgstr ""
|
337 |
+
"%s dosyası web sunucu tarafından yazılamaz durumda. Dosya izinlerini tamir "
|
338 |
+
"edin ya da indirip \"%s/%s\" yoluna kopyalayın."
|
339 |
|
340 |
#: ../php/loco-posave.php:102
|
341 |
msgid "Cannot create MO file"
|
349 |
msgid "Failed to write MO file"
|
350 |
msgstr "MO dosyası yazmada hata"
|
351 |
|
352 |
+
#: ../php/loco-posync.php:57
|
353 |
msgid "No strings could be extracted from source files"
|
354 |
msgstr "Kaynak dosyalarından herhangi cümle çıkartılamadı"
|
355 |
|
356 |
+
#: ../pub/js/lang/dummy.php:9
|
357 |
msgid "Unknown error"
|
358 |
msgstr "Bilinmeyen hata"
|
359 |
|
360 |
+
#: ../pub/js/lang/dummy.php:10
|
361 |
msgid "PO file saved"
|
362 |
msgstr "PO dosyası saklandı"
|
363 |
|
364 |
+
#: ../pub/js/lang/dummy.php:11
|
365 |
msgid "and MO file compiled"
|
366 |
msgstr "ve MO dosyası derlendi"
|
367 |
|
368 |
+
#: ../pub/js/lang/dummy.php:12
|
369 |
+
#, php-format
|
370 |
msgid "Merged from %s"
|
371 |
msgstr "%s üzerinden birleştirildi"
|
372 |
|
373 |
+
#: ../pub/js/lang/dummy.php:13
|
374 |
msgid "Merged from source code"
|
375 |
msgstr "Kaynak kodtan birleştirildi"
|
376 |
|
377 |
+
#: ../pub/js/lang/dummy.php:14
|
378 |
+
#, php-format
|
379 |
msgid "Already up to date with %s"
|
380 |
msgstr "%s ile zaten güncel"
|
381 |
|
382 |
+
#: ../pub/js/lang/dummy.php:15
|
383 |
msgid "Already up to date with source code"
|
384 |
msgstr "Kaynak kod ile zaten güncel"
|
385 |
|
386 |
+
#: ../pub/js/lang/dummy.php:16
|
387 |
+
#, php-format
|
388 |
msgid "1 new string added"
|
389 |
msgid_plural "%s new strings added"
|
390 |
msgstr[0] "1 yeni cümle eklendi"
|
391 |
msgstr[1] "%s yeni cümle eklendi"
|
392 |
|
393 |
+
#: ../pub/js/lang/dummy.php:17
|
394 |
+
#, php-format
|
395 |
msgid "1 obsolete string removed"
|
396 |
msgid_plural "%s obsolete strings removed"
|
397 |
msgstr[0] "1 kullanımdışı cümle kaldırıldı"
|
398 |
msgstr[1] "%s kullanımdışı cümle kaldırıldı"
|
399 |
|
400 |
+
#: ../pub/js/lang/dummy.php:18
|
401 |
msgid "Your changes will be lost if you continue without saving"
|
402 |
msgstr "Saklamadan devam ederseniz değişiklikleriniz kaybolacak"
|
403 |
|
404 |
+
#: ../pub/js/lang/dummy.php:37
|
405 |
msgid "Translation"
|
406 |
msgstr "Çevri"
|
407 |
|
408 |
+
#: ../tpl/admin-fscheck.tpl.php:6 ../tpl/admin-opts.tpl.php:6 ../tpl/admin-poedit.
|
409 |
+
#: tpl.php:6 ../tpl/admin-poinit.tpl.php:6 ../tpl/admin-root.tpl.php:6
|
410 |
msgid "Packages"
|
411 |
msgstr "Paketler"
|
412 |
|
415 |
msgstr "Dosya denetimi"
|
416 |
|
417 |
#: ../tpl/admin-fscheck.tpl.php:17
|
418 |
+
#, php-format
|
419 |
msgid "File system permissions for %s"
|
420 |
msgstr "%s için dosya sistemi izinleri"
|
421 |
|
423 |
msgid "Back"
|
424 |
msgstr "Geri"
|
425 |
|
426 |
+
#: ../tpl/admin-fscheck.tpl.php:41 ../tpl/admin-opts.tpl.php:96
|
427 |
msgid "Get help"
|
428 |
msgstr "Yardım al"
|
429 |
|
448 |
msgstr "Dosya izinleri"
|
449 |
|
450 |
#: ../tpl/admin-list.tpl.php:43
|
451 |
+
#, php-format
|
452 |
msgid "1 language"
|
453 |
msgid_plural "%u languages"
|
454 |
msgstr[0] "1 dil"
|
459 |
msgid "Updated"
|
460 |
msgstr "Güncellenme"
|
461 |
|
462 |
+
#: ../tpl/admin-list.tpl.php:97
|
463 |
msgid "OK"
|
464 |
msgstr "TAMAM"
|
465 |
|
491 |
msgid "Generate hash tables"
|
492 |
msgstr "Hash tabloları üret"
|
493 |
|
494 |
+
#: ../tpl/admin-opts.tpl.php:95
|
495 |
msgid "Save settings"
|
496 |
msgstr "Ayarları sakla"
|
497 |
|
557 |
msgstr "Yardım"
|
558 |
|
559 |
#: ../tpl/admin-poinit.tpl.php:21
|
560 |
+
#, php-format
|
561 |
msgid "Initialize new translations in %s"
|
562 |
msgstr "%s için yeni çevriler başlat"
|
563 |
|
570 |
msgid "or enter any language code"
|
571 |
msgstr "veya herhangi dil kodu gir"
|
572 |
|
573 |
+
#: ../tpl/admin-poinit.tpl.php:68
|
574 |
msgctxt "Submit button"
|
575 |
msgid "Start translating"
|
576 |
msgstr "Çevriye Başla"
|
580 |
msgstr "Yeni versiyon mevcut"
|
581 |
|
582 |
#: ../tpl/admin-root.tpl.php:21
|
583 |
+
#, php-format
|
584 |
msgid "Upgrade to version %s of Loco Translate"
|
585 |
msgstr "Loco Translate'in %s versiyonuna yükselt"
|
586 |
|
languages/loco-translate.pot
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
-
|
2 |
#, fuzzy
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: Loco Translate\n"
|
6 |
"Report-Msgid-Bugs-To: \n"
|
7 |
"POT-Creation-Date: Thu Jan 02 2014 17:30:57 GMT+0000 (GMT)\n"
|
8 |
-
"POT-Revision-Date: Wed
|
9 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
@@ -17,25 +17,25 @@ msgstr ""
|
|
17 |
"X-Poedit-SourceCharset: UTF-8\n"
|
18 |
"X-Poedit-Basepath: .\n"
|
19 |
"X-Poedit-SearchPath-0: ..\n"
|
20 |
-
"X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;
|
21 |
-
"_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;
|
22 |
-
"_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;
|
23 |
-
"esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;
|
24 |
-
"comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
|
25 |
"X-Generator: Loco - https://localise.biz/"
|
26 |
|
27 |
#. Translators: Bold text label in admin error messages
|
28 |
-
#: ../lib/loco-admin.php:15
|
29 |
msgctxt "Message label"
|
30 |
msgid "Error"
|
31 |
msgstr ""
|
32 |
|
33 |
-
#: ../lib/loco-admin.php:24
|
34 |
msgctxt "Message label"
|
35 |
msgid "Warning"
|
36 |
msgstr ""
|
37 |
|
38 |
-
#: ../lib/loco-admin.php:33
|
39 |
msgctxt "Message label"
|
40 |
msgid "OK"
|
41 |
msgstr ""
|
@@ -48,169 +48,187 @@ msgstr ""
|
|
48 |
msgid "Settings saved"
|
49 |
msgstr ""
|
50 |
|
51 |
-
#: ../lib/loco-admin.php:
|
52 |
msgid "New PO file"
|
53 |
msgstr ""
|
54 |
|
55 |
-
#: ../lib/loco-admin.php:
|
56 |
msgid "You must specify a valid locale for a new PO file"
|
57 |
msgstr ""
|
58 |
|
59 |
-
#: ../lib/loco-admin.php:
|
60 |
msgid "No translatable strings found"
|
61 |
msgstr ""
|
62 |
|
63 |
-
#: ../lib/loco-admin.php:
|
64 |
msgid "Cannot create a PO file."
|
65 |
msgstr ""
|
66 |
|
67 |
-
#: ../lib/loco-admin.php:
|
|
|
68 |
msgid "PO file already exists with locale %s"
|
69 |
msgstr ""
|
70 |
|
71 |
-
#: ../lib/loco-admin.php:
|
|
|
72 |
msgid "PO file used as template. This will be renamed to %s on first save"
|
73 |
msgstr ""
|
74 |
|
75 |
-
#: ../lib/loco-admin.php:
|
76 |
msgid ""
|
77 |
-
"File cannot be created automatically. Fix the file permissions or use
|
78 |
-
"instead of Save"
|
79 |
msgstr ""
|
80 |
|
81 |
-
#: ../lib/loco-admin.php:
|
|
|
82 |
msgid "%s file is empty"
|
83 |
msgstr ""
|
84 |
|
85 |
-
#: ../lib/loco-admin.php:
|
86 |
msgid "Run Sync to update from source code"
|
87 |
msgstr ""
|
88 |
|
89 |
-
#: ../lib/loco-admin.php:
|
90 |
msgid "No strings could be extracted from source code"
|
91 |
msgstr ""
|
92 |
|
93 |
-
#: ../lib/loco-admin.php:
|
|
|
94 |
msgid "Run Sync to update from %s"
|
95 |
msgstr ""
|
96 |
|
97 |
-
#: ../lib/loco-admin.php:
|
98 |
msgid "Source code has been modified, run Sync to update POT"
|
99 |
msgstr ""
|
100 |
|
101 |
-
#: ../lib/loco-admin.php:
|
102 |
msgid "POT has been modified since PO file was saved, run Sync to update"
|
103 |
msgstr ""
|
104 |
|
105 |
-
#: ../lib/loco-admin.php:
|
106 |
msgid "Bad file path"
|
107 |
msgstr ""
|
108 |
|
109 |
-
#: ../lib/loco-admin.php:
|
|
|
110 |
msgid "Empty or invalid %s file"
|
111 |
msgstr ""
|
112 |
|
113 |
-
#: ../lib/loco-admin.php:
|
|
|
114 |
msgid "%s file has no header"
|
115 |
msgstr ""
|
116 |
|
117 |
-
#: ../lib/loco-admin.php:
|
118 |
msgctxt "Add button"
|
119 |
msgid "New template"
|
120 |
msgstr ""
|
121 |
|
122 |
-
#: ../lib/loco-admin.php:
|
123 |
msgctxt "Add button"
|
124 |
msgid "New language"
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: ../lib/loco-admin.php:
|
|
|
128 |
msgid "%s%% translated"
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: ../lib/loco-admin.php:
|
|
|
132 |
msgid "1 string"
|
133 |
msgid_plural "%s strings"
|
134 |
msgstr[0] ""
|
135 |
msgstr[1] ""
|
136 |
|
137 |
-
#: ../lib/loco-admin.php:
|
|
|
138 |
msgid "%s fuzzy"
|
139 |
msgstr ""
|
140 |
|
141 |
-
#: ../lib/loco-admin.php:
|
|
|
142 |
msgid "%s untranslated"
|
143 |
msgstr ""
|
144 |
|
145 |
-
#: ../lib/loco-admin.php:
|
146 |
msgid "Failed to compile MO file with built-in compiler"
|
147 |
msgstr ""
|
148 |
|
149 |
-
#: ../lib/loco-admin.php:
|
150 |
msgid "Loco, Translation Management"
|
151 |
msgstr ""
|
152 |
|
153 |
-
#: ../lib/loco-admin.php:
|
154 |
msgid "Manage translations"
|
155 |
msgstr ""
|
156 |
|
157 |
-
#: ../lib/loco-admin.php:
|
158 |
msgid "Translation options"
|
159 |
msgstr ""
|
160 |
|
161 |
-
#: ../lib/loco-admin.php:
|
162 |
msgid "Loco Translate"
|
163 |
msgstr ""
|
164 |
|
165 |
-
#: ../lib/loco-admin.php:
|
|
|
|
|
166 |
msgid "Settings"
|
167 |
msgstr ""
|
168 |
|
169 |
-
#: ../lib/loco-admin.php:
|
170 |
msgid "File download failed"
|
171 |
msgstr ""
|
172 |
|
173 |
-
#: ../lib/loco-locales.php:
|
174 |
msgid "Unknown language"
|
175 |
msgstr ""
|
176 |
|
177 |
-
#: ../lib/loco-packages.php:
|
178 |
msgid "Some files not writable"
|
179 |
msgstr ""
|
180 |
|
181 |
-
#: ../lib/loco-packages.php:
|
182 |
msgid "Some files missing"
|
183 |
msgstr ""
|
184 |
|
185 |
-
#: ../lib/loco-packages.php:
|
|
|
186 |
msgid "\"%s\" folder not writable"
|
187 |
msgstr ""
|
188 |
|
189 |
-
#: ../lib/loco-packages.php:
|
190 |
msgid "POT file not writable"
|
191 |
msgstr ""
|
192 |
|
193 |
-
#: ../lib/loco-packages.php:
|
194 |
msgid "PO file not writable"
|
195 |
msgstr ""
|
196 |
|
197 |
-
#: ../lib/loco-packages.php:
|
198 |
msgid "MO file not writable"
|
199 |
msgstr ""
|
200 |
|
201 |
-
#: ../lib/loco-packages.php:
|
202 |
msgid "MO file not found"
|
203 |
msgstr ""
|
204 |
|
205 |
-
#: ../lib/loco-packages.php:
|
206 |
msgid "Folder not writable"
|
207 |
msgstr ""
|
208 |
|
|
|
|
|
|
|
|
|
209 |
#: ../php/loco-ajax.php:17 ../php/loco-download.php:21
|
210 |
msgid "User does not have permission to manage translations"
|
211 |
msgstr ""
|
212 |
|
213 |
#: ../php/loco-download.php:75 ../php/loco-posave.php:121
|
|
|
214 |
msgid "Failed to compile MO file with %s, check your settings"
|
215 |
msgstr ""
|
216 |
|
@@ -219,31 +237,36 @@ msgid "Invalid data posted to server"
|
|
219 |
msgstr ""
|
220 |
|
221 |
#: ../php/loco-posave.php:23 ../php/loco-posync.php:22
|
|
|
222 |
msgid "Package not found called %s"
|
223 |
msgstr ""
|
224 |
|
225 |
#: ../php/loco-posave.php:58
|
|
|
226 |
msgid ""
|
227 |
"Web server cannot create backups in \"%s\". Fix file permissions or disable "
|
228 |
"backups in settings"
|
229 |
msgstr ""
|
230 |
|
231 |
#: ../php/loco-posave.php:66
|
|
|
232 |
msgid ""
|
233 |
-
"Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or
|
234 |
-
"it manually."
|
235 |
msgstr ""
|
236 |
|
237 |
#: ../php/loco-posave.php:69
|
|
|
238 |
msgid ""
|
239 |
-
"Web server cannot create files in the \"%s\" directory. Fix file permissions
|
240 |
-
"use the download function."
|
241 |
msgstr ""
|
242 |
|
243 |
#: ../php/loco-posave.php:81
|
|
|
244 |
msgid ""
|
245 |
-
"%s file is not writable by the web server. Fix file permissions or download
|
246 |
-
"copy to \"%s/%s\"."
|
247 |
msgstr ""
|
248 |
|
249 |
#: ../php/loco-posave.php:102
|
@@ -258,7 +281,11 @@ msgstr ""
|
|
258 |
msgid "Failed to write MO file"
|
259 |
msgstr ""
|
260 |
|
261 |
-
#: ../php/loco-posync.php:
|
|
|
|
|
|
|
|
|
262 |
msgid "No strings could be extracted from source files"
|
263 |
msgstr ""
|
264 |
|
@@ -266,51 +293,81 @@ msgstr ""
|
|
266 |
msgid "Unknown error"
|
267 |
msgstr ""
|
268 |
|
269 |
-
#: ../pub/js/lang/dummy.php:
|
270 |
msgid "PO file saved"
|
271 |
msgstr ""
|
272 |
|
273 |
-
#: ../pub/js/lang/dummy.php:
|
274 |
msgid "and MO file compiled"
|
275 |
msgstr ""
|
276 |
|
277 |
-
#: ../pub/js/lang/dummy.php:
|
|
|
278 |
msgid "Merged from %s"
|
279 |
msgstr ""
|
280 |
|
281 |
-
#: ../pub/js/lang/dummy.php:
|
282 |
msgid "Merged from source code"
|
283 |
msgstr ""
|
284 |
|
285 |
-
#: ../pub/js/lang/dummy.php:
|
|
|
286 |
msgid "Already up to date with %s"
|
287 |
msgstr ""
|
288 |
|
289 |
-
#: ../pub/js/lang/dummy.php:
|
290 |
msgid "Already up to date with source code"
|
291 |
msgstr ""
|
292 |
|
293 |
-
#: ../pub/js/lang/dummy.php:
|
|
|
294 |
msgid "1 new string added"
|
295 |
msgid_plural "%s new strings added"
|
296 |
msgstr[0] ""
|
297 |
msgstr[1] ""
|
298 |
|
299 |
-
#: ../pub/js/lang/dummy.php:
|
|
|
300 |
msgid "1 obsolete string removed"
|
301 |
msgid_plural "%s obsolete strings removed"
|
302 |
msgstr[0] ""
|
303 |
msgstr[1] ""
|
304 |
|
305 |
-
#: ../pub/js/lang/dummy.php:
|
306 |
msgid "Your changes will be lost if you continue without saving"
|
307 |
msgstr ""
|
308 |
|
309 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
310 |
msgid "Translation"
|
311 |
msgstr ""
|
312 |
|
313 |
-
#: ../tpl/admin-fscheck.tpl.php:6 ../tpl/admin-opts.tpl.php:6 ../tpl/admin-poedit.
|
|
|
314 |
msgid "Packages"
|
315 |
msgstr ""
|
316 |
|
@@ -319,6 +376,7 @@ msgid "File check"
|
|
319 |
msgstr ""
|
320 |
|
321 |
#: ../tpl/admin-fscheck.tpl.php:17
|
|
|
322 |
msgid "File system permissions for %s"
|
323 |
msgstr ""
|
324 |
|
@@ -326,7 +384,7 @@ msgstr ""
|
|
326 |
msgid "Back"
|
327 |
msgstr ""
|
328 |
|
329 |
-
#: ../tpl/admin-fscheck.tpl.php:41 ../tpl/admin-opts.tpl.php:
|
330 |
msgid "Get help"
|
331 |
msgstr ""
|
332 |
|
@@ -351,6 +409,7 @@ msgid "File permissions"
|
|
351 |
msgstr ""
|
352 |
|
353 |
#: ../tpl/admin-list.tpl.php:43
|
|
|
354 |
msgid "1 language"
|
355 |
msgid_plural "%u languages"
|
356 |
msgstr[0] ""
|
@@ -361,7 +420,7 @@ msgctxt "Modified time"
|
|
361 |
msgid "Updated"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: ../tpl/admin-list.tpl.php:
|
365 |
msgid "OK"
|
366 |
msgstr ""
|
367 |
|
@@ -405,7 +464,15 @@ msgstr ""
|
|
405 |
msgid "Number of backups to keep of each file:"
|
406 |
msgstr ""
|
407 |
|
408 |
-
#: ../tpl/admin-opts.tpl.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
409 |
msgid "Save settings"
|
410 |
msgstr ""
|
411 |
|
@@ -461,16 +528,17 @@ msgctxt "Editor button"
|
|
461 |
msgid "Fuzzy"
|
462 |
msgstr ""
|
463 |
|
464 |
-
#: ../tpl/admin-poedit.tpl.php:
|
465 |
msgid "Filter translations"
|
466 |
msgstr ""
|
467 |
|
468 |
-
#: ../tpl/admin-poedit.tpl.php:
|
469 |
msgctxt "Editor button"
|
470 |
msgid "Help"
|
471 |
msgstr ""
|
472 |
|
473 |
#: ../tpl/admin-poinit.tpl.php:21
|
|
|
474 |
msgid "Initialize new translations in %s"
|
475 |
msgstr ""
|
476 |
|
@@ -483,7 +551,18 @@ msgctxt "Form label"
|
|
483 |
msgid "or enter any language code"
|
484 |
msgstr ""
|
485 |
|
486 |
-
#: ../tpl/admin-poinit.tpl.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
487 |
msgctxt "Submit button"
|
488 |
msgid "Start translating"
|
489 |
msgstr ""
|
@@ -493,6 +572,7 @@ msgid "New version available"
|
|
493 |
msgstr ""
|
494 |
|
495 |
#: ../tpl/admin-root.tpl.php:21
|
|
|
496 |
msgid "Upgrade to version %s of Loco Translate"
|
497 |
msgstr ""
|
498 |
|
1 |
+
# Loco Gettext template
|
2 |
#, fuzzy
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: Loco Translate\n"
|
6 |
"Report-Msgid-Bugs-To: \n"
|
7 |
"POT-Creation-Date: Thu Jan 02 2014 17:30:57 GMT+0000 (GMT)\n"
|
8 |
+
"POT-Revision-Date: Wed May 21 2014 10:56:01 GMT+0100 (BST)\n"
|
9 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
17 |
"X-Poedit-SourceCharset: UTF-8\n"
|
18 |
"X-Poedit-Basepath: .\n"
|
19 |
"X-Poedit-SearchPath-0: ..\n"
|
20 |
+
"X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
|
21 |
+
"__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
|
22 |
+
"_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
|
23 |
+
"esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
|
24 |
+
"esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
|
25 |
"X-Generator: Loco - https://localise.biz/"
|
26 |
|
27 |
#. Translators: Bold text label in admin error messages
|
28 |
+
#: ../lib/loco-admin.php:15
|
29 |
msgctxt "Message label"
|
30 |
msgid "Error"
|
31 |
msgstr ""
|
32 |
|
33 |
+
#: ../lib/loco-admin.php:24
|
34 |
msgctxt "Message label"
|
35 |
msgid "Warning"
|
36 |
msgstr ""
|
37 |
|
38 |
+
#: ../lib/loco-admin.php:33
|
39 |
msgctxt "Message label"
|
40 |
msgid "OK"
|
41 |
msgstr ""
|
48 |
msgid "Settings saved"
|
49 |
msgstr ""
|
50 |
|
51 |
+
#: ../lib/loco-admin.php:133
|
52 |
msgid "New PO file"
|
53 |
msgstr ""
|
54 |
|
55 |
+
#: ../lib/loco-admin.php:240
|
56 |
msgid "You must specify a valid locale for a new PO file"
|
57 |
msgstr ""
|
58 |
|
59 |
+
#: ../lib/loco-admin.php:265 ../lib/loco-admin.php:367
|
60 |
msgid "No translatable strings found"
|
61 |
msgstr ""
|
62 |
|
63 |
+
#: ../lib/loco-admin.php:265
|
64 |
msgid "Cannot create a PO file."
|
65 |
msgstr ""
|
66 |
|
67 |
+
#: ../lib/loco-admin.php:272
|
68 |
+
#, php-format
|
69 |
msgid "PO file already exists with locale %s"
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: ../lib/loco-admin.php:313
|
73 |
+
#, php-format
|
74 |
msgid "PO file used as template. This will be renamed to %s on first save"
|
75 |
msgstr ""
|
76 |
|
77 |
+
#: ../lib/loco-admin.php:337
|
78 |
msgid ""
|
79 |
+
"File cannot be created automatically. Fix the file permissions or use "
|
80 |
+
"Download instead of Save"
|
81 |
msgstr ""
|
82 |
|
83 |
+
#: ../lib/loco-admin.php:346 ../lib/loco-admin.php:355
|
84 |
+
#, php-format
|
85 |
msgid "%s file is empty"
|
86 |
msgstr ""
|
87 |
|
88 |
+
#: ../lib/loco-admin.php:347 ../lib/loco-admin.php:362
|
89 |
msgid "Run Sync to update from source code"
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: ../lib/loco-admin.php:351
|
93 |
msgid "No strings could be extracted from source code"
|
94 |
msgstr ""
|
95 |
|
96 |
+
#: ../lib/loco-admin.php:358
|
97 |
+
#, php-format
|
98 |
msgid "Run Sync to update from %s"
|
99 |
msgstr ""
|
100 |
|
101 |
+
#: ../lib/loco-admin.php:377
|
102 |
msgid "Source code has been modified, run Sync to update POT"
|
103 |
msgstr ""
|
104 |
|
105 |
+
#: ../lib/loco-admin.php:381
|
106 |
msgid "POT has been modified since PO file was saved, run Sync to update"
|
107 |
msgstr ""
|
108 |
|
109 |
+
#: ../lib/loco-admin.php:468
|
110 |
msgid "Bad file path"
|
111 |
msgstr ""
|
112 |
|
113 |
+
#: ../lib/loco-admin.php:692
|
114 |
+
#, php-format
|
115 |
msgid "Empty or invalid %s file"
|
116 |
msgstr ""
|
117 |
|
118 |
+
#: ../lib/loco-admin.php:696
|
119 |
+
#, php-format
|
120 |
msgid "%s file has no header"
|
121 |
msgstr ""
|
122 |
|
123 |
+
#: ../lib/loco-admin.php:828
|
124 |
msgctxt "Add button"
|
125 |
msgid "New template"
|
126 |
msgstr ""
|
127 |
|
128 |
+
#: ../lib/loco-admin.php:847
|
129 |
msgctxt "Add button"
|
130 |
msgid "New language"
|
131 |
msgstr ""
|
132 |
|
133 |
+
#: ../lib/loco-admin.php:886
|
134 |
+
#, php-format
|
135 |
msgid "%s%% translated"
|
136 |
msgstr ""
|
137 |
|
138 |
+
#: ../lib/loco-admin.php:886
|
139 |
+
#, php-format
|
140 |
msgid "1 string"
|
141 |
msgid_plural "%s strings"
|
142 |
msgstr[0] ""
|
143 |
msgstr[1] ""
|
144 |
|
145 |
+
#: ../lib/loco-admin.php:889
|
146 |
+
#, php-format
|
147 |
msgid "%s fuzzy"
|
148 |
msgstr ""
|
149 |
|
150 |
+
#: ../lib/loco-admin.php:892
|
151 |
+
#, php-format
|
152 |
msgid "%s untranslated"
|
153 |
msgstr ""
|
154 |
|
155 |
+
#: ../lib/loco-admin.php:934
|
156 |
msgid "Failed to compile MO file with built-in compiler"
|
157 |
msgstr ""
|
158 |
|
159 |
+
#: ../lib/loco-admin.php:977 ../tpl/admin-nav.tpl.php:21
|
160 |
msgid "Loco, Translation Management"
|
161 |
msgstr ""
|
162 |
|
163 |
+
#: ../lib/loco-admin.php:978 ../lib/loco-admin.php:1009
|
164 |
msgid "Manage translations"
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: ../lib/loco-admin.php:979
|
168 |
msgid "Translation options"
|
169 |
msgstr ""
|
170 |
|
171 |
+
#: ../lib/loco-admin.php:986
|
172 |
msgid "Loco Translate"
|
173 |
msgstr ""
|
174 |
|
175 |
+
#: ../lib/loco-admin.php:1010 ../tpl/admin-fscheck.tpl.php:7 ../tpl/admin-opts.
|
176 |
+
#: tpl.php:7 ../tpl/admin-poedit.tpl.php:8 ../tpl/admin-poinit.tpl.php:8 ..
|
177 |
+
#: /tpl/admin-root.tpl.php:7
|
178 |
msgid "Settings"
|
179 |
msgstr ""
|
180 |
|
181 |
+
#: ../lib/loco-admin.php:1034
|
182 |
msgid "File download failed"
|
183 |
msgstr ""
|
184 |
|
185 |
+
#: ../lib/loco-locales.php:65
|
186 |
msgid "Unknown language"
|
187 |
msgstr ""
|
188 |
|
189 |
+
#: ../lib/loco-packages.php:423 ../lib/loco-packages.php:430
|
190 |
msgid "Some files not writable"
|
191 |
msgstr ""
|
192 |
|
193 |
+
#: ../lib/loco-packages.php:433
|
194 |
msgid "Some files missing"
|
195 |
msgstr ""
|
196 |
|
197 |
+
#: ../lib/loco-packages.php:439 ../lib/loco-packages.php:443
|
198 |
+
#, php-format
|
199 |
msgid "\"%s\" folder not writable"
|
200 |
msgstr ""
|
201 |
|
202 |
+
#: ../lib/loco-packages.php:464
|
203 |
msgid "POT file not writable"
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: ../lib/loco-packages.php:469
|
207 |
msgid "PO file not writable"
|
208 |
msgstr ""
|
209 |
|
210 |
+
#: ../lib/loco-packages.php:471
|
211 |
msgid "MO file not writable"
|
212 |
msgstr ""
|
213 |
|
214 |
+
#: ../lib/loco-packages.php:471
|
215 |
msgid "MO file not found"
|
216 |
msgstr ""
|
217 |
|
218 |
+
#: ../lib/loco-packages.php:476
|
219 |
msgid "Folder not writable"
|
220 |
msgstr ""
|
221 |
|
222 |
+
#: ../lib/loco-packages.php:476
|
223 |
+
msgid "Folder not found"
|
224 |
+
msgstr ""
|
225 |
+
|
226 |
#: ../php/loco-ajax.php:17 ../php/loco-download.php:21
|
227 |
msgid "User does not have permission to manage translations"
|
228 |
msgstr ""
|
229 |
|
230 |
#: ../php/loco-download.php:75 ../php/loco-posave.php:121
|
231 |
+
#, php-format
|
232 |
msgid "Failed to compile MO file with %s, check your settings"
|
233 |
msgstr ""
|
234 |
|
237 |
msgstr ""
|
238 |
|
239 |
#: ../php/loco-posave.php:23 ../php/loco-posync.php:22
|
240 |
+
#, php-format
|
241 |
msgid "Package not found called %s"
|
242 |
msgstr ""
|
243 |
|
244 |
#: ../php/loco-posave.php:58
|
245 |
+
#, php-format
|
246 |
msgid ""
|
247 |
"Web server cannot create backups in \"%s\". Fix file permissions or disable "
|
248 |
"backups in settings"
|
249 |
msgstr ""
|
250 |
|
251 |
#: ../php/loco-posave.php:66
|
252 |
+
#, php-format
|
253 |
msgid ""
|
254 |
+
"Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or "
|
255 |
+
"create it manually."
|
256 |
msgstr ""
|
257 |
|
258 |
#: ../php/loco-posave.php:69
|
259 |
+
#, php-format
|
260 |
msgid ""
|
261 |
+
"Web server cannot create files in the \"%s\" directory. Fix file permissions "
|
262 |
+
"or use the download function."
|
263 |
msgstr ""
|
264 |
|
265 |
#: ../php/loco-posave.php:81
|
266 |
+
#, php-format
|
267 |
msgid ""
|
268 |
+
"%s file is not writable by the web server. Fix file permissions or download "
|
269 |
+
"and copy to \"%s/%s\"."
|
270 |
msgstr ""
|
271 |
|
272 |
#: ../php/loco-posave.php:102
|
281 |
msgid "Failed to write MO file"
|
282 |
msgstr ""
|
283 |
|
284 |
+
#: ../php/loco-posync.php:47
|
285 |
+
msgid "No source files in this package, nothing to sync"
|
286 |
+
msgstr ""
|
287 |
+
|
288 |
+
#: ../php/loco-posync.php:57
|
289 |
msgid "No strings could be extracted from source files"
|
290 |
msgstr ""
|
291 |
|
293 |
msgid "Unknown error"
|
294 |
msgstr ""
|
295 |
|
296 |
+
#: ../pub/js/lang/dummy.php:10
|
297 |
msgid "PO file saved"
|
298 |
msgstr ""
|
299 |
|
300 |
+
#: ../pub/js/lang/dummy.php:12
|
301 |
msgid "and MO file compiled"
|
302 |
msgstr ""
|
303 |
|
304 |
+
#: ../pub/js/lang/dummy.php:15
|
305 |
+
#, php-format
|
306 |
msgid "Merged from %s"
|
307 |
msgstr ""
|
308 |
|
309 |
+
#: ../pub/js/lang/dummy.php:17
|
310 |
msgid "Merged from source code"
|
311 |
msgstr ""
|
312 |
|
313 |
+
#: ../pub/js/lang/dummy.php:19
|
314 |
+
#, php-format
|
315 |
msgid "Already up to date with %s"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: ../pub/js/lang/dummy.php:21
|
319 |
msgid "Already up to date with source code"
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: ../pub/js/lang/dummy.php:23
|
323 |
+
#, php-format
|
324 |
msgid "1 new string added"
|
325 |
msgid_plural "%s new strings added"
|
326 |
msgstr[0] ""
|
327 |
msgstr[1] ""
|
328 |
|
329 |
+
#: ../pub/js/lang/dummy.php:25
|
330 |
+
#, php-format
|
331 |
msgid "1 obsolete string removed"
|
332 |
msgid_plural "%s obsolete strings removed"
|
333 |
msgstr[0] ""
|
334 |
msgstr[1] ""
|
335 |
|
336 |
+
#: ../pub/js/lang/dummy.php:27
|
337 |
msgid "Your changes will be lost if you continue without saving"
|
338 |
msgstr ""
|
339 |
|
340 |
+
#. label for the window pane holding native translation
|
341 |
+
#: ../pub/js/lang/dummy.php:35
|
342 |
+
msgctxt "Editor pane"
|
343 |
+
msgid "Source text"
|
344 |
+
msgstr ""
|
345 |
+
|
346 |
+
#. where %s is the language, e.g French translation
|
347 |
+
#: ../pub/js/lang/dummy.php:38
|
348 |
+
#, php-format
|
349 |
+
msgctxt "Editor pane"
|
350 |
+
msgid "%s translation"
|
351 |
+
msgstr ""
|
352 |
+
|
353 |
+
#. label for the window pane holding translator comments
|
354 |
+
#: ../pub/js/lang/dummy.php:41
|
355 |
+
msgctxt "Editor pane"
|
356 |
+
msgid "Comments"
|
357 |
+
msgstr ""
|
358 |
+
|
359 |
+
#. label for the window pane holding message context
|
360 |
+
#: ../pub/js/lang/dummy.php:44
|
361 |
+
msgctxt "Editor pane"
|
362 |
+
msgid "Context"
|
363 |
+
msgstr ""
|
364 |
+
|
365 |
+
#: ../pub/js/lang/dummy.php:52
|
366 |
msgid "Translation"
|
367 |
msgstr ""
|
368 |
|
369 |
+
#: ../tpl/admin-fscheck.tpl.php:6 ../tpl/admin-opts.tpl.php:6 ../tpl/admin-poedit.
|
370 |
+
#: tpl.php:6 ../tpl/admin-poinit.tpl.php:6 ../tpl/admin-root.tpl.php:6
|
371 |
msgid "Packages"
|
372 |
msgstr ""
|
373 |
|
376 |
msgstr ""
|
377 |
|
378 |
#: ../tpl/admin-fscheck.tpl.php:17
|
379 |
+
#, php-format
|
380 |
msgid "File system permissions for %s"
|
381 |
msgstr ""
|
382 |
|
384 |
msgid "Back"
|
385 |
msgstr ""
|
386 |
|
387 |
+
#: ../tpl/admin-fscheck.tpl.php:41 ../tpl/admin-opts.tpl.php:96
|
388 |
msgid "Get help"
|
389 |
msgstr ""
|
390 |
|
409 |
msgstr ""
|
410 |
|
411 |
#: ../tpl/admin-list.tpl.php:43
|
412 |
+
#, php-format
|
413 |
msgid "1 language"
|
414 |
msgid_plural "%u languages"
|
415 |
msgstr[0] ""
|
420 |
msgid "Updated"
|
421 |
msgstr ""
|
422 |
|
423 |
+
#: ../tpl/admin-list.tpl.php:97
|
424 |
msgid "OK"
|
425 |
msgstr ""
|
426 |
|
464 |
msgid "Number of backups to keep of each file:"
|
465 |
msgstr ""
|
466 |
|
467 |
+
#: ../tpl/admin-opts.tpl.php:77 ../tpl/admin-opts.tpl.php:81
|
468 |
+
msgid "Experimental features"
|
469 |
+
msgstr ""
|
470 |
+
|
471 |
+
#: ../tpl/admin-opts.tpl.php:86
|
472 |
+
msgid "Enable Wordpress core translations"
|
473 |
+
msgstr ""
|
474 |
+
|
475 |
+
#: ../tpl/admin-opts.tpl.php:95
|
476 |
msgid "Save settings"
|
477 |
msgstr ""
|
478 |
|
528 |
msgid "Fuzzy"
|
529 |
msgstr ""
|
530 |
|
531 |
+
#: ../tpl/admin-poedit.tpl.php:140
|
532 |
msgid "Filter translations"
|
533 |
msgstr ""
|
534 |
|
535 |
+
#: ../tpl/admin-poedit.tpl.php:145
|
536 |
msgctxt "Editor button"
|
537 |
msgid "Help"
|
538 |
msgstr ""
|
539 |
|
540 |
#: ../tpl/admin-poinit.tpl.php:21
|
541 |
+
#, php-format
|
542 |
msgid "Initialize new translations in %s"
|
543 |
msgstr ""
|
544 |
|
551 |
msgid "or enter any language code"
|
552 |
msgstr ""
|
553 |
|
554 |
+
#: ../tpl/admin-poinit.tpl.php:58
|
555 |
+
#, php-format
|
556 |
+
msgctxt "Form label"
|
557 |
+
msgid "create in <code>%s</code>"
|
558 |
+
msgstr ""
|
559 |
+
|
560 |
+
#: ../tpl/admin-poinit.tpl.php:63
|
561 |
+
msgctxt "Form label"
|
562 |
+
msgid "create in global languages directory"
|
563 |
+
msgstr ""
|
564 |
+
|
565 |
+
#: ../tpl/admin-poinit.tpl.php:68
|
566 |
msgctxt "Submit button"
|
567 |
msgid "Start translating"
|
568 |
msgstr ""
|
572 |
msgstr ""
|
573 |
|
574 |
#: ../tpl/admin-root.tpl.php:21
|
575 |
+
#, php-format
|
576 |
msgid "Upgrade to version %s of Loco Translate"
|
577 |
msgstr ""
|
578 |
|
lib/build/gettext-compiled.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Compiled source build from Loco core.
|
4 |
-
* Mon,
|
5 |
*/
|
6 |
-
class LocoArray implements Iterator { private $i; private $length; private $keys; private $vals; private $index; public function __construct( array $data = array() ){ $this->keys = array_keys( $data ); $this->vals = array_values( $data ); $this->index = array_flip( array_map( 'strtolower', $this->keys ) ); $this->length = count( $this->keys ); $this->rewind(); } public function add( $key, $val ){ $k = strtolower($key); if( isset($this->index[$k]) ){ $this->keys[ $this->index[$k] ] = $key; $this->vals[ $this->index[$k] ] = $val; } else { $this->index[$k] = $this->length++; $this->keys[] = $key; $this->vals[] = $val; } return $this; } public function to_array(){ return array_combine( $this->keys, $this->vals ); } function __toString(){ $pairs = array(); foreach( $this->keys as $i => $key ){ $pairs[] = trim($key).': '.$this->vals[$i]; } return implode("\n", $pairs ); } public function count(){ return $this->length; } public function trimmed( $prop ){ return trim( $this->__get($prop) ); } public function has( $key ){ return isset( $this->index[ strtolower($key) ] ); } public function __get( $key ){ $key = strtolower( $key ); return isset($this->index[$key]) ? $this->vals[ $this->index[$key] ] : null; } public function rewind(){ $this->i = reset( $this->index ); } public function key(){ return is_int($this->i) ? $this->keys[$this->i] : null; } public function current(){ return is_int($this->i) ? $this->vals[$this->i] : null; } public function valid(){ return is_int($this->i); } public function next(){ $this->i = next( $this->index ); } } define( 'LOCO_FLAG_OK', 0 ); define( 'LOCO_FLAG_ERROR', 1 ); define( 'LOCO_FLAG_REVIEW', 2 ); define( 'LOCO_FLAG_PENDING', 3 ); define( 'LOCO_FLAG_FUZZY', 4 ); function loco_flags(){ static $flags = array ( LOCO_FLAG_OK => 'Translated', LOCO_FLAG_ERROR => 'Incorrect', LOCO_FLAG_REVIEW => 'Needs review', LOCO_FLAG_PENDING => 'Pending sign-off', LOCO_FLAG_FUZZY => 'Fuzzy', ); return $flags; } function loco_flag( $f ){ $flags = loco_flags(); if( ! isset($flags[$f]) ){ throw new Exception('Invalid LOCO_FLAG_ constant ', var_export($f,1) ); } return $flags[$f]; } function loco_po_flags(){ static $map = array ( LOCO_FLAG_FUZZY => '#, fuzzy', ); return $map; } function loco_parse_po( $src ){ $i = -1; $key = ''; $entries = array(); $template = array( '#' => array(), 'id' => array(), 'str' => array(), 'ctxt' => array() ); foreach( preg_split('/[\r\n]+/', $src) as $line ){ while( $line = trim($line) ){ $c = $line{0}; if( '"' === $c ){ if( $key && isset($entry) ){ $entry[$key][$idx][] = loco_po_unquote( $line ); } } else if( '#' === $c ){ if( isset($entry['i']) ){ unset( $entry ); $entry = $template; } $f = empty($line{1}) ? ' ' : $line{1}; $entry['#'][$f][] = trim( substr( $line, 1+strlen($f) ), "/ \n\r\t" ); } else if( preg_match('/^msg(id|str|ctxt|id_plural)(?:\[(\d+)\])?[ \t]+/', $line, $r ) ){ $key = $r[1]; $idx = isset($r[2]) ? (int) $r[2] : 0; if( 'str' === $key ){ if( ! isset($entry['i']) ){ $entry['i'] = ++$i; $entries[$i] = &$entry; } } else if( ! isset($entry) || isset($entry['i']) ){ unset( $entry ); $entry = $template; } $line = substr( $line, strlen($r[0]) ); continue; } continue 2; } } unset( $entry ); $assets = array(); foreach( $entries as $i => $entry ){ $asset = array ( 'id' => '', 'source' => implode('',$entry['id'][0]), 'target' => implode('',$entry['str'][0]), ); if( isset($entry['ctxt'][0]) ){ $asset['context'] = implode('',$entry['ctxt'][0]); } $comments = array(); isset($entry['#'][' ']) and $comments = array_merge( $comments, $entry['#'][' ']); isset($entry['#']['.']) and $comments = array_merge( $comments, $entry['#']['.']); $comments and $asset['comment'] = implode("\n", $comments); if( isset($entry['#'][':']) ){ $asset['refs'] = implode( "\n", $entry['#'][':'] ); } if( isset($entry['#'][',']) ){ foreach( $entry['#'][','] as $flag ){ if( $flag = loco_po_parse_flag($flag) ){ $asset['flag'] = $flag; break; } } } $pidx = count($assets); $assets[] = $asset; if( isset($entry['id_plural']) || isset($entry['str'][1]) ){ $idx = 0; $num = max( 2, count($entry['str']) ); while( ++$idx < $num ){ $assets[] = array ( 'id' => '', 'parent' => $pidx, 'plural' => $idx, 'source' => isset($entry['id_plural'][0]) ? implode('',$entry['id_plural'][0]) : '', 'target' => isset($entry['str'][$idx]) ? implode('',$entry['str'][$idx]) : '', ); } } } return $assets; } function loco_po_parse_flag( $text, $flag = 0 ){ $map = loco_po_flags(); foreach( explode(',',$text) as $needle ){ if( $needle = trim($needle) ){ foreach( $map as $loco_flag => $haystack ){ if( false !== stripos($haystack, $needle) ){ $flag |= $loco_flag; break; } } } } return $flag; } function loco_po_unquote( $str ){ return substr( stripcslashes($str), 1, -1 ); } function loco_parse_po_headers( $str ){ $headers = new LocoArray( array() ); foreach( explode("\n",$str) as $line ){ $i = strpos($line,':') and $key = trim( substr($line,0,$i) ) and $headers->add( $key, trim( substr($line,++$i) ) ); } return $headers; } class LocoMoParser { private $bin; private $be; private $n; private $o; private $t; private $v; public function __construct( $bin ){ $this->bin = $bin; } public function getAt( $idx ){ $offset = $this->targetOffset(); $offset += ( $idx * 8 ); $len = $this->integerAt( $offset ); $idx = $this->integerAt( $offset + 4 ); $txt = $this->bytes( $idx, $len ); if( false === strpos( $txt, "\0") ){ return $txt; } return explode( "\0", $txt ); } public function parse(){ $sourceOffset = $this->sourceOffset(); $targetOffset = $this->targetOffset(); $r = array(); $p = array(); $i = 0; $offset = $sourceOffset; while( $offset < $targetOffset ){ $r[$i] = array( 'id' => '', 'source' => '', 'target' => '' ); $len = $this->integerAt( $offset ); $idx = $this->integerAt( $offset + 4 ); $src = $this->bytes( $idx, $len ); $eot = strpos( $src, "\x04" ); if( false !== $eot ){ $r[$i]['context'] = substr($src, 0, $eot ); $src = substr( $src, $eot+1 ); } $nul = strpos( $src, "\0" ); if( false !== $nul ){ $p[$i][1] = array( 'id' => '', 'source' => substr($src, $nul+1 ), 'target' => '', 'parent' => $i, 'plural' => 1 ); $src = substr( $src, 0, $nul ); } $r[$i++]['source'] = $src; $offset += 8; } $t = $i; $offset = $targetOffset; for( $i = 0; $i < $t; $i++ ){ $len = $this->integerAt( $offset ); $idx = $this->integerAt( $offset + 4 ); $txt = $this->bytes( $idx, $len ); if( false !== strpos( $txt, "\0" ) ){ if( ! isset($p[$i][1]) ){ throw new Exception('Encountered translated plural without msgid_plural'); } $arr = explode( "\0", $txt ); $txt = array_shift( $arr ); foreach( $arr as $_i => $plural_txt ){ $plural_idx = $_i + 1; $p[$i][$plural_idx]['target'] = $plural_txt; } } $r[$i]['target'] = $txt; $offset += 8; } foreach( $p as $parent_id => $plurals ){ foreach( $plurals as $plural_idx => $msg ){ if( 1 < $plural_idx ){ $msg['source'] = $plurals[1]['source'].' (plural '.$plural_idx.')'; } $msg['parent'] = $parent_id; $msg['plural'] = $plural_idx; $r[] = $msg; } } return $r; } public function isBigendian(){ while( is_null($this->be) ){ $str = $this->words( 0, 2 ); $arr = unpack('V', $str); if( 0x950412de === $arr[1] ){ $this->be = false; break; } if( 0xde120495 === $arr[1] ){ $this->be = true; break; } throw new Exception('Invalid MO format'); } return $this->be; } public function version(){ if( is_null($this->v) ){ $this->v = $this->integerWord(1); } return $this->v; } public function count(){ if( is_null($this->n) ){ $this->n = $this->integerWord(2); } return $this->n; } public function sourceOffset(){ if( is_null($this->o) ){ $this->o = $this->integerWord(3); } return $this->o; } public function targetOffset(){ if( is_null($this->t) ){ $this->t = $this->integerWord(4); } return $this->t; } public function getHashTable(){ $s = $this->integerWord(5); $h = $this->integerWord(6); return $this->bytes( $h, $s * 4 ); } private function bytes( $offset, $length ){ return substr( $this->bin, $offset, $length ); } private function words( $offset, $length ){ return $this->bytes( $offset * 4, $length * 4 ); } private function integerWord( $offset ){ return $this->integerAt( $offset * 4 ); } private function integerAt( $offset ){ $str = $this->bytes( $offset, 4 ); $fmt = $this->isBigendian() ? 'N' : 'V'; $arr = unpack( $fmt, $str ); if( ! isset($arr[1]) || ! is_int($arr[1]) ){ throw new Exception('Failed to read 32 bit integer at byte '.$offset); } return $arr[1]; } } function loco_parse_mo( $src ){ $mo = new LocoMoParser($src); return $mo->parse(); } final class PHPTokens implements Iterator { private $tokens; private $i; private $skip_tokens = array(); private $skip_strings = array(); private $literal_tokens = array(); public function __construct( array $tokens ){ $this->tokens = $tokens; $this->rewind(); } public function literal(){ foreach( func_get_args() as $t ){ $this->literal_tokens[ $t ] = 1; } return $this; } public function ignore(){ foreach( func_get_args() as $t ){ if( is_int($t) ){ $this->skip_tokens[$t] = true; } else { $this->skip_strings[$t] = true; } } return $this; } public function export(){ $arr = array(); foreach( $this as $tok ){ $arr[] = $tok; } return $arr; } public function advance(){ $this->next(); return $this->current(); } public function rewind(){ $this->i = false === reset($this->tokens) ? null : key($this->tokens); } public function valid(){ return isset($this->i); } public function key(){ return $this->i; } public function next(){ $this->i = false === next($this->tokens) ? null : key($this->tokens); } public function current(){ while( isset($this->i) ){ $tok = $this->tokens[$this->i]; if( is_array($tok) ){ if( isset($this->skip_tokens[$tok[0]]) ){ $this->next(); } else if( isset($this->literal_tokens[$tok[0]]) ){ return $tok[1]; } else { return $tok; } } else if( isset($this->skip_strings[$tok]) ){ $this->next(); } else { return $tok; } } return false; } } function loco_parse_comment($comment){ if( '*' === $comment{1} ){ $lines = array(); foreach( explode("\n", $comment) as $line ){ $line and $lines[] = trim($line,"/* \r\t"); } $comment = implode("\n", $lines); } return trim( $comment,"/ \n\r\t" ); } function decapse_string( $s ){ if( empty($s) ){ return ''; } $q = $s{0}; switch( $q ){ case "'": case '"': $s = substr( $s, 1, -1 ); if( '"' === $q ){ return stripcslashes($s); } return str_replace( array( '\\'.$q, '\\\\' ), array( $q, '\\' ), $s ); default: return $s; } } function loco_extract_php( array $tokens, $fileref = '' ){ $extractor = new LocoPHPExtractor; return $extractor->extract( $tokens, $fileref ); } final class LocoPHPExtractor { private static $rules = array ( '_' => 's', 'gettext' => 's', 'dgettext' => '_s', 'ngettext' => 'sp', 'dngettext' => '_sp', '__' => 's', '_e' => 's', '_c' => 's', '_n' => 'sp', '_n_noop' => 'sp', '_nc' => 'sp', '__ngettext' => 'sp', '__ngettext_noop' => 'sp', '_x' => 'sc', '_ex' => 'sc', '_nx' => 'sp_c', '_nx_noop' => 'spc', '_n_js' => 'sp', '_nx_js' => 'spc', 'esc_attr__' => 's', 'esc_html__' => 's', 'esc_attr_e' => 's', 'esc_html_e' => 's', 'esc_attr_x' => 'sc', 'esc_html_x' => 'sc', 'comments_number_link' => '_sp', 't' => 's', 'st' => 's', 'trans' => 's', 'transChoice' => 'sp', ); private $exp = array(); private $reg = array(); public function extract( array $tokens, $fileref = '' ){ $tokens = new PHPTokens( $tokens ); $tokens->ignore( T_WHITESPACE ); $comment = ''; foreach( $tokens as $tok ){ if( isset($args) ){ if( ')' === $tok ){ isset($arg) and $arg and $args[] = $arg; $this->push( $rule, $args, $comment, $ref ); unset($args,$arg); $comment = ''; } else if( ',' === $tok ){ isset($arg) and $arg and $args[] = $arg; unset($arg); } else if( isset($arg) ){ $arg[] = $tok; } else { $arg = array( $tok ); } } else if( is_array($tok) ){ list($t,$s) = $tok; if( T_COMMENT === $t || T_DOC_COMMENT === $t ){ $comment = $s; } else if( T_STRING === $t && isset(self::$rules[$s]) && '(' === $tokens->advance() ){ $rule = self::$rules[$s]; $args = array(); $ref = $fileref ? $fileref.':'.$tok[2]: ''; } else if( $comment && false === stripos($comment, 'translators') ){ $comment = ''; } } } return $this->exp; } private function push( $rule, array $args, $comment = '', $ref = '' ){ $s = strpos( $rule, 's'); $p = strpos( $rule, 'p'); $c = strpos( $rule, 'c'); foreach( $args as $i => $tokens ){ if( 1 === count($tokens) && is_array($tokens[0]) && T_CONSTANT_ENCAPSED_STRING === $tokens[0][0] ){ $args[$i] = decapse_string( $tokens[0][1] ); } else { $args[$i] = null; } } $key = $msgid = $args[$s]; if( ! $msgid ){ return null; } $entry = array ( 'id' => '', 'source' => $msgid, 'target' => '', ); if( $c && isset($args[$c]) ){ $entry['context'] = $args[$c]; $key .= "\0". $args[$c]; } if( $ref ){ $entry['refs'] = $ref; } if( $comment ){ $entry['comment'] = loco_parse_comment($comment); } if( isset($this->reg[$key]) ){ $index = $this->reg[$key]; $a = array(); isset($this->exp[$index]['refs']) and $a[] = $this->exp[$index]['refs']; isset($entry['refs']) and $a[] = $entry['refs']; $a && $this->exp[$index]['refs'] = implode(" ", $a ); $a = array(); isset($this->exp[$index]['comment']) and $a[] = $this->exp[$index]['comment']; isset($entry['comment']) and $a[] = $entry['comment']; $a && $this->exp[$index]['comment'] = implode("\n", $a ); } else { $index = count($this->exp); $this->reg[$key] = $index; $this->exp[] = $entry; } if( $p && isset($args[$p]) ){ $msgid_plural = $args[$p]; $entry = array ( 'id' => '', 'source' => $msgid_plural, 'target' => '', 'plural' => 1, 'parent' => $index, ); $key = $msgid_plural."\0\0"; if( isset($this->reg[$key]) ){ $plural_index = $this->reg[$key]; $this->exp[$plural_index] = $entry; } else { $plural_index = count($this->exp); $this->reg[$key] = $plural_index; $this->exp[] = $entry; } } return $index; } public function get_xgettext( $input = '-' ){ $cmd = defined('WHICH_XGETTEXT') ? WHICH_XGETTEXT : 'xgettext'; $cmd.= ' -LPHP -c -o-'; if( $k = $this->get_xgettext_keywords() ){ $cmd.= ' -k'.implode(' -k', $k ); } return $cmd.' '.$input; } public function get_xgettext_keywords(){ $ks = array(); foreach( self::$rules as $word => $rule ){ $s = strpos( $rule, 's'); $k = $word.':'.++$s; if( false !== $p = strpos( $rule, 'p') ){ $k.= ','.++$p; } if( false !== $p = strpos( $rule, 'c') ){ $k.= ','.++$p.'c'; } $ks[] = $k; } return $ks; } } function loco_relative_path( $source_path, $target_path ){ $rel = ''; $common = false; $src = preg_split('!/+!', $source_path, -1, PREG_SPLIT_NO_EMPTY ); $dst = preg_split('!/+!', $target_path, -1, PREG_SPLIT_NO_EMPTY ); while( $src && $dst ){ if( current($src) !== current($dst) ){ break; } $common = true; array_shift($src); array_shift($dst); } if( ! $common ){ return $target_path; } if( $src ){ $up = array_fill( 0, count($src), '..' ); $rel = implode('/', $up ); } if( $dst ){ $rel && $rel .= '/'; $rel .= implode('/', $dst ); } return $rel; } class LocoMo { private $bin; private $msgs; private $head; private $hash; public function __construct( array $export, LocoArray $head = null ){ if( ! $head ){ $head = new LocoArray( array( 'Project-Id-Version' => 'Loco', 'Language' => 'English', 'Plural-Forms' => 'nplurals=2; plural=(n!=1);', 'MIME-Version' => '1.0', 'Content-Type' => 'text/plain; charset=UTF-8', 'Content-Transfer-Encoding' => '8bit', 'X-Generator' => 'Loco '.PLUG_HTTP_ADDR, ) ); } $this->head = $head; $this->msgs = $export; $this->bin = ''; } public function enableHash(){ return $this->hash = new LocoMoTable; } public function setHeader( $key, $val ){ $this->head->add($key, $val); return $this; } public function setProject( LocoProject $Proj ){ return $this ->setHeader( 'Project-Id-Version', $Proj->proj_name ) ->setHeader($key, $val) ; } public function setLocale( LocoProjectLocale $Loc ){ return $this ->setHeader( 'Language', $Loc->label ) ->setHeader( 'Plural-Forms', 'nplurals='.$Loc->nplurals.'; plural='.$Loc->pluraleq.';' ) ; } public function count(){ return count($this->msgs); } public function compile(){ $table = array(''); $sources = array(''); $targets = array( $this->head->__toString() ); foreach( $this->msgs as $r ){ $msgid = $r['key']; if( isset($r['context']) && $r['context'] ){ $msgid or $msgid = "(".$r['context'].')'; $msgid = $r['context']."\x04".$msgid; } if( ! $msgid ){ continue; } $msgstr = $r['translation']; if( ! $msgstr ){ continue; } $table[] = $msgid; if( isset($r['plurals']) ){ foreach( $r['plurals'] as $i => $p ){ if( $i === 0 ){ $msgid .= "\0".$p['key']; } $msgstr .= "\0".$p['translation']; } } $sources[] = $msgid; $targets[] = $msgstr; } asort( $sources, SORT_STRING ); $this->bin = ''; $this->writeInteger( 0x950412de ); $this->writeInteger( 0 ); $n = count($sources); $this->writeInteger( $n ); $offset = 28; $this->writeInteger( $offset ); $offset += $n * 8; $this->writeInteger( $offset ); if( $this->hash ){ sort( $table, SORT_STRING ); $this->hash->compile( $table ); $s = $this->hash->count(); } else { $s = 0; } $this->writeInteger( $s ); $offset += $n * 8; $this->writeInteger( $offset ); if( $s ){ $offset += $s * 4; } $source = ''; foreach( $sources as $i => $str ){ $source .= $str."\0"; $this->writeInteger( $strlen = strlen($str) ); $this->writeInteger( $offset ); $offset += $strlen + 1; } $target = ''; foreach( array_keys($sources) as $i ){ $str = $targets[$i]; $target .= $str."\0"; $this->writeInteger( $strlen = strlen($str) ); $this->writeInteger( $offset ); $offset += $strlen + 1; } if( $this->hash ){ $this->bin .= $this->hash->__toString(); } $this->bin .= $source; $this->bin .= $target; return $this->bin; } private function writeInteger( $num ){ $this->bin .= pack( 'V', $num ); return $this; } } class LocoMoTable { private $size = 0; private $bin = ''; private $map; public function __construct( $data = null ){ if( is_array($data) ){ $this->compile( $data ); } else if( $data ){ $this->parse( $data ); } } public function count(){ if( ! isset($this->size) ){ if( $this->bin ){ $this->size = (int) ( strlen( $this->bin ) / 4 ); } else if( is_array($this->map) ){ $this->size = count($this->map); } else { return 0; } if( ! self::is_prime($this->size) || $this->size < 3 ){ throw new Exception('Size expected to be prime number above 2, got '.$this->size); } } return $this->size; } public function bytes(){ return $this->count() * 4; } public function __toString(){ return $this->bin; } public function export(){ if( ! is_array($this->map) ){ $this->parse( $this->bin ); } return $this->map; } private function reset( $length ){ $this->size = max( 3, self::next_prime ( $length * 4 / 3 ) ); $this->bin = null; $this->map = array(); return $this->size; } public function compile( array $msgids ){ $hash_tab_size = $this->reset( count($msgids) ); $packed = array_fill( 0, $hash_tab_size, "\0\0\0\0" ); $j = 0; foreach( $msgids as $msgid ){ $hash_val = self::hashpjw( $msgid ); $idx = $hash_val % $hash_tab_size; if( array_key_exists($idx, $this->map) ){ $incr = 1 + ( $hash_val % ( $hash_tab_size - 2 ) ); do { $idx += $incr; if( $hash_val === $idx ){ throw new Exception('Unable to find empty slot in hash table'); } $idx %= $hash_tab_size; } while( array_key_exists($idx, $this->map ) ); } $this->map[$idx] = $j; $packed[$idx] = pack('V', ++$j ); } return $this->bin = implode('',$packed); } public function lookup( $msgid, array $msgids ){ $hash_val = self::hashpjw( $msgid ); $idx = $hash_val % $this->size; $incr = 1 + ( $hash_val % ( $this->size - 2 ) ); while( true ){ if( ! array_key_exists($idx, $this->map) ){ break; } $j = $this->map[$idx]; if( isset($msgids[$j]) && $msgid === $msgids[$j] ){ return $j; } $idx += $incr; if( $idx === $hash_val ){ break; } $idx %= $this->size; } return -1; } public function parse( $bin ){ $this->bin = (string) $bin; $this->size = null; $hash_tab_size = $this->count(); $this->map = array(); $idx = -1; $byte = 0; while( ++$idx < $hash_tab_size ){ $word = substr( $this->bin, $byte, 4 ); if( "\0\0\0\0" !== $word ){ list(,$j) = unpack('V', $word ); $this->map[$idx] = $j - 1; } $byte += 4; } return $this->map; } public static function hashpjw( $str ){ $i = -1; $hval = 0; $len = strlen($str); while( ++$i < $len ){ $ord = ord( $str{$i} ); $hval = ( $hval << 4 ) + $ord; $g = $hval & 0xf0000000; if( $g !== 0 ){ $hval ^= $g >> 24; $hval ^= $g; } } return $hval; } private static function next_prime( $seed ){ $seed |= 1; while ( ! self::is_prime($seed) ){ $seed += 2; } return $seed; } private static function is_prime( $num ) { if ($num === 1 ){ return false; } if( $num === 2 ){ return true; } if( $num % 2 == 0 ) { return false; } for( $i = 3; $i <= ceil(sqrt($num)); $i = $i + 2) { if($num % $i == 0 ){ return false; } } return true; } } function loco_msgfmt( $po, $withhash = false ){ if( ! is_array($po) ){ $po = loco_parse_po( $po ); } $head = null; if( isset($po[0]) && '' === $po[0]['source'] ){ $head = loco_parse_po_headers( $po[0]['target'] ); $po[0] = null; } $export = array(); foreach( $po as $i => $r ){ if( ! $r ){ continue; } $msg = array ( 'key' => $r['source'], 'translation' => $r['target'], ); if( isset($r['parent']) ){ unset( $parent ); $parent = &$export[ $r['parent'] ]; isset($parent['plurals']) or $parent['plurals'] = array(); $parent['plurals'][] = $msg; } else { isset($r['context']) and $msg['context'] = $r['context']; $export[$i] = $msg; } } $mo = new LocoMo( $export, $head ); if( $withhash ){ $mo->enableHash(); } return $mo->compile(); } function loco_po_stats( array $po ){ $t = $n = $f = $u = 0; foreach( $po as $r ){ if( ! isset($r['source']) || '' === $r['source'] ){ continue; } if( isset($r['parent']) && is_int($r['parent']) ){ continue; } $t++; if( '' === $r['target'] ){ $u++; } else if( isset($r['flag']) && LOCO_FLAG_FUZZY === $r['flag'] ){ $f++; } else { $n++; } } $r = $t && $n ? $n / $t : 0; $p = (string) round( $r * 100 ); return compact('t','p','f','u'); }
|
1 |
<?php
|
2 |
/**
|
3 |
* Compiled source build from Loco core.
|
4 |
+
* Mon, 09 Jun 2014 17:41:06 +0100
|
5 |
*/
|
6 |
+
class LocoArray implements Iterator { private $i; private $length; private $keys; private $vals; private $index; public function __construct( array $data = array() ){ $this->keys = array_keys( $data ); $this->vals = array_values( $data ); $this->index = array_flip( array_map( 'strtolower', $this->keys ) ); $this->length = count( $this->keys ); $this->rewind(); } public function add( $key, $val ){ $k = strtolower($key); if( isset($this->index[$k]) ){ $this->keys[ $this->index[$k] ] = $key; $this->vals[ $this->index[$k] ] = $val; } else { $this->index[$k] = $this->length++; $this->keys[] = $key; $this->vals[] = $val; } return $this; } public function to_array(){ return array_combine( $this->keys, $this->vals ); } function __toString(){ $pairs = array(); foreach( $this->keys as $i => $key ){ $pairs[] = trim($key).': '.$this->vals[$i]; } return implode("\n", $pairs ); } public function count(){ return $this->length; } public function trimmed( $prop ){ return trim( $this->__get($prop) ); } public function has( $key ){ return isset( $this->index[ strtolower($key) ] ); } public function __get( $key ){ $key = strtolower( $key ); return isset($this->index[$key]) ? $this->vals[ $this->index[$key] ] : null; } public function rewind(){ $this->i = reset( $this->index ); } public function key(){ return is_int($this->i) ? $this->keys[$this->i] : null; } public function current(){ return is_int($this->i) ? $this->vals[$this->i] : null; } public function valid(){ return is_int($this->i); } public function next(){ $this->i = next( $this->index ); } } function loco_sniff_printf( $str ){ return (bool) preg_match('/%(?:\d\$)?(?:\+|-)?[ 0]?-?\d*(?:\.\d+)?[bcdeEfFgGosuxX]/', $str ); } define( 'LOCO_FLAG_OK', 0 ); define( 'LOCO_FLAG_ERROR', 1 ); define( 'LOCO_FLAG_REVIEW', 2 ); define( 'LOCO_FLAG_PENDING', 3 ); define( 'LOCO_FLAG_FUZZY', 4 ); function loco_flags(){ static $flags = array ( LOCO_FLAG_OK => 'Translated', LOCO_FLAG_ERROR => 'Incorrect', LOCO_FLAG_REVIEW => 'Needs review', LOCO_FLAG_PENDING => 'Pending sign-off', LOCO_FLAG_FUZZY => 'Fuzzy', ); return $flags; } function loco_flag( $f ){ $flags = loco_flags(); if( ! isset($flags[$f]) ){ throw new Exception('Invalid LOCO_FLAG_ constant ', var_export($f,1) ); } return $flags[$f]; } function loco_po_flags(){ static $map = array ( LOCO_FLAG_FUZZY => '#, fuzzy', ); return $map; } function loco_parse_reference_id( $refs, &$_id ){ if( false === ( $n = strpos($refs,'loco:') ) ){ $_id = ''; return $refs; } $_id = substr($refs, $n+5, 24 ); $refs = substr_replace( $refs, '', $n, 29 ); return trim( $refs ); } function loco_parse_po( $src ){ $i = -1; $key = ''; $entries = array(); $template = array( '#' => array(), 'id' => array(), 'str' => array(), 'ctxt' => array() ); foreach( preg_split('/[\r\n]+/', $src) as $line ){ while( $line = trim($line) ){ $c = $line{0}; if( '"' === $c ){ if( $key && isset($entry) ){ $entry[$key][$idx][] = loco_po_unquote( $line ); } } else if( '#' === $c ){ if( isset($entry['i']) ){ unset( $entry ); $entry = $template; } $f = empty($line{1}) ? ' ' : $line{1}; $entry['#'][$f][] = trim( substr( $line, 1+strlen($f) ), "/ \n\r\t" ); } else if( preg_match('/^msg(id|str|ctxt|id_plural)(?:\[(\d+)\])?[ \t]+/', $line, $r ) ){ $key = $r[1]; $idx = isset($r[2]) ? (int) $r[2] : 0; if( 'str' === $key ){ if( ! isset($entry['i']) ){ $entry['i'] = ++$i; $entries[$i] = &$entry; } } else if( ! isset($entry) || isset($entry['i']) ){ unset( $entry ); $entry = $template; } $line = substr( $line, strlen($r[0]) ); continue; } continue 2; } } unset( $entry ); $assets = array(); foreach( $entries as $i => $entry ){ $asset = array ( 'id' => '', 'source' => implode('',$entry['id'][0]), 'target' => implode('',$entry['str'][0]), ); $parse_printf = true; if( isset($entry['ctxt'][0]) ){ $asset['context'] = implode('',$entry['ctxt'][0]); } if( isset($entry['#'][' ']) ){ $asset['comment'] = implode("\n", $entry['#'][' '] ); } if( isset($entry['#']['.']) ){ $asset['notes'] = implode("\n", $entry['#']['.'] ); } if( isset($entry['#'][':']) ){ if( $refs = implode( "\n", $entry['#'][':'] ) ) { if( $refs = loco_parse_reference_id( $refs, $_id ) ){ $asset['refs'] = $refs; } if( $_id ){ $asset['_id'] = $_id; } } } if( isset($entry['#'][',']) ){ foreach( $entry['#'][','] as $flag ){ if( preg_match('/((?:no-)?\w+)-format/', $flag, $r ) ){ $parse_printf = false; if( 'no-' === substr($r[1],0,3) ){ $asset['format'] = false; } else { $asset['format'] = $r[1]; } } else if( $flag = loco_po_parse_flag($flag) ){ $asset['flag'] = $flag; break; } } } if( $parse_printf ){ if( $asset['source'] && loco_sniff_printf( $asset['source'] ) ){ $asset['format'] = 'c'; $parse_printf = false; } } $pidx = count($assets); $assets[] = $asset; if( isset($entry['id_plural']) || isset($entry['str'][1]) ){ $idx = 0; $num = max( 2, count($entry['str']) ); while( ++$idx < $num ){ $plural = array ( 'id' => '', 'source' => '', 'target' => isset($entry['str'][$idx]) ? implode('',$entry['str'][$idx]) : '', 'plural' => $idx, 'parent' => $pidx, ); if( 1 === $idx ){ $plural['source'] = isset($entry['id_plural'][0]) ? implode('',$entry['id_plural'][0]) : ''; } if( $parse_printf ){ if( $plural['source'] && loco_sniff_printf( $plural['source'] ) ){ $assets[$pidx]['format'] = 'c'; $parse_printf = false; } } $assets[] = $plural; } } } return $assets; } function loco_po_parse_flag( $text, $flag = 0 ){ $map = loco_po_flags(); foreach( explode(',',$text) as $needle ){ if( $needle = trim($needle) ){ foreach( $map as $loco_flag => $haystack ){ if( false !== stripos($haystack, $needle) ){ $flag |= $loco_flag; break; } } } } return $flag; } function loco_po_unquote( $str ){ return substr( stripcslashes($str), 1, -1 ); } function loco_parse_po_headers( $str ){ $headers = new LocoArray( array() ); foreach( explode("\n",$str) as $line ){ $i = strpos($line,':') and $key = trim( substr($line,0,$i) ) and $headers->add( $key, trim( substr($line,++$i) ) ); } return $headers; } class LocoMoParser { private $bin; private $be; private $n; private $o; private $t; private $v; public function __construct( $bin ){ $this->bin = $bin; } public function getAt( $idx ){ $offset = $this->targetOffset(); $offset += ( $idx * 8 ); $len = $this->integerAt( $offset ); $idx = $this->integerAt( $offset + 4 ); $txt = $this->bytes( $idx, $len ); if( false === strpos( $txt, "\0") ){ return $txt; } return explode( "\0", $txt ); } public function parse(){ $sourceOffset = $this->sourceOffset(); $targetOffset = $this->targetOffset(); $r = array(); $p = array(); $i = 0; $offset = $sourceOffset; while( $offset < $targetOffset ){ $r[$i] = array( 'id' => '', 'source' => '', 'target' => '' ); $len = $this->integerAt( $offset ); $idx = $this->integerAt( $offset + 4 ); $src = $this->bytes( $idx, $len ); $eot = strpos( $src, "\x04" ); if( false !== $eot ){ $r[$i]['context'] = substr($src, 0, $eot ); $src = substr( $src, $eot+1 ); } $nul = strpos( $src, "\0" ); if( false !== $nul ){ $p[$i][1] = array( 'id' => '', 'source' => substr($src, $nul+1 ), 'target' => '', 'parent' => $i, 'plural' => 1 ); $src = substr( $src, 0, $nul ); } $r[$i++]['source'] = $src; $offset += 8; } $t = $i; $offset = $targetOffset; for( $i = 0; $i < $t; $i++ ){ $len = $this->integerAt( $offset ); $idx = $this->integerAt( $offset + 4 ); $txt = $this->bytes( $idx, $len ); if( false !== strpos( $txt, "\0" ) ){ if( ! isset($p[$i][1]) ){ throw new Exception('Encountered translated plural without msgid_plural'); } $arr = explode( "\0", $txt ); $txt = array_shift( $arr ); foreach( $arr as $_i => $plural_txt ){ $plural_idx = $_i + 1; $p[$i][$plural_idx]['target'] = $plural_txt; } } $r[$i]['target'] = $txt; $offset += 8; } foreach( $p as $parent_id => $plurals ){ foreach( $plurals as $plural_idx => $msg ){ if( 1 < $plural_idx ){ $msg['source'] = $plurals[1]['source'].' (plural '.$plural_idx.')'; } $msg['parent'] = $parent_id; $msg['plural'] = $plural_idx; $r[] = $msg; } } return $r; } public function isBigendian(){ while( is_null($this->be) ){ $str = $this->words( 0, 2 ); $arr = unpack('V', $str); if( 0x950412de === $arr[1] ){ $this->be = false; break; } if( 0xde120495 === $arr[1] ){ $this->be = true; break; } throw new Exception('Invalid MO format'); } return $this->be; } public function version(){ if( is_null($this->v) ){ $this->v = $this->integerWord(1); } return $this->v; } public function count(){ if( is_null($this->n) ){ $this->n = $this->integerWord(2); } return $this->n; } public function sourceOffset(){ if( is_null($this->o) ){ $this->o = $this->integerWord(3); } return $this->o; } public function targetOffset(){ if( is_null($this->t) ){ $this->t = $this->integerWord(4); } return $this->t; } public function getHashTable(){ $s = $this->integerWord(5); $h = $this->integerWord(6); return $this->bytes( $h, $s * 4 ); } private function bytes( $offset, $length ){ return substr( $this->bin, $offset, $length ); } private function words( $offset, $length ){ return $this->bytes( $offset * 4, $length * 4 ); } private function integerWord( $offset ){ return $this->integerAt( $offset * 4 ); } private function integerAt( $offset ){ $str = $this->bytes( $offset, 4 ); $fmt = $this->isBigendian() ? 'N' : 'V'; $arr = unpack( $fmt, $str ); if( ! isset($arr[1]) || ! is_int($arr[1]) ){ throw new Exception('Failed to read 32 bit integer at byte '.$offset); } return $arr[1]; } } function loco_parse_mo( $src ){ $mo = new LocoMoParser($src); return $mo->parse(); } final class PHPTokens implements Iterator { private $tokens; private $i; private $skip_tokens = array(); private $skip_strings = array(); private $literal_tokens = array(); public function __construct( array $tokens ){ $this->tokens = $tokens; $this->rewind(); } public function literal(){ foreach( func_get_args() as $t ){ $this->literal_tokens[ $t ] = 1; } return $this; } public function ignore(){ foreach( func_get_args() as $t ){ if( is_int($t) ){ $this->skip_tokens[$t] = true; } else { $this->skip_strings[$t] = true; } } return $this; } public function export(){ $arr = array(); foreach( $this as $tok ){ $arr[] = $tok; } return $arr; } public function advance(){ $this->next(); return $this->current(); } public function pop(){ $tok = array_pop( $this->tokens ); $this->rewind(); return $tok; } public function shift(){ $tok = array_shift( $this->tokens); $this->rewind(); return $tok; } public function rewind(){ $this->i = ( false === reset($this->tokens) ? null : key($this->tokens) ); } public function valid(){ while( isset($this->i) ){ $tok = $this->tokens[$this->i]; if( is_array($tok) ){ if( isset($this->skip_tokens[$tok[0]]) ){ $this->next(); } else { return true; } } else if( isset($this->skip_strings[$tok]) ){ $this->next(); } else { return true; } } return false; } public function key(){ return $this->i; } public function next(){ $this->i = ( false === next($this->tokens) ? null : key($this->tokens) ); } public function current(){ if( ! $this->valid() ){ return false; } $tok = $this->tokens[$this->i]; if( is_array($tok) && isset($this->literal_tokens[$tok[0]]) ){ return $tok[1]; } return $tok; } public function __toString(){ $s = ''; foreach( $this as $token ){ $s .= is_array($token) ? $token[1] : $token; } return $s; } } function loco_parse_comment($comment){ if( '*' === $comment{1} ){ $lines = array(); foreach( explode("\n", $comment) as $line ){ $line and $lines[] = trim($line,"/* \r\t"); } $comment = implode("\n", $lines); } return trim( $comment,"/ \n\r\t" ); } function decapse_string( $s ){ if( empty($s) ){ return ''; } $q = $s{0}; switch( $q ){ case "'": case '"': $s = substr( $s, 1, -1 ); if( '"' === $q ){ return stripcslashes($s); } return str_replace( array( '\\'.$q, '\\\\' ), array( $q, '\\' ), $s ); default: return $s; } } function loco_extract_php( array $tokens, $fileref = '' ){ $extractor = new LocoPHPExtractor; return $extractor->extract( $tokens, $fileref ); } final class LocoPHPExtractor { private static $rules = array ( '_' => 's', 'gettext' => 's', 'dgettext' => '_s', 'ngettext' => 'sp', 'dngettext' => '_sp', '__' => 's', '_e' => 's', '_c' => 's', '_n' => 'sp', '_n_noop' => 'sp', '_nc' => 'sp', '__ngettext' => 'sp', '__ngettext_noop' => 'sp', '_x' => 'sc', '_ex' => 'sc', '_nx' => 'sp_c', '_nx_noop' => 'spc', '_n_js' => 'sp', '_nx_js' => 'spc', 'esc_attr__' => 's', 'esc_html__' => 's', 'esc_attr_e' => 's', 'esc_html_e' => 's', 'esc_attr_x' => 'sc', 'esc_html_x' => 'sc', 'comments_number_link' => '_sp', 't' => 's', 'st' => 's', 'trans' => 's', 'transChoice' => 'sp', ); private $exp = array(); private $reg = array(); public function extract( array $tokens, $fileref = '' ){ $tokens = new PHPTokens( $tokens ); $tokens->ignore( T_WHITESPACE ); $comment = ''; foreach( $tokens as $tok ){ if( isset($args) ){ if( ')' === $tok ){ isset($arg) and $arg and $args[] = $arg; $this->push( $rule, $args, $comment, $ref ); unset($args,$arg); $comment = ''; } else if( ',' === $tok ){ isset($arg) and $arg and $args[] = $arg; unset($arg); } else if( isset($arg) ){ $arg[] = $tok; } else { $arg = array( $tok ); } } else if( is_array($tok) ){ list($t,$s) = $tok; if( T_COMMENT === $t || T_DOC_COMMENT === $t ){ $comment = $s; } else if( T_STRING === $t && isset(self::$rules[$s]) && '(' === $tokens->advance() ){ $rule = self::$rules[$s]; $args = array(); $ref = $fileref ? $fileref.':'.$tok[2]: ''; } else if( $comment && false === stripos($comment, 'translators') ){ $comment = ''; } } } return $this->exp; } private function push( $rule, array $args, $comment = '', $ref = '' ){ $s = strpos( $rule, 's'); $p = strpos( $rule, 'p'); $c = strpos( $rule, 'c'); foreach( $args as $i => $tokens ){ if( 1 === count($tokens) && is_array($tokens[0]) && T_CONSTANT_ENCAPSED_STRING === $tokens[0][0] ){ $args[$i] = decapse_string( $tokens[0][1] ); } else { $args[$i] = null; } } $key = $msgid = $args[$s]; if( ! $msgid ){ return null; } $entry = array ( 'id' => '', 'source' => $msgid, 'target' => '', ); if( $c && isset($args[$c]) ){ $entry['context'] = $args[$c]; $key .= "\0". $args[$c]; } if( $ref ){ $entry['refs'] = $ref; } $parse_printf = true; if( $comment ){ if( preg_match('/xgettext:\s*((?:no-)?\w+)-format/', $comment, $r ) ){ if( 'no-' === substr($r[1],0,3) ){ $entry['format'] = false; } else { $entry['format'] = $r[1]; } $comment = str_replace( $r[0], '', $comment ); $parse_printf = false; } $entry['notes'] = loco_parse_comment($comment); } if( $parse_printf && loco_sniff_printf( $msgid ) ){ $entry['format'] = 'php'; $parse_printf = false; } if( isset($this->reg[$key]) ){ $index = $this->reg[$key]; $a = array(); isset($this->exp[$index]['refs']) and $a[] = $this->exp[$index]['refs']; isset($entry['refs']) and $a[] = $entry['refs']; $a && $this->exp[$index]['refs'] = implode(" ", $a ); $a = array(); isset($this->exp[$index]['comment']) and $a[] = $this->exp[$index]['comment']; isset($entry['comment']) and $a[] = $entry['comment']; $a && $this->exp[$index]['comment'] = implode("\n", $a ); } else { $index = count($this->exp); $this->reg[$key] = $index; $this->exp[] = $entry; } if( $p && isset($args[$p]) ){ $msgid_plural = $args[$p]; $entry = array ( 'id' => '', 'source' => $msgid_plural, 'target' => '', 'plural' => 1, 'parent' => $index, ); if( $parse_printf && loco_sniff_printf( $msgid_plural ) ){ $this->exp[$index]['format'] = 'php'; } $key = $msgid_plural."\0\0"; if( isset($this->reg[$key]) ){ $plural_index = $this->reg[$key]; $this->exp[$plural_index] = $entry; } else { $plural_index = count($this->exp); $this->reg[$key] = $plural_index; $this->exp[] = $entry; } } return $index; } public function get_xgettext( $input = '-' ){ $cmd = defined('WHICH_XGETTEXT') ? WHICH_XGETTEXT : 'xgettext'; $cmd.= ' -LPHP -c -o-'; if( $k = $this->get_xgettext_keywords() ){ $cmd.= ' -k'.implode(' -k', $k ); } return $cmd.' '.$input; } public function get_xgettext_keywords(){ $ks = array(); foreach( self::$rules as $word => $rule ){ $s = strpos( $rule, 's'); $k = $word.':'.++$s; if( false !== $p = strpos( $rule, 'p') ){ $k.= ','.++$p; } if( false !== $p = strpos( $rule, 'c') ){ $k.= ','.++$p.'c'; } $ks[] = $k; } return $ks; } } function loco_relative_path( $source_path, $target_path ){ $rel = ''; $common = false; $src = preg_split('!/+!', $source_path, -1, PREG_SPLIT_NO_EMPTY ); $dst = preg_split('!/+!', $target_path, -1, PREG_SPLIT_NO_EMPTY ); while( $src && $dst ){ if( current($src) !== current($dst) ){ break; } $common = true; array_shift($src); array_shift($dst); } if( ! $common ){ return $target_path; } if( $src ){ $up = array_fill( 0, count($src), '..' ); $rel = implode('/', $up ); } if( $dst ){ $rel && $rel .= '/'; $rel .= implode('/', $dst ); } return $rel; } class LocoMo { private $bin; private $msgs; private $head; private $hash; public function __construct( array $export, LocoArray $head = null ){ if( ! $head ){ $head = new LocoArray( array( 'Project-Id-Version' => 'Loco', 'Language' => 'English', 'Plural-Forms' => 'nplurals=2; plural=(n!=1);', 'MIME-Version' => '1.0', 'Content-Type' => 'text/plain; charset=UTF-8', 'Content-Transfer-Encoding' => '8bit', 'X-Generator' => 'Loco '.PLUG_HTTP_ADDR, ) ); } $this->head = $head; $this->msgs = $export; $this->bin = ''; } public function enableHash(){ return $this->hash = new LocoMoTable; } public function setHeader( $key, $val ){ $this->head->add($key, $val); return $this; } public function setProject( LocoProject $Proj ){ return $this ->setHeader( 'Project-Id-Version', $Proj->proj_name ) ->setHeader($key, $val) ; } public function setLocale( LocoProjectLocale $Loc ){ return $this ->setHeader( 'Language', $Loc->label ) ->setHeader( 'Plural-Forms', 'nplurals='.$Loc->nplurals.'; plural='.$Loc->pluraleq.';' ) ; } public function count(){ return count($this->msgs); } public function compile(){ $table = array(''); $sources = array(''); $targets = array( $this->head->__toString() ); foreach( $this->msgs as $r ){ $msgid = $r['key']; if( isset($r['context']) && $r['context'] ){ $msgid or $msgid = "(".$r['context'].')'; $msgid = $r['context']."\x04".$msgid; } if( ! $msgid ){ continue; } $msgstr = $r['translation']; if( ! $msgstr ){ continue; } $table[] = $msgid; if( isset($r['plurals']) ){ foreach( $r['plurals'] as $i => $p ){ if( $i === 0 ){ $msgid .= "\0".$p['key']; } $msgstr .= "\0".$p['translation']; } } $sources[] = $msgid; $targets[] = $msgstr; } asort( $sources, SORT_STRING ); $this->bin = ''; $this->writeInteger( 0x950412de ); $this->writeInteger( 0 ); $n = count($sources); $this->writeInteger( $n ); $offset = 28; $this->writeInteger( $offset ); $offset += $n * 8; $this->writeInteger( $offset ); if( $this->hash ){ sort( $table, SORT_STRING ); $this->hash->compile( $table ); $s = $this->hash->count(); } else { $s = 0; } $this->writeInteger( $s ); $offset += $n * 8; $this->writeInteger( $offset ); if( $s ){ $offset += $s * 4; } $source = ''; foreach( $sources as $i => $str ){ $source .= $str."\0"; $this->writeInteger( $strlen = strlen($str) ); $this->writeInteger( $offset ); $offset += $strlen + 1; } $target = ''; foreach( array_keys($sources) as $i ){ $str = $targets[$i]; $target .= $str."\0"; $this->writeInteger( $strlen = strlen($str) ); $this->writeInteger( $offset ); $offset += $strlen + 1; } if( $this->hash ){ $this->bin .= $this->hash->__toString(); } $this->bin .= $source; $this->bin .= $target; return $this->bin; } private function writeInteger( $num ){ $this->bin .= pack( 'V', $num ); return $this; } } class LocoMoTable { private $size = 0; private $bin = ''; private $map; public function __construct( $data = null ){ if( is_array($data) ){ $this->compile( $data ); } else if( $data ){ $this->parse( $data ); } } public function count(){ if( ! isset($this->size) ){ if( $this->bin ){ $this->size = (int) ( strlen( $this->bin ) / 4 ); } else if( is_array($this->map) ){ $this->size = count($this->map); } else { return 0; } if( ! self::is_prime($this->size) || $this->size < 3 ){ throw new Exception('Size expected to be prime number above 2, got '.$this->size); } } return $this->size; } public function bytes(){ return $this->count() * 4; } public function __toString(){ return $this->bin; } public function export(){ if( ! is_array($this->map) ){ $this->parse( $this->bin ); } return $this->map; } private function reset( $length ){ $this->size = max( 3, self::next_prime ( $length * 4 / 3 ) ); $this->bin = null; $this->map = array(); return $this->size; } public function compile( array $msgids ){ $hash_tab_size = $this->reset( count($msgids) ); $packed = array_fill( 0, $hash_tab_size, "\0\0\0\0" ); $j = 0; foreach( $msgids as $msgid ){ $hash_val = self::hashpjw( $msgid ); $idx = $hash_val % $hash_tab_size; if( array_key_exists($idx, $this->map) ){ $incr = 1 + ( $hash_val % ( $hash_tab_size - 2 ) ); do { $idx += $incr; if( $hash_val === $idx ){ throw new Exception('Unable to find empty slot in hash table'); } $idx %= $hash_tab_size; } while( array_key_exists($idx, $this->map ) ); } $this->map[$idx] = $j; $packed[$idx] = pack('V', ++$j ); } return $this->bin = implode('',$packed); } public function lookup( $msgid, array $msgids ){ $hash_val = self::hashpjw( $msgid ); $idx = $hash_val % $this->size; $incr = 1 + ( $hash_val % ( $this->size - 2 ) ); while( true ){ if( ! array_key_exists($idx, $this->map) ){ break; } $j = $this->map[$idx]; if( isset($msgids[$j]) && $msgid === $msgids[$j] ){ return $j; } $idx += $incr; if( $idx === $hash_val ){ break; } $idx %= $this->size; } return -1; } public function parse( $bin ){ $this->bin = (string) $bin; $this->size = null; $hash_tab_size = $this->count(); $this->map = array(); $idx = -1; $byte = 0; while( ++$idx < $hash_tab_size ){ $word = substr( $this->bin, $byte, 4 ); if( "\0\0\0\0" !== $word ){ list(,$j) = unpack('V', $word ); $this->map[$idx] = $j - 1; } $byte += 4; } return $this->map; } public static function hashpjw( $str ){ $i = -1; $hval = 0; $len = strlen($str); while( ++$i < $len ){ $ord = ord( $str{$i} ); $hval = ( $hval << 4 ) + $ord; $g = $hval & 0xf0000000; if( $g !== 0 ){ $hval ^= $g >> 24; $hval ^= $g; } } return $hval; } private static function next_prime( $seed ){ $seed |= 1; while ( ! self::is_prime($seed) ){ $seed += 2; } return $seed; } private static function is_prime( $num ) { if ($num === 1 ){ return false; } if( $num === 2 ){ return true; } if( $num % 2 == 0 ) { return false; } for( $i = 3; $i <= ceil(sqrt($num)); $i = $i + 2) { if($num % $i == 0 ){ return false; } } return true; } } function loco_msgfmt( $po, $withhash = false ){ if( ! is_array($po) ){ $po = loco_parse_po( $po ); } $head = null; if( isset($po[0]) && '' === $po[0]['source'] ){ $head = loco_parse_po_headers( $po[0]['target'] ); $po[0] = null; } $export = array(); foreach( $po as $i => $r ){ if( ! $r ){ continue; } $msg = array ( 'key' => $r['source'], 'translation' => $r['target'], ); if( isset($r['parent']) ){ unset( $parent ); $parent = &$export[ $r['parent'] ]; isset($parent['plurals']) or $parent['plurals'] = array(); $parent['plurals'][] = $msg; } else { isset($r['context']) and $msg['context'] = $r['context']; $export[$i] = $msg; } } $mo = new LocoMo( $export, $head ); if( $withhash ){ $mo->enableHash(); } return $mo->compile(); } function loco_po_stats( array $po ){ $t = $n = $f = $u = 0; foreach( $po as $r ){ if( ! isset($r['source']) || '' === $r['source'] ){ continue; } if( isset($r['parent']) && is_int($r['parent']) ){ continue; } $t++; if( '' === $r['target'] ){ $u++; } else if( isset($r['flag']) && LOCO_FLAG_FUZZY === $r['flag'] ){ $f++; } else { $n++; } } $r = $t && $n ? $n / $t : 0; $p = (string) round( $r * 100 ); return compact('t','p','f','u'); }
|
lib/build/locales-compiled.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Compiled source build from Loco core.
|
4 |
-
* Mon,
|
5 |
*/
|
6 |
-
return unserialize('a:130:{s:5:"af_ZA";s:24:"Afrikaans (South Africa)";s:5:"ar_AE";s:29:"Arabic (United Arab Emirates)";s:5:"ar_IL";s:15:"Arabic (Israel)";s:5:"az_TR";s:20:"Azerbaijani (Turkey)";s:5:"bg_BG";s:9:"Bulgarian";s:5:"bn_BD";s:20:"Bengali (Bangladesh)";s:5:"bs_BA";s:30:"Bosnian (Bosnia & Herzegovina)";s:5:"cs_CZ";s:5:"Czech";s:5:"cy_GB";s:5:"Welsh";s:5:"da_DK";s:6:"Danish";s:5:"de_AT";s:16:"German (Austria)";s:5:"de_CH";s:20:"German (Switzerland)";s:5:"de_DE";s:6:"German";s:5:"el_CY";s:14:"Greek (Cyprus)";s:5:"el_GR";s:5:"Greek";s:5:"en_AE";s:30:"English (United Arab Emirates)";s:5:"en_AU";s:19:"English (Australia)";s:5:"en_CA";s:16:"English (Canada)";s:5:"en_GB";s:12:"English (UK)";s:5:"en_HK";s:19:"English (Hong Kong)";s:5:"en_IE";s:17:"English (Ireland)";s:5:"en_IN";s:15:"English (India)";s:5:"en_NZ";s:21:"English (New Zealand)";s:5:"en_SG";s:19:"English (Singapore)";s:5:"en_US";s:13:"English (USA)";s:5:"en_ZA";s:22:"English (South Africa)";s:5:"es_AR";s:19:"Spanish (Argentina)";s:5:"es_BO";s:17:"Spanish (Bolivia)";s:5:"es_CL";s:15:"Spanish (Chile)";s:5:"es_CO";s:18:"Spanish (Colombia)";s:5:"es_CR";s:20:"Spanish (Costa Rica)";s:5:"es_CU";s:14:"Spanish (Cuba)";s:5:"es_DO";s:28:"Spanish (Dominican Republic)";s:5:"es_EC";s:17:"Spanish (Ecuador)";s:5:"es_ES";s:7:"Spanish";s:5:"es_GT";s:19:"Spanish (Guatemala)";s:5:"es_HN";s:18:"Spanish (Honduras)";s:5:"es_MX";s:16:"Spanish (Mexico)";s:5:"es_NI";s:19:"Spanish (Nicaragua)";s:5:"es_PA";s:16:"Spanish (Panama)";s:5:"es_PE";s:14:"Spanish (Peru)";s:5:"es_PY";s:18:"Spanish (Paraguay)";s:5:"es_SV";s:21:"Spanish (El Salvador)";s:5:"es_UY";s:17:"Spanish (Uruguay)";s:5:"es_VE";s:19:"Spanish (Venezuela)";s:5:"et_EE";s:8:"Estonian";s:5:"fa_AF";s:21:"Persian (Afghanistan)";s:5:"fa_IR";s:14:"Persian (Iran)";s:5:"fi_FI";s:7:"Finnish";s:5:"fo_DK";s:17:"Faroese (Denmark)";s:5:"fo_FO";s:23:"Faroese (Faroe Islands)";s:5:"fr_BE";s:16:"French (Belgium)";s:5:"fr_CA";s:15:"French (Canada)";s:5:"fr_CH";s:20:"French (Switzerland)";s:5:"fr_FR";s:6:"French";s:5:"fr_HT";s:14:"French (Haiti)";s:5:"ga_IE";s:15:"Irish (Ireland)";s:5:"gl_ES";s:16:"Galician (Spain)";s:5:"gn_PY";s:18:"Guarani (Paraguay)";s:5:"he_IL";s:15:"Hebrew (Israel)";s:5:"hi_IN";s:13:"Hindi (India)";s:5:"hr_HR";s:8:"Croatian";s:5:"ht_HT";s:14:"Haitian Creole";s:5:"hu_HU";s:9:"Hungarian";s:5:"hy_AM";s:8:"Armenian";s:5:"id_ID";s:10:"Indonesian";s:5:"is_IS";s:9:"Icelandic";s:5:"it_CH";s:21:"Italian (Switzerland)";s:5:"it_IT";s:7:"Italian";s:5:"ja_JP";s:8:"Japanese";s:5:"jv_ID";s:20:"Javanese (Indonesia)";s:5:"ka_GE";s:8:"Georgian";s:5:"kk_KZ";s:6:"Kazakh";s:5:"kn_IN";s:15:"Kannada (India)";s:5:"ko_KR";s:6:"Korean";s:5:"lb_LU";s:13:"Luxembourgish";s:5:"li_NL";s:24:"Limburgish (Netherlands)";s:5:"lo_LA";s:10:"Lao (Laos)";s:5:"lt_LT";s:10:"Lithuanian";s:5:"lv_LV";s:7:"Latvian";s:5:"mg_MG";s:21:"Malagasy (Madagascar)";s:5:"ms_MY";s:16:"Malay (Malaysia)";s:5:"mt_MT";s:7:"Maltese";s:5:"my_MM";s:17:"Burmese (Myanmar)";s:5:"nb_NO";s:7:"Bokmål";s:5:"ne_NP";s:6:"Nepali";s:5:"nl_BE";s:15:"Dutch (Belgium)";s:5:"nl_NL";s:5:"Dutch";s:5:"nn_NO";s:7:"Nynorsk";s:5:"no_NO";s:9:"Norwegian";s:5:"os_GE";s:18:"Ossetian (Georgia)";s:5:"os_RU";s:17:"Ossetian (Russia)";s:5:"os_TR";s:17:"Ossetian (Turkey)";s:5:"pa_IN";s:15:"Punjabi (India)";s:5:"pl_PL";s:6:"Polish";s:5:"pt_BR";s:19:"Portuguese (Brazil)";s:5:"pt_PT";s:10:"Portuguese";s:5:"ro_RO";s:8:"Romanian";s:5:"ru_RU";s:7:"Russian";s:5:"ru_UA";s:17:"Russian (Ukraine)";s:5:"sa_IN";s:16:"Sanskrit (India)";s:5:"sc_IT";s:17:"Sardinian (Italy)";s:5:"sd_PK";s:17:"Sindhi (Pakistan)";s:5:"si_LK";s:19:"Sinhala (Sri Lanka)";s:5:"sk_SK";s:6:"Slovak";s:5:"sl_SI";s:9:"Slovenian";s:5:"so_SO";s:6:"Somali";s:5:"sq_AL";s:18:"Albanian (Albania)";s:5:"sr_RS";s:7:"Serbian";s:5:"su_ID";s:21:"Sundanese (Indonesia)";s:5:"sv_SE";s:7:"Swedish";s:5:"sw_KE";s:15:"Swahili (Kenya)";s:5:"sw_KM";s:17:"Swahili (Comoros)";s:5:"sw_TZ";s:18:"Swahili (Tanzania)";s:5:"sw_UG";s:16:"Swahili (Uganda)";s:5:"ta_IN";s:13:"Tamil (India)";s:5:"ta_LK";s:17:"Tamil (Sri Lanka)";s:5:"te_IN";s:14:"Telugu (India)";s:5:"tg_TJ";s:18:"Tajik (Tajikistan)";s:5:"th_TH";s:15:"Thai (Thailand)";s:5:"tr_TR";s:7:"Turkish";s:5:"ug_CN";s:14:"Uyghur (China)";s:5:"uk_UA";s:19:"Ukrainian (Ukraine)";s:5:"ur_IN";s:12:"Urdu (India)";s:5:"ur_PK";s:15:"Urdu (Pakistan)";s:5:"uz_UZ";s:18:"Uzbek (Uzbekistan)";s:5:"vi_VN";s:10:"Vietnamese";s:5:"zh_CN";s:7:"Chinese";s:5:"zh_HK";s:19:"Chinese (Hong Kong)";s:5:"zh_TW";s:16:"Chinese (Taiwan)";}');
|
1 |
<?php
|
2 |
/**
|
3 |
* Compiled source build from Loco core.
|
4 |
+
* Mon, 09 Jun 2014 18:07:29 +0100
|
5 |
*/
|
6 |
+
function loco_language_country( $lang ){ static $a; if( ! isset($a) ){ $a = unserialize('a:79:{s:2:"af";s:2:"ZA";s:2:"ar";s:2:"IL";s:2:"az";s:2:"TR";s:2:"bg";s:2:"BG";s:2:"bn";s:2:"BD";s:2:"bs";s:2:"BA";s:2:"cs";s:2:"CZ";s:2:"cy";s:2:"GB";s:2:"da";s:2:"DK";s:2:"de";s:2:"DE";s:2:"el";s:2:"GR";s:2:"en";s:2:"GB";s:2:"es";s:2:"ES";s:2:"et";s:2:"EE";s:2:"fa";s:2:"AF";s:2:"fi";s:2:"FI";s:2:"fo";s:2:"FO";s:2:"fr";s:2:"FR";s:2:"ga";s:2:"IE";s:2:"gl";s:2:"ES";s:2:"gn";s:2:"PY";s:2:"he";s:2:"IL";s:2:"hi";s:2:"IN";s:2:"hr";s:2:"HR";s:2:"ht";s:2:"HT";s:2:"hu";s:2:"HU";s:2:"hy";s:2:"AM";s:2:"id";s:2:"ID";s:2:"is";s:2:"IS";s:2:"it";s:2:"IT";s:2:"ja";s:2:"JP";s:2:"jv";s:2:"ID";s:2:"ka";s:2:"GE";s:2:"kk";s:2:"KZ";s:2:"kn";s:2:"IN";s:2:"ko";s:2:"KR";s:2:"lb";s:2:"LU";s:2:"li";s:2:"NL";s:2:"lo";s:2:"LA";s:2:"lt";s:2:"LT";s:2:"lv";s:2:"LV";s:2:"mg";s:2:"MG";s:2:"ms";s:2:"MY";s:2:"mt";s:2:"MT";s:2:"my";s:2:"MM";s:2:"nb";s:2:"NO";s:2:"ne";s:2:"NP";s:2:"nl";s:2:"NL";s:2:"nn";s:2:"NO";s:2:"no";s:2:"NO";s:2:"os";s:2:"TR";s:2:"pa";s:2:"IN";s:2:"pl";s:2:"PL";s:2:"pt";s:2:"PT";s:2:"ro";s:2:"RO";s:2:"ru";s:2:"RU";s:2:"sa";s:2:"IN";s:2:"sc";s:2:"IT";s:2:"sd";s:2:"PK";s:2:"si";s:2:"LK";s:2:"sk";s:2:"SK";s:2:"sl";s:2:"SI";s:2:"so";s:2:"SO";s:2:"sq";s:2:"AL";s:2:"sr";s:2:"RS";s:2:"su";s:2:"ID";s:2:"sv";s:2:"SE";s:2:"sw";s:2:"KE";s:2:"ta";s:2:"IN";s:2:"te";s:2:"IN";s:2:"tg";s:2:"TJ";s:2:"th";s:2:"TH";s:2:"tr";s:2:"TR";s:2:"ug";s:2:"CN";s:2:"uk";s:2:"UA";s:2:"ur";s:2:"IN";s:2:"uz";s:2:"UZ";s:2:"vi";s:2:"VN";s:2:"zh";s:2:"CN";}'); } if( isset($a[$lang]) ){ return $a[$lang]; } return ''; } return unserialize('a:3:{s:7:"locales";a:79:{s:2:"af";a:1:{s:2:"ZA";s:24:"Afrikaans (South Africa)";}s:2:"ar";a:2:{s:2:"IL";s:15:"Arabic (Israel)";s:2:"AE";s:29:"Arabic (United Arab Emirates)";}s:2:"az";a:1:{s:2:"TR";s:20:"Azerbaijani (Turkey)";}s:2:"bg";a:1:{s:2:"BG";s:9:"Bulgarian";}s:2:"bn";a:1:{s:2:"BD";s:20:"Bengali (Bangladesh)";}s:2:"bs";a:1:{s:2:"BA";s:30:"Bosnian (Bosnia & Herzegovina)";}s:2:"cs";a:1:{s:2:"CZ";s:5:"Czech";}s:2:"cy";a:1:{s:2:"GB";s:5:"Welsh";}s:2:"da";a:1:{s:2:"DK";s:6:"Danish";}s:2:"de";a:3:{s:2:"DE";s:6:"German";s:2:"CH";s:20:"German (Switzerland)";s:2:"AT";s:16:"German (Austria)";}s:2:"el";a:2:{s:2:"GR";s:5:"Greek";s:2:"CY";s:14:"Greek (Cyprus)";}s:2:"en";a:11:{s:2:"GB";s:12:"English (UK)";s:2:"IE";s:17:"English (Ireland)";s:2:"US";s:13:"English (USA)";s:2:"CA";s:16:"English (Canada)";s:2:"AU";s:19:"English (Australia)";s:2:"NZ";s:21:"English (New Zealand)";s:2:"HK";s:19:"English (Hong Kong)";s:2:"SG";s:19:"English (Singapore)";s:2:"AE";s:30:"English (United Arab Emirates)";s:2:"ZA";s:22:"English (South Africa)";s:2:"IN";s:15:"English (India)";}s:2:"es";a:19:{s:2:"ES";s:7:"Spanish";s:2:"MX";s:16:"Spanish (Mexico)";s:2:"AR";s:19:"Spanish (Argentina)";s:2:"BO";s:17:"Spanish (Bolivia)";s:2:"CL";s:15:"Spanish (Chile)";s:2:"CO";s:18:"Spanish (Colombia)";s:2:"CR";s:20:"Spanish (Costa Rica)";s:2:"CU";s:14:"Spanish (Cuba)";s:2:"DO";s:28:"Spanish (Dominican Republic)";s:2:"EC";s:17:"Spanish (Ecuador)";s:2:"SV";s:21:"Spanish (El Salvador)";s:2:"GT";s:19:"Spanish (Guatemala)";s:2:"HN";s:18:"Spanish (Honduras)";s:2:"NI";s:19:"Spanish (Nicaragua)";s:2:"PA";s:16:"Spanish (Panama)";s:2:"PY";s:18:"Spanish (Paraguay)";s:2:"PE";s:14:"Spanish (Peru)";s:2:"UY";s:17:"Spanish (Uruguay)";s:2:"VE";s:19:"Spanish (Venezuela)";}s:2:"et";a:1:{s:2:"EE";s:8:"Estonian";}s:2:"fa";a:2:{s:2:"AF";s:21:"Persian (Afghanistan)";s:2:"IR";s:14:"Persian (Iran)";}s:2:"fi";a:1:{s:2:"FI";s:7:"Finnish";}s:2:"fo";a:2:{s:2:"FO";s:23:"Faroese (Faroe Islands)";s:2:"DK";s:17:"Faroese (Denmark)";}s:2:"fr";a:5:{s:2:"FR";s:6:"French";s:2:"CH";s:20:"French (Switzerland)";s:2:"BE";s:16:"French (Belgium)";s:2:"HT";s:14:"French (Haiti)";s:2:"CA";s:15:"French (Canada)";}s:2:"ga";a:1:{s:2:"IE";s:15:"Irish (Ireland)";}s:2:"gl";a:1:{s:2:"ES";s:16:"Galician (Spain)";}s:2:"gn";a:1:{s:2:"PY";s:18:"Guarani (Paraguay)";}s:2:"he";a:1:{s:2:"IL";s:15:"Hebrew (Israel)";}s:2:"hi";a:1:{s:2:"IN";s:13:"Hindi (India)";}s:2:"hr";a:1:{s:2:"HR";s:8:"Croatian";}s:2:"ht";a:1:{s:2:"HT";s:14:"Haitian Creole";}s:2:"hu";a:1:{s:2:"HU";s:9:"Hungarian";}s:2:"hy";a:1:{s:2:"AM";s:8:"Armenian";}s:2:"id";a:1:{s:2:"ID";s:10:"Indonesian";}s:2:"is";a:1:{s:2:"IS";s:9:"Icelandic";}s:2:"it";a:2:{s:2:"IT";s:7:"Italian";s:2:"CH";s:21:"Italian (Switzerland)";}s:2:"ja";a:1:{s:2:"JP";s:8:"Japanese";}s:2:"jv";a:1:{s:2:"ID";s:20:"Javanese (Indonesia)";}s:2:"ka";a:1:{s:2:"GE";s:8:"Georgian";}s:2:"kk";a:1:{s:2:"KZ";s:6:"Kazakh";}s:2:"kn";a:1:{s:2:"IN";s:15:"Kannada (India)";}s:2:"ko";a:1:{s:2:"KR";s:6:"Korean";}s:2:"lb";a:1:{s:2:"LU";s:13:"Luxembourgish";}s:2:"li";a:1:{s:2:"NL";s:24:"Limburgish (Netherlands)";}s:2:"lo";a:1:{s:2:"LA";s:10:"Lao (Laos)";}s:2:"lt";a:1:{s:2:"LT";s:10:"Lithuanian";}s:2:"lv";a:1:{s:2:"LV";s:7:"Latvian";}s:2:"mg";a:1:{s:2:"MG";s:21:"Malagasy (Madagascar)";}s:2:"ms";a:1:{s:2:"MY";s:16:"Malay (Malaysia)";}s:2:"mt";a:1:{s:2:"MT";s:7:"Maltese";}s:2:"my";a:1:{s:2:"MM";s:17:"Burmese (Myanmar)";}s:2:"nb";a:1:{s:2:"NO";s:7:"Bokmål";}s:2:"ne";a:1:{s:2:"NP";s:6:"Nepali";}s:2:"nl";a:2:{s:2:"NL";s:5:"Dutch";s:2:"BE";s:15:"Dutch (Belgium)";}s:2:"nn";a:1:{s:2:"NO";s:7:"Nynorsk";}s:2:"no";a:1:{s:2:"NO";s:9:"Norwegian";}s:2:"os";a:3:{s:2:"TR";s:17:"Ossetian (Turkey)";s:2:"RU";s:17:"Ossetian (Russia)";s:2:"GE";s:18:"Ossetian (Georgia)";}s:2:"pa";a:1:{s:2:"IN";s:15:"Punjabi (India)";}s:2:"pl";a:1:{s:2:"PL";s:6:"Polish";}s:2:"pt";a:2:{s:2:"PT";s:10:"Portuguese";s:2:"BR";s:19:"Portuguese (Brazil)";}s:2:"ro";a:1:{s:2:"RO";s:8:"Romanian";}s:2:"ru";a:2:{s:2:"RU";s:7:"Russian";s:2:"UA";s:17:"Russian (Ukraine)";}s:2:"sa";a:1:{s:2:"IN";s:16:"Sanskrit (India)";}s:2:"sc";a:1:{s:2:"IT";s:17:"Sardinian (Italy)";}s:2:"sd";a:1:{s:2:"PK";s:17:"Sindhi (Pakistan)";}s:2:"si";a:1:{s:2:"LK";s:19:"Sinhala (Sri Lanka)";}s:2:"sk";a:1:{s:2:"SK";s:6:"Slovak";}s:2:"sl";a:1:{s:2:"SI";s:9:"Slovenian";}s:2:"so";a:1:{s:2:"SO";s:6:"Somali";}s:2:"sq";a:1:{s:2:"AL";s:18:"Albanian (Albania)";}s:2:"sr";a:1:{s:2:"RS";s:7:"Serbian";}s:2:"su";a:1:{s:2:"ID";s:21:"Sundanese (Indonesia)";}s:2:"sv";a:1:{s:2:"SE";s:7:"Swedish";}s:2:"sw";a:4:{s:2:"KE";s:15:"Swahili (Kenya)";s:2:"UG";s:16:"Swahili (Uganda)";s:2:"TZ";s:18:"Swahili (Tanzania)";s:2:"KM";s:17:"Swahili (Comoros)";}s:2:"ta";a:2:{s:2:"IN";s:13:"Tamil (India)";s:2:"LK";s:17:"Tamil (Sri Lanka)";}s:2:"te";a:1:{s:2:"IN";s:14:"Telugu (India)";}s:2:"tg";a:1:{s:2:"TJ";s:18:"Tajik (Tajikistan)";}s:2:"th";a:1:{s:2:"TH";s:15:"Thai (Thailand)";}s:2:"tr";a:1:{s:2:"TR";s:7:"Turkish";}s:2:"ug";a:1:{s:2:"CN";s:14:"Uyghur (China)";}s:2:"uk";a:1:{s:2:"UA";s:19:"Ukrainian (Ukraine)";}s:2:"ur";a:2:{s:2:"IN";s:12:"Urdu (India)";s:2:"PK";s:15:"Urdu (Pakistan)";}s:2:"uz";a:1:{s:2:"UZ";s:18:"Uzbek (Uzbekistan)";}s:2:"vi";a:1:{s:2:"VN";s:10:"Vietnamese";}s:2:"zh";a:3:{s:2:"CN";s:7:"Chinese";s:2:"HK";s:19:"Chinese (Hong Kong)";s:2:"TW";s:16:"Chinese (Taiwan)";}}s:5:"langs";a:185:{s:2:"ab";a:3:{i:0;s:9:"Abkhazian";i:1;s:0:"";i:2;a:0:{}}s:2:"aa";a:3:{i:0;s:4:"Afar";i:1;s:0:"";i:2;a:0:{}}s:2:"af";a:3:{i:0;s:9:"Afrikaans";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ak";a:3:{i:0;s:4:"Akan";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"sq";a:3:{i:0;s:8:"Albanian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"am";a:3:{i:0;s:7:"Amharic";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ar";a:3:{i:0;s:6:"Arabic";i:1;s:95:"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100 >= 3 && n%100<=10 ? 3 : n%100 >= 11 && n%100<=99 ? 4 : 5";i:2;a:6:{i:0;s:4:"zero";i:1;s:3:"one";i:2;s:3:"two";i:3;s:3:"few";i:4;s:4:"many";i:5;s:5:"other";}}s:2:"an";a:3:{i:0;s:9:"Aragonese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"hy";a:3:{i:0;s:8:"Armenian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"as";a:3:{i:0;s:8:"Assamese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"av";a:3:{i:0;s:6:"Avaric";i:1;s:0:"";i:2;a:0:{}}s:2:"ae";a:3:{i:0;s:7:"Avestan";i:1;s:0:"";i:2;a:0:{}}s:2:"ay";a:3:{i:0;s:6:"Aymara";i:1;s:0:"";i:2;a:0:{}}s:2:"az";a:3:{i:0;s:11:"Azerbaijani";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"bm";a:3:{i:0;s:7:"Bambara";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ba";a:3:{i:0;s:7:"Bashkir";i:1;s:0:"";i:2;a:0:{}}s:2:"eu";a:3:{i:0;s:6:"Basque";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"be";a:3:{i:0;s:10:"Belarusian";i:1;s:82:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:4:"many";}}s:2:"bn";a:3:{i:0;s:7:"Bengali";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"bh";a:3:{i:0;s:6:"Bihari";i:1;s:28:"( n >= 0 && n <= 1 ) ? 0 : 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"bi";a:3:{i:0;s:7:"Bislama";i:1;s:0:"";i:2;a:0:{}}s:2:"bs";a:3:{i:0;s:7:"Bosnian";i:1;s:82:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"br";a:3:{i:0;s:6:"Breton";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"bg";a:3:{i:0;s:9:"Bulgarian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"my";a:3:{i:0;s:7:"Burmese";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ca";a:3:{i:0;s:18:"Catalan; Valencian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ch";a:3:{i:0;s:8:"Chamorro";i:1;s:0:"";i:2;a:0:{}}s:2:"ce";a:3:{i:0;s:7:"Chechen";i:1;s:0:"";i:2;a:0:{}}s:2:"ny";a:3:{i:0;s:23:"Chichewa; Chewa; Nyanja";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"zh";a:3:{i:0;s:7:"Chinese";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"cu";a:3:{i:0;s:64:"Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old";i:1;s:0:"";i:2;a:0:{}}s:2:"cv";a:3:{i:0;s:7:"Chuvash";i:1;s:0:"";i:2;a:0:{}}s:2:"kw";a:3:{i:0;s:7:"Cornish";i:1;s:27:"n == 1 ? 0 : n == 2 ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:5:"other";}}s:2:"co";a:3:{i:0;s:8:"Corsican";i:1;s:0:"";i:2;a:0:{}}s:2:"cr";a:3:{i:0;s:4:"Cree";i:1;s:0:"";i:2;a:0:{}}s:2:"hr";a:3:{i:0;s:8:"Croatian";i:1;s:80:"n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"cs";a:3:{i:0;s:5:"Czech";i:1;s:45:"( n == 1 ) ? 0 : ( n >= 2 && n <= 4 ) ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"da";a:3:{i:0;s:6:"Danish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"dv";a:3:{i:0;s:26:"Divehi; Dhivehi; Maldivian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"nl";a:3:{i:0;s:14:"Dutch; Flemish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"dz";a:3:{i:0;s:8:"Dzongkha";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"en";a:3:{i:0;s:7:"English";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"eo";a:3:{i:0;s:9:"Esperanto";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"et";a:3:{i:0;s:8:"Estonian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ee";a:3:{i:0;s:3:"Ewe";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"fo";a:3:{i:0;s:7:"Faroese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"fj";a:3:{i:0;s:6:"Fijian";i:1;s:0:"";i:2;a:0:{}}s:2:"fi";a:3:{i:0;s:7:"Finnish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"fr";a:3:{i:0;s:6:"French";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ff";a:3:{i:0;s:5:"Fulah";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"gd";a:3:{i:0;s:23:"Gaelic; Scottish Gaelic";i:1;s:26:"n < 2 ? 0 : n == 2 ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:5:"other";}}s:2:"gl";a:3:{i:0;s:8:"Galician";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"lg";a:3:{i:0;s:5:"Ganda";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ka";a:3:{i:0;s:8:"Georgian";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"de";a:3:{i:0;s:6:"German";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"el";a:3:{i:0;s:5:"Greek";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"gn";a:3:{i:0;s:7:"Guarani";i:1;s:0:"";i:2;a:0:{}}s:2:"gu";a:3:{i:0;s:8:"Gujarati";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ht";a:3:{i:0;s:23:"Haitian; Haitian Creole";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ha";a:3:{i:0;s:5:"Hausa";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"he";a:3:{i:0;s:6:"Hebrew";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"hz";a:3:{i:0;s:6:"Herero";i:1;s:0:"";i:2;a:0:{}}s:2:"hi";a:3:{i:0;s:5:"Hindi";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ho";a:3:{i:0;s:9:"Hiri Motu";i:1;s:0:"";i:2;a:0:{}}s:2:"hu";a:3:{i:0;s:9:"Hungarian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"is";a:3:{i:0;s:9:"Icelandic";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"io";a:3:{i:0;s:3:"Ido";i:1;s:0:"";i:2;a:0:{}}s:2:"ig";a:3:{i:0;s:4:"Igbo";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"id";a:3:{i:0;s:10:"Indonesian";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ia";a:3:{i:0;s:58:"Interlingua (International Auxiliary Language Association)";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ie";a:3:{i:0;s:11:"Interlingue";i:1;s:0:"";i:2;a:0:{}}s:2:"iu";a:3:{i:0;s:9:"Inuktitut";i:1;s:27:"n == 1 ? 0 : n == 2 ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:5:"other";}}s:2:"ik";a:3:{i:0;s:7:"Inupiaq";i:1;s:0:"";i:2;a:0:{}}s:2:"ga";a:3:{i:0;s:5:"Irish";i:1;s:44:"n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4";i:2;a:5:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:3:"few";i:3;s:4:"many";i:4;s:5:"other";}}s:2:"it";a:3:{i:0;s:7:"Italian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ja";a:3:{i:0;s:8:"Japanese";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"jv";a:3:{i:0;s:8:"Javanese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"kl";a:3:{i:0;s:24:"Kalaallisut; Greenlandic";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"kn";a:3:{i:0;s:7:"Kannada";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"kr";a:3:{i:0;s:6:"Kanuri";i:1;s:0:"";i:2;a:0:{}}s:2:"ks";a:3:{i:0;s:8:"Kashmiri";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"kk";a:3:{i:0;s:6:"Kazakh";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"km";a:3:{i:0;s:5:"Khmer";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ki";a:3:{i:0;s:14:"Kikuyu; Gikuyu";i:1;s:0:"";i:2;a:0:{}}s:2:"rw";a:3:{i:0;s:11:"Kinyarwanda";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ky";a:3:{i:0;s:7:"Kirghiz";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"kv";a:3:{i:0;s:4:"Komi";i:1;s:0:"";i:2;a:0:{}}s:2:"kg";a:3:{i:0;s:5:"Kongo";i:1;s:0:"";i:2;a:0:{}}s:2:"ko";a:3:{i:0;s:6:"Korean";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"kj";a:3:{i:0;s:18:"Kuanyama; Kwanyama";i:1;s:0:"";i:2;a:0:{}}s:2:"ku";a:3:{i:0;s:7:"Kurdish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"lo";a:3:{i:0;s:3:"Lao";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"la";a:3:{i:0;s:5:"Latin";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"lv";a:3:{i:0;s:7:"Latvian";i:1;s:49:"n % 10 == 1 && n % 100 != 11 ? 0 : n != 0 ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:5:"other";i:2;s:4:"zero";}}s:2:"li";a:3:{i:0;s:32:"Limburgan; Limburger; Limburgish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ln";a:3:{i:0;s:7:"Lingala";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"lt";a:3:{i:0;s:10:"Lithuanian";i:1;s:71:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"lu";a:3:{i:0;s:12:"Luba-Katanga";i:1;s:0:"";i:2;a:0:{}}s:2:"lb";a:3:{i:0;s:28:"Luxembourgish; Letzeburgesch";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"mk";a:3:{i:0;s:10:"Macedonian";i:1;s:40:"( n % 10 == 1 && n % 100 != 11 ) ? 0 : 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"mg";a:3:{i:0;s:8:"Malagasy";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ms";a:3:{i:0;s:5:"Malay";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ml";a:3:{i:0;s:9:"Malayalam";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"mt";a:3:{i:0;s:7:"Maltese";i:1;s:75:"(n==1 ? 0 : n==0||( n%100>1 && n%100<11)? 1 :(n%100>10 && n%100<20)? 2 : 3)";i:2;a:4:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:4:"many";i:3;s:5:"other";}}s:2:"gv";a:3:{i:0;s:4:"Manx";i:1;s:43:"n%10==1 ? 0 : n%10==2 ? 1 : n%20==0 ? 2 : 3";i:2;a:4:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:3:"few";i:3;s:5:"other";}}s:2:"mi";a:3:{i:0;s:5:"Maori";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"mr";a:3:{i:0;s:7:"Marathi";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"mh";a:3:{i:0;s:11:"Marshallese";i:1;s:0:"";i:2;a:0:{}}s:2:"mo";a:3:{i:0;s:9:"Moldavian";i:1;s:50:"n == 1 ? 0 : n % 100 >= 1 && n % 100 <= 19 ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"mn";a:3:{i:0;s:9:"Mongolian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"na";a:3:{i:0;s:5:"Nauru";i:1;s:0:"";i:2;a:0:{}}s:2:"nv";a:3:{i:0;s:14:"Navajo; Navaho";i:1;s:0:"";i:2;a:0:{}}s:2:"nd";a:3:{i:0;s:29:"Ndebele, North; North Ndebele";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"nr";a:3:{i:0;s:29:"Ndebele, South; South Ndebele";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ng";a:3:{i:0;s:6:"Ndonga";i:1;s:0:"";i:2;a:0:{}}s:2:"ne";a:3:{i:0;s:6:"Nepali";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"se";a:3:{i:0;s:13:"Northern Sami";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"no";a:3:{i:0;s:9:"Norwegian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"nb";a:3:{i:0;s:17:"Norwegian Bokmål";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"nn";a:3:{i:0;s:17:"Norwegian Nynorsk";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"oc";a:3:{i:0;s:31:"Occitan (post 1500); Provençal";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"oj";a:3:{i:0;s:6:"Ojibwa";i:1;s:0:"";i:2;a:0:{}}s:2:"or";a:3:{i:0;s:5:"Oriya";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"om";a:3:{i:0;s:5:"Oromo";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"os";a:3:{i:0;s:17:"Ossetian; Ossetic";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"pi";a:3:{i:0;s:4:"Pali";i:1;s:0:"";i:2;a:0:{}}s:2:"pa";a:3:{i:0;s:16:"Panjabi; Punjabi";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"fa";a:3:{i:0;s:7:"Persian";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"pl";a:3:{i:0;s:6:"Polish";i:1;s:66:"(n==1 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:4:"many";}}s:2:"pt";a:3:{i:0;s:10:"Portuguese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ps";a:3:{i:0;s:6:"Pushto";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"qu";a:3:{i:0;s:7:"Quechua";i:1;s:0:"";i:2;a:0:{}}s:2:"rm";a:3:{i:0;s:13:"Raeto-Romance";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ro";a:3:{i:0;s:8:"Romanian";i:1;s:56:"(n==1 ? 0 :(((n%100>19)||(( n%100==0)&&(n!=0)))? 2 : 1))";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"rn";a:3:{i:0;s:5:"Rundi";i:1;s:0:"";i:2;a:0:{}}s:2:"ru";a:3:{i:0;s:7:"Russian";i:1;s:82:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:4:"many";}}s:2:"sm";a:3:{i:0;s:6:"Samoan";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"sg";a:3:{i:0;s:5:"Sango";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"sa";a:3:{i:0;s:8:"Sanskrit";i:1;s:0:"";i:2;a:0:{}}s:2:"sc";a:3:{i:0;s:9:"Sardinian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"sr";a:3:{i:0;s:7:"Serbian";i:1;s:82:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"sn";a:3:{i:0;s:5:"Shona";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ii";a:3:{i:0;s:10:"Sichuan Yi";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"sd";a:3:{i:0;s:6:"Sindhi";i:1;s:0:"";i:2;a:0:{}}s:2:"si";a:3:{i:0;s:18:"Sinhala; Sinhalese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"sk";a:3:{i:0;s:6:"Slovak";i:1;s:45:"( n == 1 ) ? 0 : ( n >= 2 && n <= 4 ) ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"sl";a:3:{i:0;s:9:"Slovenian";i:1;s:56:"n%100==1 ? 0 : n%100==2 ? 1 : n%100==3||n%100==4 ? 2 : 3";i:2;a:4:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:3:"few";i:3;s:5:"other";}}s:2:"so";a:3:{i:0;s:6:"Somali";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"st";a:3:{i:0;s:15:"Sotho, Southern";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"es";a:3:{i:0;s:7:"Spanish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"su";a:3:{i:0;s:9:"Sundanese";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"sw";a:3:{i:0;s:7:"Swahili";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ss";a:3:{i:0;s:5:"Swati";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"sv";a:3:{i:0;s:7:"Swedish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"tl";a:3:{i:0;s:7:"Tagalog";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ty";a:3:{i:0;s:8:"Tahitian";i:1;s:0:"";i:2;a:0:{}}s:2:"tg";a:3:{i:0;s:5:"Tajik";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ta";a:3:{i:0;s:5:"Tamil";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"tt";a:3:{i:0;s:5:"Tatar";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"te";a:3:{i:0;s:6:"Telugu";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"th";a:3:{i:0;s:4:"Thai";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"bo";a:3:{i:0;s:7:"Tibetan";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ti";a:3:{i:0;s:8:"Tigrinya";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"to";a:3:{i:0;s:21:"Tonga (Tonga Islands)";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ts";a:3:{i:0;s:6:"Tsonga";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"tn";a:3:{i:0;s:6:"Tswana";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"tr";a:3:{i:0;s:7:"Turkish";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"tk";a:3:{i:0;s:7:"Turkmen";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"tw";a:3:{i:0;s:3:"Twi";i:1;s:0:"";i:2;a:0:{}}s:2:"ug";a:3:{i:0;s:14:"Uighur; Uyghur";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"uk";a:3:{i:0;s:9:"Ukrainian";i:1;s:82:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:4:"many";}}s:2:"ur";a:3:{i:0;s:4:"Urdu";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"uz";a:3:{i:0;s:5:"Uzbek";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ve";a:3:{i:0;s:5:"Venda";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"vi";a:3:{i:0;s:10:"Vietnamese";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"vo";a:3:{i:0;s:8:"Volapük";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"wa";a:3:{i:0;s:7:"Walloon";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"cy";a:3:{i:0;s:5:"Welsh";i:1;s:56:"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n==3 ? 3 : n==6 ? 4 : 5";i:2;a:6:{i:0;s:4:"zero";i:1;s:3:"one";i:2;s:3:"two";i:3;s:3:"few";i:4;s:4:"many";i:5;s:5:"other";}}s:2:"fy";a:3:{i:0;s:15:"Western Frisian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"wo";a:3:{i:0;s:5:"Wolof";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"xh";a:3:{i:0;s:5:"Xhosa";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"yi";a:3:{i:0;s:7:"Yiddish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"yo";a:3:{i:0;s:6:"Yoruba";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"za";a:3:{i:0;s:14:"Zhuang; Chuang";i:1;s:0:"";i:2;a:0:{}}s:2:"zu";a:3:{i:0;s:4:"Zulu";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}}s:7:"regions";a:249:{s:2:"AF";s:11:"Afghanistan";s:2:"AX";s:14:"Åland Islands";s:2:"AL";s:7:"Albania";s:2:"DZ";s:7:"Algeria";s:2:"AS";s:14:"American Samoa";s:2:"AD";s:7:"Andorra";s:2:"AO";s:6:"Angola";s:2:"AI";s:8:"Anguilla";s:2:"AQ";s:10:"Antarctica";s:2:"AG";s:19:"Antigua and Barbuda";s:2:"AR";s:9:"Argentina";s:2:"AM";s:7:"Armenia";s:2:"AW";s:5:"Aruba";s:2:"AU";s:9:"Australia";s:2:"AT";s:7:"Austria";s:2:"AZ";s:10:"Azerbaijan";s:2:"BS";s:7:"Bahamas";s:2:"BH";s:7:"Bahrain";s:2:"BD";s:10:"Bangladesh";s:2:"BB";s:8:"Barbados";s:2:"BY";s:7:"Belarus";s:2:"BE";s:7:"Belgium";s:2:"BZ";s:6:"Belize";s:2:"BJ";s:5:"Benin";s:2:"BM";s:7:"Bermuda";s:2:"BT";s:6:"Bhutan";s:2:"BO";s:31:"Bolivia, Plurinational State of";s:2:"BQ";s:32:"Bonaire, Sint Eustatius and Saba";s:2:"BA";s:22:"Bosnia and Herzegovina";s:2:"BW";s:8:"Botswana";s:2:"BV";s:13:"Bouvet Island";s:2:"BR";s:6:"Brazil";s:2:"IO";s:30:"British Indian Ocean Territory";s:2:"BN";s:17:"Brunei Darussalam";s:2:"BG";s:8:"Bulgaria";s:2:"BF";s:12:"Burkina Faso";s:2:"BI";s:7:"Burundi";s:2:"KH";s:8:"Cambodia";s:2:"CM";s:8:"Cameroon";s:2:"CA";s:6:"Canada";s:2:"CV";s:10:"Cape Verde";s:2:"KY";s:14:"Cayman Islands";s:2:"CF";s:24:"Central African Republic";s:2:"TD";s:4:"Chad";s:2:"CL";s:5:"Chile";s:2:"CN";s:5:"China";s:2:"CX";s:16:"Christmas Island";s:2:"CC";s:23:"Cocos (Keeling) Islands";s:2:"CO";s:8:"Colombia";s:2:"KM";s:7:"Comoros";s:2:"CG";s:5:"Congo";s:2:"CD";s:37:"Congo, The Democratic Republic of The";s:2:"CK";s:12:"Cook Islands";s:2:"CR";s:10:"Costa Rica";s:2:"CI";s:14:"Côte D\'Ivoire";s:2:"HR";s:7:"Croatia";s:2:"CU";s:4:"Cuba";s:2:"CW";s:8:"Curaçao";s:2:"CY";s:6:"Cyprus";s:2:"CZ";s:14:"Czech Republic";s:2:"DK";s:7:"Denmark";s:2:"DJ";s:8:"Djibouti";s:2:"DM";s:8:"Dominica";s:2:"DO";s:18:"Dominican Republic";s:2:"EC";s:7:"Ecuador";s:2:"EG";s:5:"Egypt";s:2:"SV";s:11:"El Salvador";s:2:"GQ";s:17:"Equatorial Guinea";s:2:"ER";s:7:"Eritrea";s:2:"EE";s:7:"Estonia";s:2:"ET";s:8:"Ethiopia";s:2:"FK";s:27:"Falkland Islands (Malvinas)";s:2:"FO";s:13:"Faroe Islands";s:2:"FJ";s:4:"Fiji";s:2:"FI";s:7:"Finland";s:2:"FR";s:6:"France";s:2:"GF";s:13:"French Guiana";s:2:"PF";s:16:"French Polynesia";s:2:"TF";s:27:"French Southern Territories";s:2:"GA";s:5:"Gabon";s:2:"GM";s:6:"Gambia";s:2:"GE";s:7:"Georgia";s:2:"DE";s:7:"Germany";s:2:"GH";s:5:"Ghana";s:2:"GI";s:9:"Gibraltar";s:2:"GR";s:6:"Greece";s:2:"GL";s:9:"Greenland";s:2:"GD";s:7:"Grenada";s:2:"GP";s:10:"Guadeloupe";s:2:"GU";s:4:"Guam";s:2:"GT";s:9:"Guatemala";s:2:"GG";s:8:"Guernsey";s:2:"GN";s:6:"Guinea";s:2:"GW";s:13:"Guinea-Bissau";s:2:"GY";s:6:"Guyana";s:2:"HT";s:5:"Haiti";s:2:"HM";s:33:"Heard Island and Mcdonald Islands";s:2:"VA";s:29:"Holy See (Vatican City State)";s:2:"HN";s:8:"Honduras";s:2:"HK";s:9:"Hong Kong";s:2:"HU";s:7:"Hungary";s:2:"IS";s:7:"Iceland";s:2:"IN";s:5:"India";s:2:"ID";s:9:"Indonesia";s:2:"IR";s:25:"Iran, Islamic Republic of";s:2:"IQ";s:4:"Iraq";s:2:"IE";s:7:"Ireland";s:2:"IM";s:11:"Isle of Man";s:2:"IL";s:6:"Israel";s:2:"IT";s:5:"Italy";s:2:"JM";s:7:"Jamaica";s:2:"JP";s:5:"Japan";s:2:"JE";s:6:"Jersey";s:2:"JO";s:6:"Jordan";s:2:"KZ";s:10:"Kazakhstan";s:2:"KE";s:5:"Kenya";s:2:"KI";s:8:"Kiribati";s:2:"KP";s:38:"Korea, Democratic People\'s Republic of";s:2:"KR";s:18:"Korea, Republic of";s:2:"KW";s:6:"Kuwait";s:2:"KG";s:10:"Kyrgyzstan";s:2:"LA";s:32:"Lao People\'s Democratic Republic";s:2:"LV";s:6:"Latvia";s:2:"LB";s:7:"Lebanon";s:2:"LS";s:7:"Lesotho";s:2:"LR";s:7:"Liberia";s:2:"LY";s:5:"Libya";s:2:"LI";s:13:"Liechtenstein";s:2:"LT";s:9:"Lithuania";s:2:"LU";s:10:"Luxembourg";s:2:"MO";s:5:"Macao";s:2:"MK";s:42:"Macedonia, The Former Yugoslav Republic of";s:2:"MG";s:10:"Madagascar";s:2:"MW";s:6:"Malawi";s:2:"MY";s:8:"Malaysia";s:2:"MV";s:8:"Maldives";s:2:"ML";s:4:"Mali";s:2:"MT";s:5:"Malta";s:2:"MH";s:16:"Marshall Islands";s:2:"MQ";s:10:"Martinique";s:2:"MR";s:10:"Mauritania";s:2:"MU";s:9:"Mauritius";s:2:"YT";s:7:"Mayotte";s:2:"MX";s:6:"Mexico";s:2:"FM";s:31:"Micronesia, Federated States of";s:2:"MD";s:20:"Moldova, Republic of";s:2:"MC";s:6:"Monaco";s:2:"MN";s:8:"Mongolia";s:2:"ME";s:10:"Montenegro";s:2:"MS";s:10:"Montserrat";s:2:"MA";s:7:"Morocco";s:2:"MZ";s:10:"Mozambique";s:2:"MM";s:7:"Myanmar";s:2:"NA";s:7:"Namibia";s:2:"NR";s:5:"Nauru";s:2:"NP";s:5:"Nepal";s:2:"NL";s:11:"Netherlands";s:2:"NC";s:13:"New Caledonia";s:2:"NZ";s:11:"New Zealand";s:2:"NI";s:9:"Nicaragua";s:2:"NE";s:5:"Niger";s:2:"NG";s:7:"Nigeria";s:2:"NU";s:4:"Niue";s:2:"NF";s:14:"Norfolk Island";s:2:"MP";s:24:"Northern Mariana Islands";s:2:"NO";s:6:"Norway";s:2:"OM";s:4:"Oman";s:2:"PK";s:8:"Pakistan";s:2:"PW";s:5:"Palau";s:2:"PS";s:31:"Palestinian Territory, Occupied";s:2:"PA";s:6:"Panama";s:2:"PG";s:16:"Papua New Guinea";s:2:"PY";s:8:"Paraguay";s:2:"PE";s:4:"Peru";s:2:"PH";s:11:"Philippines";s:2:"PN";s:8:"Pitcairn";s:2:"PL";s:6:"Poland";s:2:"PT";s:8:"Portugal";s:2:"PR";s:11:"Puerto Rico";s:2:"QA";s:5:"Qatar";s:2:"RE";s:8:"Réunion";s:2:"RO";s:7:"Romania";s:2:"RU";s:18:"Russian Federation";s:2:"RW";s:6:"Rwanda";s:2:"BL";s:17:"Saint Barthélemy";s:2:"SH";s:44:"Saint Helena, Ascension and Tristan Da Cunha";s:2:"KN";s:21:"Saint Kitts and Nevis";s:2:"LC";s:11:"Saint Lucia";s:2:"MF";s:26:"Saint Martin (French Part)";s:2:"PM";s:25:"Saint Pierre and Miquelon";s:2:"VC";s:32:"Saint Vincent and The Grenadines";s:2:"WS";s:5:"Samoa";s:2:"SM";s:10:"San Marino";s:2:"ST";s:21:"Sao Tome and Principe";s:2:"SA";s:12:"Saudi Arabia";s:2:"SN";s:7:"Senegal";s:2:"RS";s:6:"Serbia";s:2:"SC";s:10:"Seychelles";s:2:"SL";s:12:"Sierra Leone";s:2:"SG";s:9:"Singapore";s:2:"SX";s:25:"Sint Maarten (Dutch Part)";s:2:"SK";s:8:"Slovakia";s:2:"SI";s:8:"Slovenia";s:2:"SB";s:15:"Solomon Islands";s:2:"SO";s:7:"Somalia";s:2:"ZA";s:12:"South Africa";s:2:"GS";s:44:"South Georgia and The South Sandwich Islands";s:2:"SS";s:11:"South Sudan";s:2:"ES";s:5:"Spain";s:2:"LK";s:9:"Sri Lanka";s:2:"SD";s:5:"Sudan";s:2:"SR";s:8:"Suriname";s:2:"SJ";s:22:"Svalbard and Jan Mayen";s:2:"SZ";s:9:"Swaziland";s:2:"SE";s:6:"Sweden";s:2:"CH";s:11:"Switzerland";s:2:"SY";s:20:"Syrian Arab Republic";s:2:"TW";s:25:"Taiwan, Province of China";s:2:"TJ";s:10:"Tajikistan";s:2:"TZ";s:28:"Tanzania, United Republic of";s:2:"TH";s:8:"Thailand";s:2:"TL";s:11:"Timor-Leste";s:2:"TG";s:4:"Togo";s:2:"TK";s:7:"Tokelau";s:2:"TO";s:5:"Tonga";s:2:"TT";s:19:"Trinidad and Tobago";s:2:"TN";s:7:"Tunisia";s:2:"TR";s:6:"Turkey";s:2:"TM";s:12:"Turkmenistan";s:2:"TC";s:24:"Turks and Caicos Islands";s:2:"TV";s:6:"Tuvalu";s:2:"UG";s:6:"Uganda";s:2:"UA";s:7:"Ukraine";s:2:"AE";s:20:"United Arab Emirates";s:2:"GB";s:14:"United Kingdom";s:2:"US";s:13:"United States";s:2:"UM";s:36:"United States Minor Outlying Islands";s:2:"UY";s:7:"Uruguay";s:2:"UZ";s:10:"Uzbekistan";s:2:"VU";s:7:"Vanuatu";s:2:"VE";s:33:"Venezuela, Bolivarian Republic of";s:2:"VN";s:8:"Viet Nam";s:2:"VG";s:23:"Virgin Islands, British";s:2:"VI";s:20:"Virgin Islands, U.S.";s:2:"WF";s:17:"Wallis and Futuna";s:2:"EH";s:14:"Western Sahara";s:2:"YE";s:5:"Yemen";s:2:"ZM";s:6:"Zambia";s:2:"ZW";s:8:"Zimbabwe";}}');
|
lib/build/shell-compiled.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Compiled source build from Loco core.
|
4 |
-
* Mon,
|
5 |
*/
|
6 |
function loco_compile_mo( $po ){ $descriptorspec = array( 0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'a'), ); $cmd = WHICH_MSGFMT.' -o - -'; $process = proc_open($cmd, $descriptorspec, $pipes ); if( ! $process ){ throw new Exception('Failed to open process to '.$cmd); } fwrite($pipes[0], $po); fclose($pipes[0]); $err = stream_get_contents($pipes[2]); fclose($pipes[2]); $mo = stream_get_contents($pipes[1]); fclose($pipes[1]); $e = proc_close($process); if( 0 !== $e ){ $err and trigger_error( $err, E_USER_WARNING ); throw new Exception( WHICH_MSGFMT.' exited with code '.sprintf('%d',$e).'; Got '.strlen($mo).' bytes from '.strlen($po).' bytes'); } if( ! $mo ){ throw new Exception('Empty file from '.WHICH_MSGFMT); } return $mo; } function loco_compile_mo_file( $pofile, $mofile = '' ){ $descriptorspec = array ( 0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'a'), ); if( ! $mofile ){ $mofile = $pofile.'.mo'; } $cmd = WHICH_MSGFMT.' -o '.escapeshellarg($mofile).' '.escapeshellarg($pofile); $process = proc_open($cmd, $descriptorspec, $pipes ); if( ! $process ){ throw new Exception('Failed to open process to '.$cmd); } $err = stream_get_contents($pipes[0]); fclose($pipes[0]); $e = proc_close($process); if( 0 !== $e ){ $err and trigger_error( $err, E_USER_WARNING ); throw new Exception('Gettext msgfmt exited with code '.sprintf('%d',$e).';'); } if( ! file_exists($mofile) ){ throw new Exception('Gettext msgfmt failed to create '.$mofile); } return $mofile; } function loco_find_executable( $name ){ $paths = array ( '/usr/local/', '/usr/', '/', '~/' ); $descriptorspec = array ( 0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'w'), ); foreach( array('bin/','sbin/') as $dir ){ foreach( $paths as $path ){ $bin = $path.$dir.$name; $cmd = '[ -x '.escapeshellarg($bin).' ]'; $process = proc_open( $cmd, $descriptorspec, $pipes ); if( ! $process ){ return ''; } $e = proc_close($process); if( 0 === $e ){ return $bin; } } } return ''; }
|
1 |
<?php
|
2 |
/**
|
3 |
* Compiled source build from Loco core.
|
4 |
+
* Mon, 09 Jun 2014 17:41:06 +0100
|
5 |
*/
|
6 |
function loco_compile_mo( $po ){ $descriptorspec = array( 0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'a'), ); $cmd = WHICH_MSGFMT.' -o - -'; $process = proc_open($cmd, $descriptorspec, $pipes ); if( ! $process ){ throw new Exception('Failed to open process to '.$cmd); } fwrite($pipes[0], $po); fclose($pipes[0]); $err = stream_get_contents($pipes[2]); fclose($pipes[2]); $mo = stream_get_contents($pipes[1]); fclose($pipes[1]); $e = proc_close($process); if( 0 !== $e ){ $err and trigger_error( $err, E_USER_WARNING ); throw new Exception( WHICH_MSGFMT.' exited with code '.sprintf('%d',$e).'; Got '.strlen($mo).' bytes from '.strlen($po).' bytes'); } if( ! $mo ){ throw new Exception('Empty file from '.WHICH_MSGFMT); } return $mo; } function loco_compile_mo_file( $pofile, $mofile = '' ){ $descriptorspec = array ( 0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'a'), ); if( ! $mofile ){ $mofile = $pofile.'.mo'; } $cmd = WHICH_MSGFMT.' -o '.escapeshellarg($mofile).' '.escapeshellarg($pofile); $process = proc_open($cmd, $descriptorspec, $pipes ); if( ! $process ){ throw new Exception('Failed to open process to '.$cmd); } $err = stream_get_contents($pipes[0]); fclose($pipes[0]); $e = proc_close($process); if( 0 !== $e ){ $err and trigger_error( $err, E_USER_WARNING ); throw new Exception('Gettext msgfmt exited with code '.sprintf('%d',$e).';'); } if( ! file_exists($mofile) ){ throw new Exception('Gettext msgfmt failed to create '.$mofile); } return $mofile; } function loco_find_executable( $name ){ $paths = array ( '/usr/local/', '/usr/', '/', '~/' ); $descriptorspec = array ( 0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'w'), ); foreach( array('bin/','sbin/') as $dir ){ foreach( $paths as $path ){ $bin = $path.$dir.$name; $cmd = '[ -x '.escapeshellarg($bin).' ]'; $process = proc_open( $cmd, $descriptorspec, $pipes ); if( ! $process ){ return ''; } $e = proc_close($process); if( 0 === $e ){ return $bin; } } } return ''; }
|
lib/build/test.php
DELETED
@@ -1,107 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Unit tests for compiled Loco utils.
|
4 |
-
* $ php -c /etc -f /path/to/phpunit.phar - --colors path/to/test.php
|
5 |
-
*/
|
6 |
-
require __DIR__.'/gettext-compiled.php';
|
7 |
-
require __DIR__.'/locales-compiled.php';
|
8 |
-
require __DIR__.'/shell-compiled.php';
|
9 |
-
require __DIR__.'/../loco-locales.php';
|
10 |
-
|
11 |
-
|
12 |
-
class LocoTest extends PHPUnit_Framework_TestCase {
|
13 |
-
|
14 |
-
/**
|
15 |
-
* Test PO parser.
|
16 |
-
*/
|
17 |
-
public function testParsePO(){
|
18 |
-
$popath = __DIR__.'/../../languages/loco-translate-de_DE.po';
|
19 |
-
$this->assertFileExists( $popath );
|
20 |
-
$posrc = file_get_contents($popath);
|
21 |
-
$po = loco_parse_po( $posrc );
|
22 |
-
// test header as guaranteed first string
|
23 |
-
$head = $po[0];
|
24 |
-
$this->assertEquals( '', $head['source'] );
|
25 |
-
$head = loco_parse_po_headers( $head['target'] );
|
26 |
-
/* @var $head LocoArray */
|
27 |
-
$this->assertEquals( 'Loco Translate', $head->__get('Project-Id-Version'), 'Failed to extract Project-Id-Version' );
|
28 |
-
$this->assertEquals( 'German', $head->language, 'Failed to extract Language header' );
|
29 |
-
return $po;
|
30 |
-
}
|
31 |
-
|
32 |
-
|
33 |
-
/**
|
34 |
-
* Test native MO writer
|
35 |
-
* @depends testParsePO
|
36 |
-
*/
|
37 |
-
public function testNativeMsgfmt( array $po ){
|
38 |
-
$bin = loco_msgfmt( $po );
|
39 |
-
$this->assertStringStartsWith( "\xDE\x12\x04\x95\0\0\0\0", $bin, 'Bad magic number encoding' );
|
40 |
-
$this->assertStringEndsWith( "\0", $bin, 'Bad mo file ending' );
|
41 |
-
}
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
/**
|
46 |
-
* Test shell msgfmt MO writer
|
47 |
-
*/
|
48 |
-
public function testShellMsgfmt(){
|
49 |
-
// test finding of executable
|
50 |
-
$cmd = loco_find_executable('msgfmt');
|
51 |
-
$this->assertStringEndsWith('/msgfmt', $cmd );
|
52 |
-
define( 'WHICH_MSGFMT', $cmd );
|
53 |
-
// test shell compile via temp file
|
54 |
-
$popath = realpath( __DIR__.'/../../languages/loco-translate-de_DE.po' );
|
55 |
-
$mopath = tempnam( sys_get_temp_dir(), 'loco-mo-' );
|
56 |
-
register_shutdown_function('unlink', $mopath );
|
57 |
-
$this->assertEquals( $mopath, loco_compile_mo_file( $popath, $mopath ), 'Failed to compile MO' );
|
58 |
-
$bin = file_get_contents( $mopath );
|
59 |
-
$this->assertStringEndsWith( "\0", $bin, 'Bad mo file ending' );
|
60 |
-
}
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
/**
|
65 |
-
* Test locale data
|
66 |
-
*/
|
67 |
-
public function testLocales(){
|
68 |
-
$locale = loco_locale_resolve( '--fr_FR' );
|
69 |
-
$this->assertEquals('French', $locale->get_name(), 'Failed to parse language code fr_FR' );
|
70 |
-
// object equality
|
71 |
-
$other = LocoLocale::init('fr','');
|
72 |
-
$this->assertTrue( $locale->equal_to($other), $locale.' is not the same locale as '.$other );
|
73 |
-
// plurals
|
74 |
-
$data = $locale->export();
|
75 |
-
$this->assertEquals( 2, (int) $data['nplurals'] );
|
76 |
-
// preg matching
|
77 |
-
$pattern = '/'.$locale->preg().'/';
|
78 |
-
$this->assertTrue( (bool) preg_match($pattern, '--fr_FR' ) );
|
79 |
-
}
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
/**
|
84 |
-
* Test plural forms
|
85 |
-
*/
|
86 |
-
public function testPluralForms(){
|
87 |
-
// English - two forms
|
88 |
-
$locale = LocoLocale::init('en','GB');
|
89 |
-
extract( $locale->export() );
|
90 |
-
$this->assertEquals( 2, $nplurals );
|
91 |
-
// Chinese - one form
|
92 |
-
$locale = LocoLocale::init('zh','TW');
|
93 |
-
extract( $locale->export() );
|
94 |
-
$this->assertEquals( 1, $nplurals );
|
95 |
-
// Polish - three forms
|
96 |
-
$locale = LocoLocale::init('pl','PL');
|
97 |
-
extract( $locale->export() );
|
98 |
-
$this->assertEquals( 3, $nplurals );
|
99 |
-
// Arabic - six forms
|
100 |
-
$locale = LocoLocale::init('ar','AE');
|
101 |
-
extract( $locale->export() );
|
102 |
-
$this->assertEquals( 6, $nplurals );
|
103 |
-
}
|
104 |
-
|
105 |
-
}
|
106 |
-
|
107 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/loco-admin.php
CHANGED
@@ -53,7 +53,7 @@ abstract class LocoAdmin {
|
|
53 |
current_user_can(Loco::CAPABILITY) or self::forbid();
|
54 |
// update applicaion settings if posted
|
55 |
if( isset($_POST['loco']) && is_array( $update = $_POST['loco'] ) ){
|
56 |
-
$update += array( 'gen_hash' => '0' );
|
57 |
$args = Loco::config( $update );
|
58 |
$args['success'] = Loco::__('Settings saved');
|
59 |
}
|
@@ -98,7 +98,6 @@ abstract class LocoAdmin {
|
|
98 |
// Establish best/intended location for new POT file
|
99 |
$dir = $package->lang_dir( $domain );
|
100 |
$pot_path = $dir.'/'.$domain.'.pot';
|
101 |
-
// extract from all PHP source files
|
102 |
$export = self::xgettext( $package, $dir );
|
103 |
self::render_poeditor( $package, $pot_path, $export );
|
104 |
break;
|
@@ -109,11 +108,12 @@ abstract class LocoAdmin {
|
|
109 |
//
|
110 |
if( isset($_GET['msginit']) ){
|
111 |
$domain = $_GET['msginit'];
|
|
|
112 |
// handle PO file creation if locale is set
|
113 |
if( isset($_GET['custom-locale']) ){
|
114 |
try {
|
115 |
$locale = $_GET['custom-locale'] or $locale = $_GET['common-locale'];
|
116 |
-
$po_path = self::msginit( $package, $domain, $locale, $export, $head );
|
117 |
if( $po_path ){
|
118 |
self::render_poeditor( $package, $po_path, $export, $head );
|
119 |
break;
|
@@ -124,15 +124,16 @@ abstract class LocoAdmin {
|
|
124 |
self::error( $Ex->getMessage() );
|
125 |
}
|
126 |
}
|
127 |
-
// else do a dry run to pre-empt failures
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
|
|
132 |
$title = Loco::__('New PO file');
|
133 |
-
$locales =
|
134 |
Loco::enqueue_scripts( 'build/admin-common', 'build/admin-poinit');
|
135 |
-
Loco::render('admin-poinit', compact('package','domain','title','locales') );
|
136 |
break;
|
137 |
}
|
138 |
|
@@ -176,22 +177,17 @@ abstract class LocoAdmin {
|
|
176 |
$package = LocoPackage::get( $plugin_file, 'plugin' ) and
|
177 |
$plugins[] = $package;
|
178 |
}
|
179 |
-
//
|
180 |
$core = array();
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
);
|
189 |
-
foreach( $cores as $domain => $name ){
|
190 |
-
if( $package = LocoPackage::get_core( $domain, $name ) ){
|
191 |
-
$core[] = self::init_package_args( $package, 'core' );
|
192 |
}
|
193 |
}
|
194 |
-
*/
|
195 |
// order most active packges first in each set
|
196 |
$args = array (
|
197 |
'themes' => LocoPackage::sort_modified( $themes ),
|
@@ -236,7 +232,7 @@ abstract class LocoAdmin {
|
|
236 |
* Initialize a new PO file from a locale code
|
237 |
* @return string path where PO file will be saved to
|
238 |
*/
|
239 |
-
private static function msginit( LocoPackage $package, $domain = '', $code, &$export, &$head ){
|
240 |
$head = null;
|
241 |
$export = array();
|
242 |
$locale = $code ? loco_locale_resolve($code) : null;
|
@@ -245,7 +241,7 @@ abstract class LocoAdmin {
|
|
245 |
}
|
246 |
|
247 |
// default PO file location
|
248 |
-
$po_path = $package->create_po_path( $locale, $domain );
|
249 |
$po_dir = dirname( $po_path );
|
250 |
$po_name = basename( $po_path );
|
251 |
|
@@ -254,9 +250,9 @@ abstract class LocoAdmin {
|
|
254 |
$pot = self::parse_po_with_headers( $pot_path, $head );
|
255 |
if( $pot && ! ( 1 === count($pot) && '' === $pot[0]['source'] ) ){
|
256 |
$export = $pot;
|
257 |
-
// override default PO location if POT location is writable
|
258 |
$pot_dir = dirname( $pot_path );
|
259 |
-
if
|
|
|
260 |
$po_dir = $pot_dir;
|
261 |
}
|
262 |
}
|
@@ -273,7 +269,7 @@ abstract class LocoAdmin {
|
|
273 |
// check for PO conflict as this is msginit, not a sync.
|
274 |
$po_path = $po_dir.'/'.$po_name;
|
275 |
if( file_exists($po_path) ){
|
276 |
-
throw new Exception( sprintf(Loco::__('PO file already exists with locale %s'), $
|
277 |
}
|
278 |
|
279 |
// return path, export and head set as references
|
@@ -634,14 +630,24 @@ abstract class LocoAdmin {
|
|
634 |
class_exists('LocoPHPExtractor') or loco_require('build/gettext-compiled');
|
635 |
$extractor = new LocoPHPExtractor;
|
636 |
$export = array();
|
637 |
-
|
638 |
-
|
639 |
-
foreach(
|
640 |
-
$
|
641 |
-
$
|
642 |
-
|
|
|
|
|
|
|
643 |
}
|
644 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
645 |
return $export;
|
646 |
}
|
647 |
|
@@ -723,9 +729,10 @@ abstract class LocoAdmin {
|
|
723 |
|
724 |
|
725 |
/**
|
726 |
-
* Resolve a PO file path or file name to TextDomain
|
727 |
-
*
|
728 |
-
* @
|
|
|
729 |
*/
|
730 |
public static function resolve_file_domain( $path ){
|
731 |
extract( pathinfo($path) );
|
@@ -736,7 +743,7 @@ abstract class LocoAdmin {
|
|
736 |
return $filename;
|
737 |
}
|
738 |
if( $domain = preg_replace('/[a-z]{2}(_[A-Z]{2})?$/', '', $filename ) ){
|
739 |
-
return
|
740 |
}
|
741 |
// empty domain means file name is probably just a locale
|
742 |
return '';
|
53 |
current_user_can(Loco::CAPABILITY) or self::forbid();
|
54 |
// update applicaion settings if posted
|
55 |
if( isset($_POST['loco']) && is_array( $update = $_POST['loco'] ) ){
|
56 |
+
$update += array( 'gen_hash' => '0', 'enable_core' => '0' );
|
57 |
$args = Loco::config( $update );
|
58 |
$args['success'] = Loco::__('Settings saved');
|
59 |
}
|
98 |
// Establish best/intended location for new POT file
|
99 |
$dir = $package->lang_dir( $domain );
|
100 |
$pot_path = $dir.'/'.$domain.'.pot';
|
|
|
101 |
$export = self::xgettext( $package, $dir );
|
102 |
self::render_poeditor( $package, $pot_path, $export );
|
103 |
break;
|
108 |
//
|
109 |
if( isset($_GET['msginit']) ){
|
110 |
$domain = $_GET['msginit'];
|
111 |
+
$force_global = isset($_GET['gforce']) ? (bool) $_GET['gforce'] : null;
|
112 |
// handle PO file creation if locale is set
|
113 |
if( isset($_GET['custom-locale']) ){
|
114 |
try {
|
115 |
$locale = $_GET['custom-locale'] or $locale = $_GET['common-locale'];
|
116 |
+
$po_path = self::msginit( $package, $domain, $locale, $export, $head, $force_global );
|
117 |
if( $po_path ){
|
118 |
self::render_poeditor( $package, $po_path, $export, $head );
|
119 |
break;
|
124 |
self::error( $Ex->getMessage() );
|
125 |
}
|
126 |
}
|
127 |
+
// else do a dry run to pre-empt failures and allow manual alteration of target path
|
128 |
+
$path = self::msginit( $package, $domain, 'en', $export, $head, $force_global );
|
129 |
+
// get alternative location options
|
130 |
+
$pdir = $package->lang_dir( $domain, true );
|
131 |
+
$gdir = $package->global_lang_dir();
|
132 |
+
// render msginit start screen
|
133 |
$title = Loco::__('New PO file');
|
134 |
+
$locales = LocoLocale::get_names();
|
135 |
Loco::enqueue_scripts( 'build/admin-common', 'build/admin-poinit');
|
136 |
+
Loco::render('admin-poinit', compact('package','domain','title','locales','path','pdir','gdir') );
|
137 |
break;
|
138 |
}
|
139 |
|
177 |
$package = LocoPackage::get( $plugin_file, 'plugin' ) and
|
178 |
$plugins[] = $package;
|
179 |
}
|
180 |
+
// @var array $core
|
181 |
$core = array();
|
182 |
+
$conf = Loco::config();
|
183 |
+
if( ! empty($conf['enable_core']) ){
|
184 |
+
foreach( LocoPackage::get_core_packages() as $package ){
|
185 |
+
// if package has no PO or POT we skip it because core packages have no source
|
186 |
+
if( $package->get_po() || $package->get_pot() ){
|
187 |
+
$core[] = $package;
|
188 |
+
}
|
|
|
|
|
|
|
|
|
189 |
}
|
190 |
}
|
|
|
191 |
// order most active packges first in each set
|
192 |
$args = array (
|
193 |
'themes' => LocoPackage::sort_modified( $themes ),
|
232 |
* Initialize a new PO file from a locale code
|
233 |
* @return string path where PO file will be saved to
|
234 |
*/
|
235 |
+
private static function msginit( LocoPackage $package, $domain = '', $code, &$export, &$head, $force_global = null ){
|
236 |
$head = null;
|
237 |
$export = array();
|
238 |
$locale = $code ? loco_locale_resolve($code) : null;
|
241 |
}
|
242 |
|
243 |
// default PO file location
|
244 |
+
$po_path = $package->create_po_path( $locale, $domain, $force_global );
|
245 |
$po_dir = dirname( $po_path );
|
246 |
$po_name = basename( $po_path );
|
247 |
|
250 |
$pot = self::parse_po_with_headers( $pot_path, $head );
|
251 |
if( $pot && ! ( 1 === count($pot) && '' === $pot[0]['source'] ) ){
|
252 |
$export = $pot;
|
|
|
253 |
$pot_dir = dirname( $pot_path );
|
254 |
+
// override default PO location if POT location is writable and getting best location
|
255 |
+
if( is_writable($pot_dir) && is_null($force_global) ){
|
256 |
$po_dir = $pot_dir;
|
257 |
}
|
258 |
}
|
269 |
// check for PO conflict as this is msginit, not a sync.
|
270 |
$po_path = $po_dir.'/'.$po_name;
|
271 |
if( file_exists($po_path) ){
|
272 |
+
throw new Exception( sprintf(Loco::__('PO file already exists with locale %s'), $locale->get_code() ) );
|
273 |
}
|
274 |
|
275 |
// return path, export and head set as references
|
630 |
class_exists('LocoPHPExtractor') or loco_require('build/gettext-compiled');
|
631 |
$extractor = new LocoPHPExtractor;
|
632 |
$export = array();
|
633 |
+
// extract from PHP sources, as long as source locations exist
|
634 |
+
if( $srcdirs = $package->get_source_dirs() ){
|
635 |
+
foreach( $srcdirs as $dir ){
|
636 |
+
$fileref = loco_relative_path( $relative_to, $dir );
|
637 |
+
foreach( self::find_php($dir) as $path ){
|
638 |
+
$source = file_get_contents($path) and
|
639 |
+
$tokens = token_get_all($source) and
|
640 |
+
$export = $extractor->extract( $tokens, str_replace( $dir, $fileref, $path ) );
|
641 |
+
}
|
642 |
}
|
643 |
}
|
644 |
+
// else use an existing PO file (should be used for core only)
|
645 |
+
else if( $po = $package->get_po() ){
|
646 |
+
foreach( $po as $code => $path ){
|
647 |
+
$export = self::parse_po( $path );
|
648 |
+
break;
|
649 |
+
}
|
650 |
+
}
|
651 |
return $export;
|
652 |
}
|
653 |
|
729 |
|
730 |
|
731 |
/**
|
732 |
+
* Resolve a PO file path or file name to TextDomain.
|
733 |
+
* Note that this does not parse the file to read any data, it just extracts from filename
|
734 |
+
* @param string e.g. "path/to/foo-fr_FR.po" or "foo.pot"
|
735 |
+
* @return string e.g. "foo"
|
736 |
*/
|
737 |
public static function resolve_file_domain( $path ){
|
738 |
extract( pathinfo($path) );
|
743 |
return $filename;
|
744 |
}
|
745 |
if( $domain = preg_replace('/[a-z]{2}(_[A-Z]{2})?$/', '', $filename ) ){
|
746 |
+
return trim( $domain, '-' );
|
747 |
}
|
748 |
// empty domain means file name is probably just a locale
|
749 |
return '';
|
lib/loco-boot.php
CHANGED
@@ -8,7 +8,7 @@ abstract class Loco {
|
|
8 |
/** plugin namespace */
|
9 |
const NS = 'loco-translate';
|
10 |
|
11 |
-
const VERSION = '1.4.
|
12 |
const CAPABILITY = 'manage_options';
|
13 |
|
14 |
/* current plugin locale */
|
@@ -294,6 +294,8 @@ abstract class Loco {
|
|
294 |
'gen_hash' => '0',
|
295 |
// number of backups to keep of PO and MO files
|
296 |
'num_backups' => '1',
|
|
|
|
|
297 |
);
|
298 |
foreach( $conf as $key => $val ){
|
299 |
$conf[$key] = get_option( Loco::NS.'-'.$key);
|
8 |
/** plugin namespace */
|
9 |
const NS = 'loco-translate';
|
10 |
|
11 |
+
const VERSION = '1.4.5';
|
12 |
const CAPABILITY = 'manage_options';
|
13 |
|
14 |
/* current plugin locale */
|
294 |
'gen_hash' => '0',
|
295 |
// number of backups to keep of PO and MO files
|
296 |
'num_backups' => '1',
|
297 |
+
// whether to enable core package translation
|
298 |
+
'enable_core' => '0',
|
299 |
);
|
300 |
foreach( $conf as $key => $val ){
|
301 |
$conf[$key] = get_option( Loco::NS.'-'.$key);
|
lib/loco-locales.php
CHANGED
@@ -32,20 +32,15 @@ final class LocoLocale {
|
|
32 |
private $lang;
|
33 |
private $region;
|
34 |
private $label;
|
|
|
35 |
private $nplurals = 2;
|
36 |
-
private $pluraleq = '
|
37 |
|
38 |
private function __construct( $lc, $cc ){
|
39 |
-
$lc and $this->lang = $lc;
|
40 |
-
$cc and $this->region = $cc;
|
41 |
}
|
42 |
|
43 |
-
private function __import( $lc, $cc, array $raw ){
|
44 |
-
$this->lang = $lc;
|
45 |
-
$this->region = $cc;
|
46 |
-
list( $this->label, $this->nplurals, $this->pluraleq ) = $raw;
|
47 |
-
}
|
48 |
-
|
49 |
public function export(){
|
50 |
return get_object_vars($this);
|
51 |
}
|
@@ -67,7 +62,7 @@ final class LocoLocale {
|
|
67 |
}
|
68 |
|
69 |
public function get_name(){
|
70 |
-
return
|
71 |
}
|
72 |
|
73 |
public function equal_to( LocoLocale $locale ){
|
@@ -79,33 +74,82 @@ final class LocoLocale {
|
|
79 |
$cc = preg_quote( $this->region, $delimiter );
|
80 |
return $lc.'(?:[\-_]'.$cc.')?';
|
81 |
}
|
82 |
-
|
83 |
-
|
|
|
84 |
/**
|
85 |
* @return LocoLocale
|
86 |
*/
|
87 |
public static function init( $lc, $cc ){
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
|
|
92 |
$locale = new LocoLocale( $lc, $cc );
|
|
|
93 |
if( isset($locales[$lc]) ){
|
94 |
if( ! $cc ){
|
95 |
$cc = key( $locales[$lc] );
|
|
|
96 |
}
|
97 |
if( isset($locales[$lc][$cc]) ){
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
}
|
|
|
105 |
}
|
106 |
return $locale;
|
107 |
}
|
108 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
}
|
110 |
|
111 |
|
32 |
private $lang;
|
33 |
private $region;
|
34 |
private $label;
|
35 |
+
private $plurals = array('one','other');
|
36 |
private $nplurals = 2;
|
37 |
+
private $pluraleq = 'n != 1';
|
38 |
|
39 |
private function __construct( $lc, $cc ){
|
40 |
+
$lc and $this->lang = strtolower($lc);
|
41 |
+
$cc and $this->region = strtoupper($cc);
|
42 |
}
|
43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
public function export(){
|
45 |
return get_object_vars($this);
|
46 |
}
|
62 |
}
|
63 |
|
64 |
public function get_name(){
|
65 |
+
return empty($this->label) ? Loco::__('Unknown language') : $this->label;
|
66 |
}
|
67 |
|
68 |
public function equal_to( LocoLocale $locale ){
|
74 |
$cc = preg_quote( $this->region, $delimiter );
|
75 |
return $lc.'(?:[\-_]'.$cc.')?';
|
76 |
}
|
77 |
+
|
78 |
+
|
79 |
+
|
80 |
/**
|
81 |
* @return LocoLocale
|
82 |
*/
|
83 |
public static function init( $lc, $cc ){
|
84 |
+
extract( self::data() );
|
85 |
+
if( ! $cc ){
|
86 |
+
$cc = loco_language_country($lc);
|
87 |
+
}
|
88 |
+
$label = '';
|
89 |
$locale = new LocoLocale( $lc, $cc );
|
90 |
+
// attempt to use a common locale combination
|
91 |
if( isset($locales[$lc]) ){
|
92 |
if( ! $cc ){
|
93 |
$cc = key( $locales[$lc] );
|
94 |
+
$locale->region = $cc;
|
95 |
}
|
96 |
if( isset($locales[$lc][$cc]) ){
|
97 |
+
$locale->label = $locales[$lc][$cc];
|
98 |
+
}
|
99 |
+
}
|
100 |
+
// get plural rules from iso 639 language and set label if common locale wasn't known
|
101 |
+
if( isset($langs[$lc]) ){
|
102 |
+
list( $label, $pluraleq, $plurals ) = $langs[$lc];
|
103 |
+
$locale->pluraleq = $pluraleq;
|
104 |
+
$locale->plurals = $plurals;
|
105 |
+
$locale->nplurals = count( $plurals );
|
106 |
+
}
|
107 |
+
// get country just for label if not already applied from common locale combo
|
108 |
+
if( ! $locale->label ){
|
109 |
+
if( $cc ){
|
110 |
+
if( isset($regions[$cc]) ){
|
111 |
+
$label = $label ? $label.' ('.$regions[$cc].')' : $regions[$cc];
|
112 |
+
}
|
113 |
+
else {
|
114 |
+
$label = $label ? $label.' ('.$cc.')' : '';
|
115 |
+
}
|
116 |
}
|
117 |
+
$locale->label = $label;
|
118 |
}
|
119 |
return $locale;
|
120 |
}
|
121 |
|
122 |
+
|
123 |
+
|
124 |
+
/**
|
125 |
+
* @return array
|
126 |
+
*/
|
127 |
+
private static function data(){
|
128 |
+
static $data;
|
129 |
+
if( ! isset($data) ){
|
130 |
+
// this must be the first include of this file to ensure it returns
|
131 |
+
$data = loco_require('build/locales-compiled');
|
132 |
+
}
|
133 |
+
return $data;
|
134 |
+
}
|
135 |
+
|
136 |
+
|
137 |
+
|
138 |
+
/**
|
139 |
+
* Get names of all common locales indexed by xx_YY code
|
140 |
+
* @return array
|
141 |
+
*/
|
142 |
+
public static function get_names(){
|
143 |
+
$names = array();
|
144 |
+
$data = self::data();
|
145 |
+
foreach( $data['locales'] as $lc => $regions ){
|
146 |
+
foreach( $regions as $cc => $label ){
|
147 |
+
$names[$lc.'_'.$cc] = $label;
|
148 |
+
}
|
149 |
+
}
|
150 |
+
return $names;
|
151 |
+
}
|
152 |
+
|
153 |
}
|
154 |
|
155 |
|
lib/loco-packages.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Object representing a theme, plugin or domain within core code.
|
4 |
* Packages are identified uniquely by a type (e.g. "theme") and internal wordpress name, e.g. "loco-translate".
|
5 |
*/
|
6 |
-
class LocoPackage {
|
7 |
|
8 |
/**
|
9 |
* Internal identifier, could be name, or path, or anything in future
|
@@ -16,6 +16,12 @@ class LocoPackage {
|
|
16 |
* @var string
|
17 |
*/
|
18 |
private $domain;
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
/**
|
21 |
* Nice descriptive name, e.g. "Loco Translate"
|
@@ -70,29 +76,49 @@ class LocoPackage {
|
|
70 |
*/
|
71 |
private $_meta;
|
72 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
/**
|
74 |
* Construct package from name, root and domain
|
75 |
*/
|
76 |
-
protected function __construct( $name_or_path, $domain, $name ){
|
77 |
$this->handle = $name_or_path;
|
78 |
$this->domain = $domain;
|
79 |
$this->name = $name or $this->name = $domain;
|
|
|
|
|
|
|
80 |
}
|
81 |
|
82 |
/**
|
83 |
* Get default system languages directory
|
84 |
*/
|
85 |
-
|
86 |
return WP_LANG_DIR;
|
87 |
-
}
|
88 |
-
|
89 |
-
|
90 |
/**
|
91 |
-
*
|
92 |
-
*/
|
93 |
-
public function
|
94 |
-
return
|
95 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
|
97 |
/**
|
98 |
* Get identifying pair of arguments for fetching this object
|
@@ -252,11 +278,14 @@ class LocoPackage {
|
|
252 |
/**
|
253 |
* Get most likely intended language folder
|
254 |
*/
|
255 |
-
public function lang_dir( $domain = '' ){
|
256 |
$dirs = array();
|
257 |
// check location of POT in domain
|
258 |
foreach( $this->pot as $d => $path ){
|
259 |
if( ! $domain || $d === $domain ){
|
|
|
|
|
|
|
260 |
$path = dirname($path);
|
261 |
if( is_writable($path) ){
|
262 |
return $path;
|
@@ -268,6 +297,9 @@ class LocoPackage {
|
|
268 |
foreach( $this->po as $d => $paths ){
|
269 |
if( ! $domain || $d === $domain ){
|
270 |
foreach( $paths as $path ){
|
|
|
|
|
|
|
271 |
$path = dirname($path);
|
272 |
if( is_writable($path) ){
|
273 |
return $path;
|
@@ -278,7 +310,10 @@ class LocoPackage {
|
|
278 |
}
|
279 |
// check languages subfolder of all source file locations
|
280 |
foreach( $this->src as $path ){
|
281 |
-
$
|
|
|
|
|
|
|
282 |
if( is_writable($pref) ){
|
283 |
return $pref;
|
284 |
}
|
@@ -293,11 +328,13 @@ class LocoPackage {
|
|
293 |
}
|
294 |
}
|
295 |
// check global languages location
|
296 |
-
|
297 |
-
|
298 |
-
|
|
|
|
|
|
|
299 |
}
|
300 |
-
$dirs[] = $path;
|
301 |
// failed to get writable directory, so we'll just return the highest priority
|
302 |
return array_shift( $dirs );
|
303 |
}
|
@@ -306,21 +343,33 @@ class LocoPackage {
|
|
306 |
/**
|
307 |
* Build name of PO file for given or default domain
|
308 |
*/
|
309 |
-
public function create_po_path( LocoLocale $locale, $domain = '' ){
|
310 |
if( ! $domain ){
|
311 |
$domain = $this->get_domain();
|
312 |
}
|
313 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
314 |
$name = $locale->get_code().'.po';
|
315 |
// only prefix with text domain for plugins and files in global lang directory
|
316 |
-
if( 'plugin' === $this->get_type() ||
|
317 |
$prefix = $domain.'-';
|
318 |
}
|
319 |
else {
|
320 |
$prefix = '';
|
321 |
}
|
322 |
// if PO files exist, copy their naming format and use location if writable
|
323 |
-
if( ! empty($this->po[$domain]) ){
|
324 |
foreach( $this->po[$domain] as $code => $path ){
|
325 |
$info = pathinfo( $path );
|
326 |
$prefix = str_replace( $code.'.'.$info['extension'], '', $info['basename'] );
|
@@ -402,6 +451,13 @@ class LocoPackage {
|
|
402 |
*/
|
403 |
public function get_permission_errors(){
|
404 |
$dirs = array();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
405 |
$paths = array();
|
406 |
foreach( $this->pot as $path ){
|
407 |
$dirs[ dirname($path) ] = 1;
|
@@ -415,15 +471,9 @@ class LocoPackage {
|
|
415 |
$paths[$path] = file_exists($path) ? ( is_writeable($path) ? '' : Loco::__('MO file not writable') ) : Loco::__('MO file not found');
|
416 |
}
|
417 |
}
|
418 |
-
|
419 |
-
$base = $this->get_root();
|
420 |
-
$dirs[ $base ] = 1;
|
421 |
-
$dirs[ $base.'/languages' ] = 1;
|
422 |
-
}
|
423 |
-
$dirs[ $this->lang_dir() ] = 1;
|
424 |
-
$dirs[ $this->_lang_dir() ] = 1;
|
425 |
foreach( array_keys($dirs) as $dir ){
|
426 |
-
$paths[$dir] = is_writable($dir) ? '' : Loco::__('Folder not writable');
|
427 |
}
|
428 |
ksort( $paths );
|
429 |
return $paths;
|
@@ -527,6 +577,7 @@ class LocoPackage {
|
|
527 |
'stats' => loco_po_stats( $export ),
|
528 |
'length' => count( $export ),
|
529 |
'locale' => loco_locale_resolve($code),
|
|
|
530 |
);
|
531 |
}
|
532 |
catch( Exception $Ex ){
|
@@ -578,8 +629,9 @@ class LocoPackage {
|
|
578 |
$theme = wp_get_theme( $handle );
|
579 |
if( $theme && $theme->exists() ){
|
580 |
$name = $theme->get('Name');
|
581 |
-
$domain = $theme->get('TextDomain');
|
582 |
-
|
|
|
583 |
$root = $theme->get_theme_root().'/'.$handle;
|
584 |
$package->add_source( $root );
|
585 |
// add PO and POT under theme root
|
@@ -592,31 +644,11 @@ class LocoPackage {
|
|
592 |
}
|
593 |
// find additional theme PO under WP_LANG_DIR/themes unless a child theme
|
594 |
$package->add_lang_dir( WP_LANG_DIR.'/themes', $domain );
|
595 |
-
// child theme inherits parent
|
596 |
-
|
597 |
-
if( $parent
|
598 |
-
|
599 |
-
break;
|
600 |
}
|
601 |
-
$parent = LocoPackage::get( $parent, 'theme' );
|
602 |
-
if( ! $parent ){
|
603 |
-
// parent missing
|
604 |
-
break;
|
605 |
-
}
|
606 |
-
// indicate that theme is a child
|
607 |
-
$package->inherit( $parent );
|
608 |
-
if( $domain && $domain !== $parent->domain ){
|
609 |
-
// child specifies its own domain and will have to call load_child_theme_textdomain
|
610 |
-
}
|
611 |
-
else if( ! empty($package->po) || ! empty($package->pot) ){
|
612 |
-
// child has its own language files and domain will be picked up when get_domain called
|
613 |
-
$package->get_domain();
|
614 |
-
}
|
615 |
-
else {
|
616 |
-
// else should child inherit parent domain?
|
617 |
-
$package->domain = $parent->get_domain();
|
618 |
-
}
|
619 |
-
break;
|
620 |
}
|
621 |
return $package;
|
622 |
}
|
@@ -632,7 +664,7 @@ class LocoPackage {
|
|
632 |
if( isset($plugins[$handle]) && is_array($plugins[$handle]) ){
|
633 |
$plugin = $plugins[$handle];
|
634 |
$domain = $plugin['TextDomain'] or $domain = str_replace('/','-',dirname($handle));
|
635 |
-
$package = new LocoPluginPackage( $handle, $domain, $plugin['Name'] );
|
636 |
$root = WP_PLUGIN_DIR.'/'.dirname($handle);
|
637 |
$package->add_source( $root );
|
638 |
// add PO and POT under plugin root
|
@@ -648,24 +680,52 @@ class LocoPackage {
|
|
648 |
return $package;
|
649 |
}
|
650 |
}
|
651 |
-
|
652 |
-
|
653 |
/**
|
654 |
* construct a core package object from name
|
|
|
655 |
*/
|
656 |
private static function get_core( $handle ){
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
665 |
}
|
666 |
-
|
667 |
}
|
668 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
669 |
|
670 |
|
671 |
/**
|
@@ -730,11 +790,14 @@ class LocoPackage {
|
|
730 |
*/
|
731 |
class LocoThemePackage extends LocoPackage {
|
732 |
private $parent;
|
733 |
-
|
734 |
return WP_LANG_DIR.'/themes';
|
735 |
}
|
736 |
-
protected function inherit(
|
737 |
-
$
|
|
|
|
|
|
|
738 |
}
|
739 |
protected function is_child(){
|
740 |
return ! empty($this->parent);
|
@@ -755,6 +818,23 @@ class LocoThemePackage extends LocoPackage {
|
|
755 |
}
|
756 |
return $meta;
|
757 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
758 |
public function get_pot( $domain = '' ){
|
759 |
if( ( $parent = $this->get_parent() ) && ( $pot = $parent->get_pot($domain) ) ){
|
760 |
return $pot;
|
@@ -771,7 +851,7 @@ class LocoThemePackage extends LocoPackage {
|
|
771 |
* Extended package class for plugins
|
772 |
*/
|
773 |
class LocoPluginPackage extends LocoPackage {
|
774 |
-
|
775 |
return WP_LANG_DIR.'/plugins';
|
776 |
}
|
777 |
public function get_type(){
|
@@ -779,3 +859,14 @@ class LocoPluginPackage extends LocoPackage {
|
|
779 |
}
|
780 |
}
|
781 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
* Object representing a theme, plugin or domain within core code.
|
4 |
* Packages are identified uniquely by a type (e.g. "theme") and internal wordpress name, e.g. "loco-translate".
|
5 |
*/
|
6 |
+
abstract class LocoPackage {
|
7 |
|
8 |
/**
|
9 |
* Internal identifier, could be name, or path, or anything in future
|
16 |
* @var string
|
17 |
*/
|
18 |
private $domain;
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Default domain path relative to package root, e.g. "/languages"
|
22 |
+
* @var string
|
23 |
+
*/
|
24 |
+
protected $domainpath = '/languages';
|
25 |
|
26 |
/**
|
27 |
* Nice descriptive name, e.g. "Loco Translate"
|
76 |
*/
|
77 |
private $_meta;
|
78 |
|
79 |
+
/**
|
80 |
+
* Get package subclass type
|
81 |
+
* @return string theme, plugin or core
|
82 |
+
*/
|
83 |
+
abstract public function get_type();
|
84 |
+
|
85 |
+
|
86 |
/**
|
87 |
* Construct package from name, root and domain
|
88 |
*/
|
89 |
+
protected function __construct( $name_or_path, $domain, $name, $dpath = '' ){
|
90 |
$this->handle = $name_or_path;
|
91 |
$this->domain = $domain;
|
92 |
$this->name = $name or $this->name = $domain;
|
93 |
+
if( $dpath ){
|
94 |
+
$this->domainpath = '/'.trim($dpath,'/');
|
95 |
+
}
|
96 |
}
|
97 |
|
98 |
/**
|
99 |
* Get default system languages directory
|
100 |
*/
|
101 |
+
public function global_lang_dir(){
|
102 |
return WP_LANG_DIR;
|
103 |
+
}
|
104 |
+
|
105 |
+
|
106 |
/**
|
107 |
+
* Test if provided path is under global lang dir
|
108 |
+
*/
|
109 |
+
public function is_global_path($path){
|
110 |
+
return 0 === strpos( $path, $this->global_lang_dir() );
|
111 |
+
}
|
112 |
+
|
113 |
+
|
114 |
+
/**
|
115 |
+
* Test if package has a writable global lang dir
|
116 |
+
*/
|
117 |
+
public function is_global_writable(){
|
118 |
+
$dir = $this->global_lang_dir();
|
119 |
+
return $dir && is_dir($dir) && is_writable( $dir );
|
120 |
+
}
|
121 |
+
|
122 |
|
123 |
/**
|
124 |
* Get identifying pair of arguments for fetching this object
|
278 |
/**
|
279 |
* Get most likely intended language folder
|
280 |
*/
|
281 |
+
public function lang_dir( $domain = '', $skip_global = false ){
|
282 |
$dirs = array();
|
283 |
// check location of POT in domain
|
284 |
foreach( $this->pot as $d => $path ){
|
285 |
if( ! $domain || $d === $domain ){
|
286 |
+
if( $skip_global && $this->is_global_path($path) ){
|
287 |
+
continue;
|
288 |
+
}
|
289 |
$path = dirname($path);
|
290 |
if( is_writable($path) ){
|
291 |
return $path;
|
297 |
foreach( $this->po as $d => $paths ){
|
298 |
if( ! $domain || $d === $domain ){
|
299 |
foreach( $paths as $path ){
|
300 |
+
if( $skip_global && $this->is_global_path($path) ){
|
301 |
+
continue;
|
302 |
+
}
|
303 |
$path = dirname($path);
|
304 |
if( is_writable($path) ){
|
305 |
return $path;
|
310 |
}
|
311 |
// check languages subfolder of all source file locations
|
312 |
foreach( $this->src as $path ){
|
313 |
+
if( $skip_global && $this->is_global_path($path) ){
|
314 |
+
continue;
|
315 |
+
}
|
316 |
+
$pref = $path.$this->domainpath;
|
317 |
if( is_writable($pref) ){
|
318 |
return $pref;
|
319 |
}
|
328 |
}
|
329 |
}
|
330 |
// check global languages location
|
331 |
+
if( ! $skip_global ){
|
332 |
+
$path = $this->global_lang_dir();
|
333 |
+
if( is_writable($path) ){
|
334 |
+
return $path;
|
335 |
+
}
|
336 |
+
$dirs[] = $path;
|
337 |
}
|
|
|
338 |
// failed to get writable directory, so we'll just return the highest priority
|
339 |
return array_shift( $dirs );
|
340 |
}
|
343 |
/**
|
344 |
* Build name of PO file for given or default domain
|
345 |
*/
|
346 |
+
public function create_po_path( LocoLocale $locale, $domain = '', $force_global = null ){
|
347 |
if( ! $domain ){
|
348 |
$domain = $this->get_domain();
|
349 |
}
|
350 |
+
// get best directory
|
351 |
+
if( is_null($force_global) ){
|
352 |
+
$dir = $this->lang_dir( $domain );
|
353 |
+
$force_global = $this->is_global_path( $dir );
|
354 |
+
}
|
355 |
+
// else use global directory by force
|
356 |
+
else if( $force_global ){
|
357 |
+
$dir = $this->global_lang_dir();
|
358 |
+
}
|
359 |
+
// else use best, but skipping global directory
|
360 |
+
else {
|
361 |
+
$dir = $this->lang_dir( $domain, true );
|
362 |
+
}
|
363 |
$name = $locale->get_code().'.po';
|
364 |
// only prefix with text domain for plugins and files in global lang directory
|
365 |
+
if( 'plugin' === $this->get_type() || $force_global ){
|
366 |
$prefix = $domain.'-';
|
367 |
}
|
368 |
else {
|
369 |
$prefix = '';
|
370 |
}
|
371 |
// if PO files exist, copy their naming format and use location if writable
|
372 |
+
if( is_null($force_global) && ! empty($this->po[$domain]) ){
|
373 |
foreach( $this->po[$domain] as $code => $path ){
|
374 |
$info = pathinfo( $path );
|
375 |
$prefix = str_replace( $code.'.'.$info['extension'], '', $info['basename'] );
|
451 |
*/
|
452 |
public function get_permission_errors(){
|
453 |
$dirs = array();
|
454 |
+
// add common directories
|
455 |
+
$base = $this->get_root();
|
456 |
+
$dirs[ $base ] = 1;
|
457 |
+
$dirs[ $base.$this->domainpath ] = 1;
|
458 |
+
$dirs[ $this->lang_dir() ] = 1;
|
459 |
+
$dirs[ $this->global_lang_dir() ] = 1;
|
460 |
+
// add and check files, collecting additional directories along the way
|
461 |
$paths = array();
|
462 |
foreach( $this->pot as $path ){
|
463 |
$dirs[ dirname($path) ] = 1;
|
471 |
$paths[$path] = file_exists($path) ? ( is_writeable($path) ? '' : Loco::__('MO file not writable') ) : Loco::__('MO file not found');
|
472 |
}
|
473 |
}
|
474 |
+
// run directory checks and sort final list alphabetically
|
|
|
|
|
|
|
|
|
|
|
|
|
475 |
foreach( array_keys($dirs) as $dir ){
|
476 |
+
$paths[$dir] = is_writable($dir) ? '' : ( is_dir($dir) ? Loco::__('Folder not writable') : Loco::__('Folder not found') );
|
477 |
}
|
478 |
ksort( $paths );
|
479 |
return $paths;
|
577 |
'stats' => loco_po_stats( $export ),
|
578 |
'length' => count( $export ),
|
579 |
'locale' => loco_locale_resolve($code),
|
580 |
+
'projid' => trim( $headers->{'project-id-version'} ),
|
581 |
);
|
582 |
}
|
583 |
catch( Exception $Ex ){
|
629 |
$theme = wp_get_theme( $handle );
|
630 |
if( $theme && $theme->exists() ){
|
631 |
$name = $theme->get('Name');
|
632 |
+
$domain = $theme->get('TextDomain') or $domain = $handle;
|
633 |
+
// create theme package with text domain defaulting to template name
|
634 |
+
$package = new LocoThemePackage( $handle, $domain, $name, $theme->get('DomainPath') );
|
635 |
$root = $theme->get_theme_root().'/'.$handle;
|
636 |
$package->add_source( $root );
|
637 |
// add PO and POT under theme root
|
644 |
}
|
645 |
// find additional theme PO under WP_LANG_DIR/themes unless a child theme
|
646 |
$package->add_lang_dir( WP_LANG_DIR.'/themes', $domain );
|
647 |
+
// child theme inherits parent, but keeps its own domain
|
648 |
+
if( $parent = $theme->get_template() ){
|
649 |
+
if( $parent !== $handle ){
|
650 |
+
$package->inherit( $parent );
|
|
|
651 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
652 |
}
|
653 |
return $package;
|
654 |
}
|
664 |
if( isset($plugins[$handle]) && is_array($plugins[$handle]) ){
|
665 |
$plugin = $plugins[$handle];
|
666 |
$domain = $plugin['TextDomain'] or $domain = str_replace('/','-',dirname($handle));
|
667 |
+
$package = new LocoPluginPackage( $handle, $domain, $plugin['Name'], $plugin['DomainPath'] );
|
668 |
$root = WP_PLUGIN_DIR.'/'.dirname($handle);
|
669 |
$package->add_source( $root );
|
670 |
// add PO and POT under plugin root
|
680 |
return $package;
|
681 |
}
|
682 |
}
|
683 |
+
|
684 |
+
|
685 |
/**
|
686 |
* construct a core package object from name
|
687 |
+
* @return LocoPackage
|
688 |
*/
|
689 |
private static function get_core( $handle ){
|
690 |
+
static $grouped;
|
691 |
+
if( ! isset($grouped) ){
|
692 |
+
$grouped = array();
|
693 |
+
foreach( LocoAdmin::find_grouped( WP_LANG_DIR.'/*{.po,.pot}', GLOB_NOSORT|GLOB_BRACE ) as $ext => $files ){
|
694 |
+
foreach( $files as $path ){
|
695 |
+
$domain = LocoAdmin::resolve_file_domain( $path );
|
696 |
+
$grouped[ $domain ][ $ext ][] = $path;
|
697 |
+
}
|
698 |
+
}
|
699 |
+
}
|
700 |
+
$domain = $handle or $domain = 'default';
|
701 |
+
$package = new LocoCorePackage( $handle, $domain, '' );
|
702 |
+
if( isset($grouped[$handle]) ){
|
703 |
+
$package->add_po( $grouped[$handle], $domain );
|
704 |
+
// get name from po file
|
705 |
+
$meta = $package->meta();
|
706 |
+
foreach( $meta['po'] as $pmeta ){
|
707 |
+
if( $pmeta['projid'] ){
|
708 |
+
$package->name = $pmeta['projid'];
|
709 |
+
}
|
710 |
+
}
|
711 |
}
|
712 |
+
return $package;
|
713 |
}
|
714 |
+
|
715 |
+
|
716 |
+
|
717 |
+
/**
|
718 |
+
* Get all core pseudo packages
|
719 |
+
*/
|
720 |
+
public static function get_core_packages(){
|
721 |
+
static $names = array( '', 'admin', 'admin-network', 'continents-cities', 'ms' );
|
722 |
+
$packages = array();
|
723 |
+
foreach( $names as $handle ){
|
724 |
+
$packages[$handle] = self::get( $handle, 'core' );
|
725 |
+
}
|
726 |
+
return $packages;
|
727 |
+
}
|
728 |
+
|
729 |
|
730 |
|
731 |
/**
|
790 |
*/
|
791 |
class LocoThemePackage extends LocoPackage {
|
792 |
private $parent;
|
793 |
+
public function global_lang_dir(){
|
794 |
return WP_LANG_DIR.'/themes';
|
795 |
}
|
796 |
+
protected function inherit( $template ){
|
797 |
+
$parent = wp_get_theme( $template );
|
798 |
+
if( $parent && $parent->exists() ){
|
799 |
+
$this->parent = $template;
|
800 |
+
}
|
801 |
}
|
802 |
protected function is_child(){
|
803 |
return ! empty($this->parent);
|
818 |
}
|
819 |
return $meta;
|
820 |
}
|
821 |
+
public function check_permissions(){
|
822 |
+
parent::check_permissions();
|
823 |
+
if( $parent = $this->get_parent() ){
|
824 |
+
$parent->check_permissions();
|
825 |
+
}
|
826 |
+
}
|
827 |
+
public function get_permission_errors(){
|
828 |
+
$paths = parent::get_permission_errors();
|
829 |
+
// check parent theme if exists
|
830 |
+
if( $parent = $this->get_parent() ){
|
831 |
+
// recurse if child theme uses same domain as parent
|
832 |
+
if( $this->get_domain() === $parent->get_domain() ){
|
833 |
+
$paths += $parent->get_permission_errors( true );
|
834 |
+
}
|
835 |
+
}
|
836 |
+
return $paths;
|
837 |
+
}
|
838 |
public function get_pot( $domain = '' ){
|
839 |
if( ( $parent = $this->get_parent() ) && ( $pot = $parent->get_pot($domain) ) ){
|
840 |
return $pot;
|
851 |
* Extended package class for plugins
|
852 |
*/
|
853 |
class LocoPluginPackage extends LocoPackage {
|
854 |
+
public function global_lang_dir(){
|
855 |
return WP_LANG_DIR.'/plugins';
|
856 |
}
|
857 |
public function get_type(){
|
859 |
}
|
860 |
}
|
861 |
|
862 |
+
|
863 |
+
/**
|
864 |
+
* Extended package class for core pseudo packages
|
865 |
+
*/
|
866 |
+
class LocoCorePackage extends LocoPackage {
|
867 |
+
protected $domainpath = '';
|
868 |
+
public function get_type(){
|
869 |
+
return 'core';
|
870 |
+
}
|
871 |
+
}
|
872 |
+
|
lib/test/bootstrap.php
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Unit test bootstrapper.
|
4 |
+
* This is nothing close to an accurate simulation of Wordpress environment, it's just for testing utils.
|
5 |
+
* @usage phpunit --bootstrap bootstrap.php tests
|
6 |
+
*/
|
7 |
+
|
8 |
+
define('WP_CONTENT_DIR', realpath(__DIR__.'/../../../..') );
|
9 |
+
WP_CONTENT_DIR or die("Can't find WP_CONTENT_DIR\n");
|
10 |
+
|
11 |
+
define('WP_LANG_DIR', WP_CONTENT_DIR.'/languages' );
|
12 |
+
|
13 |
+
function is_admin(){
|
14 |
+
return false;
|
15 |
+
}
|
16 |
+
|
17 |
+
function esc_html( $text ){
|
18 |
+
return htmlspecialchars( $text, ENT_COMPAT, 'UTF-8' );
|
19 |
+
}
|
20 |
+
|
21 |
+
function add_action(){
|
22 |
+
// noop
|
23 |
+
}
|
24 |
+
|
25 |
+
function add_filter(){
|
26 |
+
// noop
|
27 |
+
}
|
28 |
+
|
29 |
+
function apply_filters( $hook, $value = null ){
|
30 |
+
return $value;
|
31 |
+
}
|
32 |
+
|
33 |
+
function get_locale(){
|
34 |
+
return 'en_US';
|
35 |
+
}
|
36 |
+
|
37 |
+
function __($t){
|
38 |
+
return $t;
|
39 |
+
}
|
40 |
+
|
41 |
+
define('WP_DEBUG', true );
|
42 |
+
|
43 |
+
require __DIR__.'/../../loco.php';
|
44 |
+
|
45 |
+
loco_require( 'loco-boot','loco-admin','loco-locales','loco-packages','build/gettext-compiled','build/shell-compiled' );
|
lib/test/tests/CorePackageTest.php
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @group package
|
4 |
+
* @group core
|
5 |
+
*/
|
6 |
+
class CorePackageTest extends PHPUnit_Framework_TestCase {
|
7 |
+
|
8 |
+
|
9 |
+
public function testGetCorePackage(){
|
10 |
+
$package = LocoPackage::get( 'continents-cities', 'core' );
|
11 |
+
$this->assertInstanceOf( 'LocoPackage', $package );
|
12 |
+
$this->assertEquals( 'core', $package->get_type() );
|
13 |
+
$this->assertEquals( 'Continents & Cities', $package->get_name() );
|
14 |
+
$this->assertEquals( 'continents-cities', $package->get_domain() );
|
15 |
+
$this->assertEmpty( $package->get_source_dirs() );
|
16 |
+
}
|
17 |
+
|
18 |
+
|
19 |
+
public function testGetCoreDefaultPackage(){
|
20 |
+
$package = LocoPackage::get( '', 'core' );
|
21 |
+
$this->assertEquals( 'core', $package->get_type() );
|
22 |
+
$this->assertEquals( 'Development', $package->get_name() );
|
23 |
+
$this->assertEquals( 'default', $package->get_domain() );
|
24 |
+
$this->assertEmpty( $package->get_source_dirs() );
|
25 |
+
}
|
26 |
+
|
27 |
+
|
28 |
+
|
29 |
+
public function testGetCorePackages(){
|
30 |
+
$packages = LocoPackage::get_core_packages();
|
31 |
+
$this->assertCount( 5, $packages );
|
32 |
+
$this->assertArrayHasKey( '', $packages );
|
33 |
+
$this->assertArrayHasKey( 'ms', $packages );
|
34 |
+
$this->assertArrayHasKey( 'admin', $packages );
|
35 |
+
$this->assertArrayHasKey( 'admin-network', $packages );
|
36 |
+
$this->assertArrayHasKey( 'continents-cities', $packages );
|
37 |
+
}
|
38 |
+
|
39 |
+
|
40 |
+
|
41 |
+
|
42 |
+
|
43 |
+
|
44 |
+
}
|
lib/test/tests/FindFilesTest.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Test admin class file finding utils.
|
4 |
+
* tests require that twentyfourteen theme is in the expected location
|
5 |
+
*
|
6 |
+
* @group files
|
7 |
+
*/
|
8 |
+
class FileFilesTest extends PHPUnit_Framework_TestCase {
|
9 |
+
|
10 |
+
|
11 |
+
|
12 |
+
public function testFindPo(){
|
13 |
+
$files = LocoAdmin::find_po( WP_LANG_DIR );
|
14 |
+
$this->assertInternalType('array', $files );
|
15 |
+
$this->assertArrayHasKey('po', $files );
|
16 |
+
$this->assertArrayHasKey('pot', $files );
|
17 |
+
}
|
18 |
+
|
19 |
+
|
20 |
+
public function testFindPot(){
|
21 |
+
$files = LocoAdmin::find_pot( WP_CONTENT_DIR.'/themes/twentyfourteen' );
|
22 |
+
$this->assertInternalType('array', $files );
|
23 |
+
$this->assertContains( WP_CONTENT_DIR.'/themes/twentyfourteen/languages/twentyfourteen.pot', $files );
|
24 |
+
}
|
25 |
+
|
26 |
+
|
27 |
+
public function testFindPhp(){
|
28 |
+
$files = LocoAdmin::find_php( WP_CONTENT_DIR.'/themes/twentyfourteen' );
|
29 |
+
$this->assertInternalType('array', $files );
|
30 |
+
$this->assertContains( WP_CONTENT_DIR.'/themes/twentyfourteen/functions.php', $files );
|
31 |
+
}
|
32 |
+
|
33 |
+
|
34 |
+
public function testFindGrouped(){
|
35 |
+
$pattern = WP_CONTENT_DIR.'/themes/twentyfourteen/languages/*{.po,.pot}';
|
36 |
+
$files = LocoAdmin::find_grouped( $pattern, GLOB_NOSORT|GLOB_BRACE );
|
37 |
+
$this->assertStringEndsWith('twentyfourteen.pot', $files['pot'][0] );
|
38 |
+
}
|
39 |
+
|
40 |
+
|
41 |
+
}
|
lib/test/tests/GettextTest.php
ADDED
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Test built gettext libs.
|
4 |
+
*
|
5 |
+
* @group gettext
|
6 |
+
* @group built
|
7 |
+
*/
|
8 |
+
class GettextTest extends PHPUnit_Framework_TestCase {
|
9 |
+
|
10 |
+
|
11 |
+
public function testParsePO(){
|
12 |
+
$popath = __DIR__.'/../../../languages/loco-translate-de_DE.po';
|
13 |
+
$this->assertFileExists( $popath );
|
14 |
+
$posrc = file_get_contents($popath);
|
15 |
+
$po = loco_parse_po( $posrc );
|
16 |
+
// test header as guaranteed first string
|
17 |
+
$head = $po[0];
|
18 |
+
$this->assertEquals( '', $head['source'] );
|
19 |
+
$head = loco_parse_po_headers( $head['target'] );
|
20 |
+
/* @var $head LocoArray */
|
21 |
+
$this->assertEquals( 'Loco Translate', $head->__get('Project-Id-Version'), 'Failed to extract Project-Id-Version' );
|
22 |
+
$this->assertEquals( 'German', $head->language, 'Failed to extract Language header' );
|
23 |
+
return $po;
|
24 |
+
}
|
25 |
+
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Test native MO writer
|
29 |
+
* @depends testParsePO
|
30 |
+
*/
|
31 |
+
public function testNativeMsgfmt( array $po ){
|
32 |
+
$bin = loco_msgfmt( $po );
|
33 |
+
$this->assertStringStartsWith( "\xDE\x12\x04\x95\0\0\0\0", $bin, 'Bad magic number encoding' );
|
34 |
+
$this->assertStringEndsWith( "\0", $bin, 'Bad mo file ending' );
|
35 |
+
}
|
36 |
+
|
37 |
+
|
38 |
+
|
39 |
+
/**
|
40 |
+
* Test shell msgfmt MO writer
|
41 |
+
*/
|
42 |
+
public function testShellMsgfmt(){
|
43 |
+
// test finding of executable
|
44 |
+
$cmd = loco_find_executable('msgfmt');
|
45 |
+
$this->assertStringEndsWith('/msgfmt', $cmd );
|
46 |
+
define( 'WHICH_MSGFMT', $cmd );
|
47 |
+
// test shell compile via temp file
|
48 |
+
$popath = realpath( __DIR__.'/../../../languages/loco-translate-de_DE.po' );
|
49 |
+
$mopath = tempnam( sys_get_temp_dir(), 'loco-mo-' );
|
50 |
+
register_shutdown_function('unlink', $mopath );
|
51 |
+
$this->assertEquals( $mopath, loco_compile_mo_file( $popath, $mopath ), 'Failed to compile MO' );
|
52 |
+
$bin = file_get_contents( $mopath );
|
53 |
+
$this->assertStringEndsWith( "\0", $bin, 'Bad mo file ending' );
|
54 |
+
}
|
55 |
+
|
56 |
+
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Test xgettext style tring extraction
|
60 |
+
*/
|
61 |
+
public function testLocoPHPExtractor(){
|
62 |
+
$source = file_get_contents( __DIR__.'/../../../pub/js/lang/dummy.php' );
|
63 |
+
$tokens = token_get_all($source);
|
64 |
+
$extractor = new LocoPHPExtractor;
|
65 |
+
$export = $extractor->extract( $tokens, 'test.php' );
|
66 |
+
// should have got 15 messages, 2 of which pluralized
|
67 |
+
$this->assertCount( 17, $export );
|
68 |
+
// check first message on line 8, "Unknown error"
|
69 |
+
$this->assertEquals( 'Unknown error', $export[0]['source'] );
|
70 |
+
// reference should be intact with line number
|
71 |
+
$this->assertContains('test.php:8', $export[0]['refs'] );
|
72 |
+
// first message should not have included the file header comment not intended to go with it
|
73 |
+
$this->assertEmpty( $export[0]['notes'], 'Comment block should not have been extracted' );
|
74 |
+
// third item should auto-detect its php-format flag
|
75 |
+
$this->assertEquals( 'php', $export[3]['format'] );
|
76 |
+
}
|
77 |
+
|
78 |
+
|
79 |
+
}
|
80 |
+
|
81 |
+
|
82 |
+
|
lib/test/tests/LocalesTest.php
ADDED
@@ -0,0 +1,133 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Test built locale libs.
|
4 |
+
*
|
5 |
+
* @group locales
|
6 |
+
* @group built
|
7 |
+
*/
|
8 |
+
class LocalesTest extends PHPUnit_Framework_TestCase {
|
9 |
+
|
10 |
+
|
11 |
+
public function testGetAllLocales(){
|
12 |
+
$map = LocoLocale::get_names();
|
13 |
+
$this->assertCount( 130, $map );
|
14 |
+
}
|
15 |
+
|
16 |
+
|
17 |
+
public function testKnownLocaleResolves(){
|
18 |
+
$locale = loco_locale_resolve('en_GB');
|
19 |
+
$this->assertInstanceOf('LocoLocale', $locale );
|
20 |
+
$this->assertEquals( 'English (UK)', $locale->get_name() );
|
21 |
+
$this->assertEquals( 'en_GB', $locale->get_code() );
|
22 |
+
// assert plurals
|
23 |
+
$data = $locale->export();
|
24 |
+
$this->assertEquals( 2, $data['nplurals'] );
|
25 |
+
}
|
26 |
+
|
27 |
+
|
28 |
+
public function testLanguageOnlyResolves(){
|
29 |
+
$locale = loco_locale_resolve('en_GB');
|
30 |
+
$this->assertEquals( 'English (UK)', $locale->get_name() );
|
31 |
+
$this->assertEquals( 'en_GB', $locale->get_code() );
|
32 |
+
}
|
33 |
+
|
34 |
+
|
35 |
+
public function testUnknownLocaleWithValidLanguageAndRegionAllowed(){
|
36 |
+
$locale = loco_locale_resolve('pl_CY');
|
37 |
+
$this->assertInstanceOf('LocoLocale', $locale );
|
38 |
+
$this->assertEquals( 'pl_CY', $locale->get_code() );
|
39 |
+
$this->assertEquals( 'Polish (Cyprus)', $locale->get_name() );
|
40 |
+
}
|
41 |
+
|
42 |
+
|
43 |
+
public function testUnkownRegionWithValidLanguageAllowed(){
|
44 |
+
$locale = loco_locale_resolve('en_FF');
|
45 |
+
$this->assertInstanceOf('LocoLocale', $locale );
|
46 |
+
$this->assertEquals( 'en_FF', $locale->get_code() );
|
47 |
+
$this->assertEquals( 'English (FF)', $locale->get_name() );
|
48 |
+
}
|
49 |
+
|
50 |
+
|
51 |
+
public function testUnknownLanguageWithValidRegionAllowed(){
|
52 |
+
$locale = loco_locale_resolve('zz_GB');
|
53 |
+
$this->assertInstanceOf('LocoLocale', $locale );
|
54 |
+
$this->assertEquals( 'zz_GB', $locale->get_code() );
|
55 |
+
$this->assertEquals( 'United Kingdom', $locale->get_name() );
|
56 |
+
}
|
57 |
+
|
58 |
+
|
59 |
+
public function testUnknownAndUnknownRegionAllowed(){
|
60 |
+
$locale = loco_locale_resolve('zz_ZZ');
|
61 |
+
$this->assertInstanceOf('LocoLocale', $locale );
|
62 |
+
$this->assertEquals( 'zz_ZZ', $locale->get_code() );
|
63 |
+
$this->assertEquals( 'Unknown language', $locale->get_name() );
|
64 |
+
}
|
65 |
+
|
66 |
+
|
67 |
+
|
68 |
+
public function testPrefixedLocaleResolve(){
|
69 |
+
$locale = loco_locale_resolve( '--en_GB' );
|
70 |
+
$this->assertInstanceOf('LocoLocale', $locale );
|
71 |
+
$this->assertEquals( 'English (UK)', $locale->get_name() );
|
72 |
+
$this->assertEquals( 'en_GB', $locale->get_code() );
|
73 |
+
return $locale;
|
74 |
+
}
|
75 |
+
|
76 |
+
|
77 |
+
public function testLocaleEquality(){
|
78 |
+
$locale = LocoLocale::init('en','GB');
|
79 |
+
$other = LocoLocale::init('en','');
|
80 |
+
$this->assertTrue( $locale->equal_to($other), $locale.' is not the same locale as '.$other );
|
81 |
+
}
|
82 |
+
|
83 |
+
|
84 |
+
public function testLocaleGrep(){
|
85 |
+
$locale = LocoLocale::init('en','GB');
|
86 |
+
$pattern = '/'.$locale->preg().'/';
|
87 |
+
$this->assertTrue( (bool) preg_match($pattern, '--en_GB' ) );
|
88 |
+
}
|
89 |
+
|
90 |
+
|
91 |
+
public function testPluralFormCounts(){
|
92 |
+
// English - two forms
|
93 |
+
$locale = LocoLocale::init('en','GB');
|
94 |
+
extract( $locale->export() );
|
95 |
+
$this->assertEquals( 2, $nplurals );
|
96 |
+
// Chinese - one form
|
97 |
+
$locale = LocoLocale::init('zh','TW');
|
98 |
+
extract( $locale->export() );
|
99 |
+
$this->assertEquals( 1, $nplurals );
|
100 |
+
// Polish - three forms
|
101 |
+
$locale = LocoLocale::init('pl','PL');
|
102 |
+
extract( $locale->export() );
|
103 |
+
$this->assertEquals( 3, $nplurals );
|
104 |
+
// Arabic - six forms
|
105 |
+
$locale = LocoLocale::init('ar','AE');
|
106 |
+
extract( $locale->export() );
|
107 |
+
$this->assertEquals( 6, $nplurals );
|
108 |
+
}
|
109 |
+
|
110 |
+
|
111 |
+
public function testPluralFormArrays(){
|
112 |
+
// English - two forms
|
113 |
+
$locale = LocoLocale::init('en','GB');
|
114 |
+
extract( $locale->export() );
|
115 |
+
$this->assertCount( 2, $plurals );
|
116 |
+
// Chinese - one form
|
117 |
+
$locale = LocoLocale::init('zh','TW');
|
118 |
+
extract( $locale->export() );
|
119 |
+
$this->assertCount( 1, $plurals );
|
120 |
+
// Polish - three forms
|
121 |
+
$locale = LocoLocale::init('pl','PL');
|
122 |
+
extract( $locale->export() );
|
123 |
+
$this->assertCount( 3, $plurals );
|
124 |
+
// Arabic - six forms
|
125 |
+
$locale = LocoLocale::init('ar','AE');
|
126 |
+
extract( $locale->export() );
|
127 |
+
$this->assertCount( 6, $plurals );
|
128 |
+
}
|
129 |
+
|
130 |
+
|
131 |
+
|
132 |
+
|
133 |
+
}
|
lib/test/tests/UtilsTest.php
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Test misc utils
|
4 |
+
*
|
5 |
+
* @group utils
|
6 |
+
*/
|
7 |
+
class UtilsTest extends PHPUnit_Framework_TestCase {
|
8 |
+
|
9 |
+
|
10 |
+
public function test_resolve_file_domain(){
|
11 |
+
$domain = LocoAdmin::resolve_file_domain( '/foo.pot' );
|
12 |
+
$this->assertEquals( 'foo', $domain );
|
13 |
+
|
14 |
+
$domain = LocoAdmin::resolve_file_domain( '/foo-en_GB.po' );
|
15 |
+
$this->assertEquals( 'foo', $domain );
|
16 |
+
|
17 |
+
$domain = LocoAdmin::resolve_file_domain( '/foo-en.po' );
|
18 |
+
$this->assertEquals( 'foo', $domain );
|
19 |
+
}
|
20 |
+
|
21 |
+
|
22 |
+
public function test_resolve_file_locale(){
|
23 |
+
$locale = LocoAdmin::resolve_file_locale('/foo-en.po');
|
24 |
+
$this->assertEquals( 'en_GB', $locale->get_code() );
|
25 |
+
|
26 |
+
$locale = LocoAdmin::resolve_file_locale('/foo-ja.po');
|
27 |
+
$this->assertEquals( 'ja_JP', $locale->get_code() );
|
28 |
+
}
|
29 |
+
|
30 |
+
|
31 |
+
}
|
loco.php
CHANGED
@@ -4,8 +4,10 @@ Plugin Name: Loco Translate
|
|
4 |
Plugin URI: http://wordpress.org/extend/plugins/loco-translate
|
5 |
Description: Translate Wordpress plugins and themes directly in your browser
|
6 |
Author: Tim Whitlock
|
7 |
-
Version: 1.4.
|
8 |
Author URI: http://localise.biz/help/wordpress/translate-plugin
|
|
|
|
|
9 |
*/
|
10 |
|
11 |
|
4 |
Plugin URI: http://wordpress.org/extend/plugins/loco-translate
|
5 |
Description: Translate Wordpress plugins and themes directly in your browser
|
6 |
Author: Tim Whitlock
|
7 |
+
Version: 1.4.5
|
8 |
Author URI: http://localise.biz/help/wordpress/translate-plugin
|
9 |
+
Text Domain: loco-translate
|
10 |
+
Domain Path: /languages/
|
11 |
*/
|
12 |
|
13 |
|
php/loco-posync.php
CHANGED
@@ -43,6 +43,10 @@
|
|
43 |
}
|
44 |
|
45 |
// Extract from sources by default
|
|
|
|
|
|
|
|
|
46 |
$relative_to = dirname($path);
|
47 |
//$relative_to = $pot_path ? dirname($pot_path) : $package->get_root();
|
48 |
if( $exp = LocoAdmin::xgettext( $package, $relative_to ) ){
|
43 |
}
|
44 |
|
45 |
// Extract from sources by default
|
46 |
+
if( ! $package->get_source_dirs() ){
|
47 |
+
throw new Exception( Loco::__('No source files in this package, nothing to sync') );
|
48 |
+
}
|
49 |
+
|
50 |
$relative_to = dirname($path);
|
51 |
//$relative_to = $pot_path ? dirname($pot_path) : $package->get_root();
|
52 |
if( $exp = LocoAdmin::xgettext( $package, $relative_to ) ){
|
pub/css/loco-admin.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.wrap a.nav-tab-active{cursor:text}.wrap #loco-poedit .wg-cell,.wrap #loco-poedit .wg-cell div{position:relative;box-sizing:border-box;-moz-box-sizing:border-box}.wrap #loco-poedit .wg-cell{left:0;top:0;padding:0;margin:0;overflow:hidden}.wrap #loco-poedit .wg-split{background:#eee}.wrap #loco-poedit .wg-body:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.wrap #loco-poedit .wg-split-x>div>.not-first>*{margin-left:6px}.wrap #loco-poedit .wg-split-y>div>.not-first>*{margin-top:6px}.wrap #loco-poedit .wg-split>div>.has-title .wg-content{margin-top:0}.wrap #loco-poedit .wg-split-x>div>.wg-cell{float:left;clear:none;height:100%}.wrap #loco-poedit .wg-split-x>div{cursor:move;cursor:ew-resize;cursor:col-resize}.wrap #loco-poedit .wg-split>div>.not-first:before{display:block;position:absolute;overflow:hidden;content:" "}.wrap #loco-poedit .wg-split-x>div>.not-first:before{width:6px;height:100%;background:transparent url(../img/wg/splitx.png) center center no-repeat}.wrap #loco-poedit .wg-split-y>div{cursor:move;cursor:ns-resize;cursor:row-resize}.wrap #loco-poedit .wg-split-y>div>.not-first:before{height:6px;width:100%;background:transparent url(../img/wg/splity.png) center center no-repeat}.wrap #loco-poedit .wg-split>div.locked{cursor:default}.wrap #loco-poedit .wg-split-x>div.locked>.not-first>*{margin-left:1px}.wrap #loco-poedit .wg-split-y>div.locked>.not-first>*{margin-top:1px}.wrap #loco-poedit .wg-split>div.locked>.not-first:before{display:none}.wrap #loco-poedit .wg-title{background:#ddd;cursor:default !important;margin:0;padding:4px 6px;font-size:1em;white-space:nowrap}.wrap #loco-poedit .wg-content{background:#fff;cursor:default;padding:4px 6px;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;-moz-box-sizing:border-box}.wrap #loco-poedit .is-table .wg-cols{outline:none}.wrap #loco-poedit .is-table .wg-col{float:left;clear:none}.wrap #loco-poedit .is-table .wg-title{padding:3px 10px;margin:0 !important;font-weight:normal}.wrap #loco-poedit .is-table .wg-thead>div>.not-first:before{background-position:center 1px}.wrap #loco-poedit .is-table .wg-thead{background:#ddd;border-bottom:solid 1px #ccc}.wrap #loco-poedit .is-table .wg-tr{height:1.6em;overflow:hidden}.wrap #loco-poedit .is-table .wg-tr:nth-child(even){background-color:#f3f7fd}.wrap #loco-poedit .is-table .wg-tr.selected{background-color:#3875d7;color:#fff}.wrap #loco-poedit .is-table .wg-td{white-space:nowrap;line-height:1.2em;margin:0.3em 4px;-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden}.wrap #loco-poedit .is-table .wg-tbody .not-first .wg-td{margin-left:10px}.wrap #loco-poedit .is-table .wg-cols.filtered .wg-tr{display:none}.wrap #loco-poedit .is-table .wg-cols.filtered .wg-tr.filtered{display:block}.wrap #loco-poedit .is-field>.wg-content{cursor:text;outline:none;white-space:pre-wrap}.wrap #loco-poedit .is-field>.wg-content:focus{-moz-box-shadow:inset 0 0 10px #3875d7;-webkit-box-shadow:inset 0 0 10px #3875d7;box-shadow:inset 0 0 10px #3875d7}.wrap #loco-poedit .is-field.readonly>.wg-content{cursor:default;background:#f8f8f8;text-shadow:0 1px #fff}.wrap #loco-poedit .is-field.readonly>.wg-content:focus{-moz-box-shadow:inset 0 0 10px #cc0000;-webkit-box-shadow:inset 0 0 10px #cc0000;box-shadow:inset 0 0 10px #cc0000}.wrap #loco-poedit .wg-split-x>nav.wg-tabs{white-space:nowrap;text-align:center}.wrap #loco-poedit .wg-split-x>nav.wg-tabs>a{display:inline-block;padding:0.5em 1em;color:#000;text-decoration:none;-moz-border-radius:0.2em;-webkit-border-radius:0.2em;border-radius:0.2em}.wrap #loco-poedit .wg-split-x>nav.wg-tabs>a:hover{background-color:#f3f7fd}.wrap #loco-poedit .wg-split-x>nav.wg-tabs>a.active{background-color:#3875d7;color:#fff}@media all and (max-width: 768px){.wrap #loco-poedit .wg-split-x>div>.not-first>*{margin-left:20px}.wrap #loco-poedit .wg-split-y>div>.not-first>*{margin-top:20px}.wrap #loco-poedit .wg-split-x>div>.not-first:before{width:20px}.wrap #loco-poedit .wg-split-y>div>.not-first:before{height:20px}}.wrap #loco-poedit .is-table .po-fuzzy{color:#b59829;font-weight:bold}.wrap #loco-poedit .is-table .po-empty{color:#1f507a;font-weight:bold}.wrap #loco-poedit .is-table .wg-col.first .wg-td:before{font-family:loco;vertical-align:middle;display:inline-block;content:" ";width:1.2em;line-height:1}.wrap #loco-poedit .is-table .po-incorrect,.wrap #loco-poedit .is-table .po-needs-review{color:#CC0000}.wrap #loco-poedit .is-table .wg-col.first .po-flagged .wg-td:before{content:"\e60e"}.wrap #loco-poedit .is-table .wg-col.first .po-comment .wg-td:before{content:"\e613";color:#999}.wrap #loco-poedit .is-table .wg-col.first .po-unsaved .wg-td:before{content:"\e612";color:#f1d040}.wrap #loco-poedit #po-list .wg-content{padding:0}.wrap #loco-poedit #po-source>.wg-body>.has-title>h2{background:transparent;font-weight:normal;float:left;clear:none;min-width:4em}.wrap #loco-poedit #po-source>.wg-body>.has-title>.wg-content{clear:none}.wrap #loco-poedit #po-source>.wg-body>.has-title>h2{min-width:4.5em}.wrap .flag{width:16px;height:11px;display:inline-block;background:url(../img/flags.tiny.png) no-repeat}.wrap .flag.flag-ad{background-position:-16px 0}.wrap .flag.flag-ae{background-position:-32px 0}.wrap .flag.flag-af{background-position:-48px 0}.wrap .flag.flag-ag{background-position:-64px 0}.wrap .flag.flag-ai{background-position:-80px 0}.wrap .flag.flag-al{background-position:-96px 0}.wrap .flag.flag-am{background-position:-112px 0}.wrap .flag.flag-an{background-position:-128px 0}.wrap .flag.flag-ao{background-position:-144px 0}.wrap .flag.flag-ar{background-position:-160px 0}.wrap .flag.flag-as{background-position:-176px 0}.wrap .flag.flag-at{background-position:-192px 0}.wrap .flag.flag-au{background-position:-208px 0}.wrap .flag.flag-aw{background-position:-224px 0}.wrap .flag.flag-az{background-position:-240px 0}.wrap .flag.flag-ba{background-position:0 -11px}.wrap .flag.flag-bb{background-position:-16px -11px}.wrap .flag.flag-bd{background-position:-32px -11px}.wrap .flag.flag-be{background-position:-48px -11px}.wrap .flag.flag-bf{background-position:-64px -11px}.wrap .flag.flag-bg{background-position:-80px -11px}.wrap .flag.flag-bh{background-position:-96px -11px}.wrap .flag.flag-bi{background-position:-112px -11px}.wrap .flag.flag-bj{background-position:-128px -11px}.wrap .flag.flag-bm{background-position:-144px -11px}.wrap .flag.flag-bn{background-position:-160px -11px}.wrap .flag.flag-bo{background-position:-176px -11px}.wrap .flag.flag-br{background-position:-192px -11px}.wrap .flag.flag-bs{background-position:-208px -11px}.wrap .flag.flag-bt{background-position:-224px -11px}.wrap .flag.flag-bw{background-position:-240px -11px}.wrap .flag.flag-by{background-position:0 -22px}.wrap .flag.flag-bz{background-position:-16px -22px}.wrap .flag.flag-ca{background-position:-32px -22px}.wrap .flag.flag-cd{background-position:-48px -22px}.wrap .flag.flag-cf{background-position:-64px -22px}.wrap .flag.flag-cg{background-position:-80px -22px}.wrap .flag.flag-ch{background-position:-96px -22px}.wrap .flag.flag-ci{background-position:-112px -22px}.wrap .flag.flag-ck{background-position:-128px -22px}.wrap .flag.flag-cl{background-position:-144px -22px}.wrap .flag.flag-cm{background-position:-160px -22px}.wrap .flag.flag-cn{background-position:-176px -22px}.wrap .flag.flag-co{background-position:-192px -22px}.wrap .flag.flag-cr{background-position:-208px -22px}.wrap .flag.flag-cu{background-position:-224px -22px}.wrap .flag.flag-cv{background-position:-240px -22px}.wrap .flag.flag-cw{background-position:0 -33px}.wrap .flag.flag-cy{background-position:-16px -33px}.wrap .flag.flag-cz{background-position:-32px -33px}.wrap .flag.flag-de{background-position:-48px -33px}.wrap .flag.flag-dj{background-position:-64px -33px}.wrap .flag.flag-dk{background-position:-80px -33px}.wrap .flag.flag-dm{background-position:-96px -33px}.wrap .flag.flag-do{background-position:-112px -33px}.wrap .flag.flag-dz{background-position:-128px -33px}.wrap .flag.flag-ec{background-position:-144px -33px}.wrap .flag.flag-ee{background-position:-160px -33px}.wrap .flag.flag-eg{background-position:-176px -33px}.wrap .flag.flag-eh{background-position:-192px -33px}.wrap .flag.flag-er{background-position:-208px -33px}.wrap .flag.flag-es{background-position:-224px -33px}.wrap .flag.flag-et{background-position:-240px -33px}.wrap .flag.flag-fi{background-position:0 -44px}.wrap .flag.flag-fj{background-position:-16px -44px}.wrap .flag.flag-fk{background-position:-32px -44px}.wrap .flag.flag-fm{background-position:-48px -44px}.wrap .flag.flag-fo{background-position:-64px -44px}.wrap .flag.flag-fr{background-position:-80px -44px}.wrap .flag.flag-ga{background-position:-96px -44px}.wrap .flag.flag-gb{background-position:-112px -44px}.wrap .flag.flag-gd{background-position:-128px -44px}.wrap .flag.flag-ge{background-position:-144px -44px}.wrap .flag.flag-gf{background-position:-160px -44px}.wrap .flag.flag-gh{background-position:-176px -44px}.wrap .flag.flag-gi{background-position:-192px -44px}.wrap .flag.flag-gl{background-position:-208px -44px}.wrap .flag.flag-gm{background-position:-224px -44px}.wrap .flag.flag-gn{background-position:-240px -44px}.wrap .flag.flag-gp{background-position:0 -55px}.wrap .flag.flag-gq{background-position:-16px -55px}.wrap .flag.flag-gr{background-position:-32px -55px}.wrap .flag.flag-gt{background-position:-48px -55px}.wrap .flag.flag-gu{background-position:-64px -55px}.wrap .flag.flag-gw{background-position:-80px -55px}.wrap .flag.flag-gy{background-position:-96px -55px}.wrap .flag.flag-hk{background-position:-112px -55px}.wrap .flag.flag-hn{background-position:-128px -55px}.wrap .flag.flag-hr{background-position:-144px -55px}.wrap .flag.flag-ht{background-position:-160px -55px}.wrap .flag.flag-hu{background-position:-176px -55px}.wrap .flag.flag-id{background-position:-192px -55px}.wrap .flag.flag-ie{background-position:-208px -55px}.wrap .flag.flag-il{background-position:-224px -55px}.wrap .flag.flag-in{background-position:-240px -55px}.wrap .flag.flag-iq{background-position:0 -66px}.wrap .flag.flag-ir{background-position:-16px -66px}.wrap .flag.flag-is{background-position:-32px -66px}.wrap .flag.flag-it{background-position:-48px -66px}.wrap .flag.flag-jm{background-position:-64px -66px}.wrap .flag.flag-jo{background-position:-80px -66px}.wrap .flag.flag-jp{background-position:-96px -66px}.wrap .flag.flag-ke{background-position:-112px -66px}.wrap .flag.flag-kg{background-position:-128px -66px}.wrap .flag.flag-kh{background-position:-144px -66px}.wrap .flag.flag-ki{background-position:-160px -66px}.wrap .flag.flag-km{background-position:-176px -66px}.wrap .flag.flag-kn{background-position:-192px -66px}.wrap .flag.flag-kp{background-position:-208px -66px}.wrap .flag.flag-kr{background-position:-224px -66px}.wrap .flag.flag-kw{background-position:-240px -66px}.wrap .flag.flag-ky{background-position:0 -77px}.wrap .flag.flag-kz{background-position:-16px -77px}.wrap .flag.flag-la{background-position:-32px -77px}.wrap .flag.flag-lb{background-position:-48px -77px}.wrap .flag.flag-lc{background-position:-64px -77px}.wrap .flag.flag-li{background-position:-80px -77px}.wrap .flag.flag-lk{background-position:-96px -77px}.wrap .flag.flag-lr{background-position:-112px -77px}.wrap .flag.flag-ls{background-position:-128px -77px}.wrap .flag.flag-lt{background-position:-144px -77px}.wrap .flag.flag-lu{background-position:-160px -77px}.wrap .flag.flag-lv{background-position:-176px -77px}.wrap .flag.flag-ly{background-position:-192px -77px}.wrap .flag.flag-ma{background-position:-208px -77px}.wrap .flag.flag-mc{background-position:-224px -77px}.wrap .flag.flag-md{background-position:-240px -77px}.wrap .flag.flag-me{background-position:0 -88px}.wrap .flag.flag-mg{background-position:-16px -88px}.wrap .flag.flag-mh{background-position:-32px -88px}.wrap .flag.flag-mk{background-position:-48px -88px}.wrap .flag.flag-ml{background-position:-64px -88px}.wrap .flag.flag-mm{background-position:-80px -88px}.wrap .flag.flag-mn{background-position:-96px -88px}.wrap .flag.flag-mo{background-position:-112px -88px}.wrap .flag.flag-mp{background-position:-128px -88px}.wrap .flag.flag-mq{background-position:-144px -88px}.wrap .flag.flag-mr{background-position:-160px -88px}.wrap .flag.flag-ms{background-position:-176px -88px}.wrap .flag.flag-mt{background-position:-192px -88px}.wrap .flag.flag-mu{background-position:-208px -88px}.wrap .flag.flag-mv{background-position:-224px -88px}.wrap .flag.flag-mw{background-position:-240px -88px}.wrap .flag.flag-mx{background-position:0 -99px}.wrap .flag.flag-my{background-position:-16px -99px}.wrap .flag.flag-mz{background-position:-32px -99px}.wrap .flag.flag-na{background-position:-48px -99px}.wrap .flag.flag-nc{background-position:-64px -99px}.wrap .flag.flag-ne{background-position:-80px -99px}.wrap .flag.flag-nf{background-position:-96px -99px}.wrap .flag.flag-ng{background-position:-112px -99px}.wrap .flag.flag-ni{background-position:-128px -99px}.wrap .flag.flag-nl{background-position:-144px -99px}.wrap .flag.flag-no{background-position:-160px -99px}.wrap .flag.flag-np{background-position:-176px -99px}.wrap .flag.flag-nr{background-position:-192px -99px}.wrap .flag.flag-nu{background-position:-208px -99px}.wrap .flag.flag-nz{background-position:-224px -99px}.wrap .flag.flag-om{background-position:-240px -99px}.wrap .flag.flag-pa{background-position:0 -110px}.wrap .flag.flag-pe{background-position:-16px -110px}.wrap .flag.flag-pf{background-position:-32px -110px}.wrap .flag.flag-pg{background-position:-48px -110px}.wrap .flag.flag-ph{background-position:-64px -110px}.wrap .flag.flag-pk{background-position:-80px -110px}.wrap .flag.flag-pl{background-position:-96px -110px}.wrap .flag.flag-pm{background-position:-112px -110px}.wrap .flag.flag-pn{background-position:-128px -110px}.wrap .flag.flag-pr{background-position:-144px -110px}.wrap .flag.flag-ps{background-position:-160px -110px}.wrap .flag.flag-pt{background-position:-176px -110px}.wrap .flag.flag-pw{background-position:-192px -110px}.wrap .flag.flag-py{background-position:-208px -110px}.wrap .flag.flag-qa{background-position:-224px -110px}.wrap .flag.flag-re{background-position:-240px -110px}.wrap .flag.flag-ro{background-position:0 -121px}.wrap .flag.flag-rs{background-position:-16px -121px}.wrap .flag.flag-ru{background-position:-32px -121px}.wrap .flag.flag-rw{background-position:-48px -121px}.wrap .flag.flag-sa{background-position:-64px -121px}.wrap .flag.flag-sb{background-position:-80px -121px}.wrap .flag.flag-sc{background-position:-96px -121px}.wrap .flag.flag-sd{background-position:-112px -121px}.wrap .flag.flag-se{background-position:-128px -121px}.wrap .flag.flag-sg{background-position:-144px -121px}.wrap .flag.flag-sh{background-position:-160px -121px}.wrap .flag.flag-si{background-position:-176px -121px}.wrap .flag.flag-sk{background-position:-192px -121px}.wrap .flag.flag-sl{background-position:-208px -121px}.wrap .flag.flag-sm{background-position:-224px -121px}.wrap .flag.flag-sn{background-position:-240px -121px}.wrap .flag.flag-so{background-position:0 -132px}.wrap .flag.flag-sr{background-position:-16px -132px}.wrap .flag.flag-ss{background-position:-32px -132px}.wrap .flag.flag-st{background-position:-48px -132px}.wrap .flag.flag-sv{background-position:-64px -132px}.wrap .flag.flag-sy{background-position:-80px -132px}.wrap .flag.flag-sz{background-position:-96px -132px}.wrap .flag.flag-tc{background-position:-112px -132px}.wrap .flag.flag-td{background-position:-128px -132px}.wrap .flag.flag-tg{background-position:-144px -132px}.wrap .flag.flag-th{background-position:-160px -132px}.wrap .flag.flag-tj{background-position:-176px -132px}.wrap .flag.flag-tk{background-position:-192px -132px}.wrap .flag.flag-tl{background-position:-208px -132px}.wrap .flag.flag-tm{background-position:-224px -132px}.wrap .flag.flag-tn{background-position:-240px -132px}.wrap .flag.flag-to{background-position:0 -143px}.wrap .flag.flag-tr{background-position:-16px -143px}.wrap .flag.flag-tt{background-position:-32px -143px}.wrap .flag.flag-tv{background-position:-48px -143px}.wrap .flag.flag-tw{background-position:-64px -143px}.wrap .flag.flag-tz{background-position:-80px -143px}.wrap .flag.flag-ua{background-position:-96px -143px}.wrap .flag.flag-ug{background-position:-112px -143px}.wrap .flag.flag-us{background-position:-128px -143px}.wrap .flag.flag-uy{background-position:-144px -143px}.wrap .flag.flag-uz{background-position:-160px -143px}.wrap .flag.flag-va{background-position:-176px -143px}.wrap .flag.flag-vc{background-position:-192px -143px}.wrap .flag.flag-ve{background-position:-208px -143px}.wrap .flag.flag-vg{background-position:-224px -143px}.wrap .flag.flag-vi{background-position:-240px -143px}.wrap .flag.flag-vn{background-position:0 -154px}.wrap .flag.flag-vu{background-position:-16px -154px}.wrap .flag.flag-wf{background-position:-32px -154px}.wrap .flag.flag-ws{background-position:-48px -154px}.wrap .flag.flag-ye{background-position:-64px -154px}.wrap .flag.flag-yt{background-position:-80px -154px}.wrap .flag.flag-za{background-position:-96px -154px}.wrap .flag.flag-zm{background-position:-112px -154px}.wrap .flag.flag-zw{background-position:-128px -154px}.wrap .loco-add>*:before{content:"\e60c"}.wrap .loco-del>*:before{content:"\e60d"}.wrap .loco-save>*:before{content:"\e610"}.wrap .loco-sync>*:before{content:"\e633"}.wrap .loco-help>*:before{content:"\3f"}.wrap .loco-revert>*:before{content:"\e634"}.wrap .loco-fuzzy>*:before{content:"\e607"}.wrap .loco-download>*:before{content:"\e608"}.wrap .loco-ok>*:before{content:"\e618"}.wrap .loco-error>*:before,.wrap .loco-warning>*:before{content:"\e62e"}.wrap .loco-edit-pot>*:before{content:"\e61e"}@font-face{font-family:'loco';src:url("../font/loco.eot");src:url("../font/loco.eot?#iefix") format("embedded-opentype"),url("../font/loco.woff") format("woff"),url("../font/loco.ttf") format("truetype"),url("../font/loco.svg#loco") format("svg");font-weight:normal;font-style:normal}.wrap div{position:relative}h2 .nav-tab.nav-tab-loco{float:right;border-color:transparent;font-size:16px;color:#2e892e;background:transparent}h2 .nav-tab.nav-tab-loco:hover{color:#3db63d}.widefat thead tr th{width:25%}.wrap .loco-list{margin:10px 0}.wrap .loco-message p:before,.wrap .loco-list li>a:before,.wrap .loco-list li>span:before{padding-right:0.5em;font-family:loco;color:inherit}.wrap .loco-list li.loco-add a{color:#666666}.wrap .loco-list li.loco-add a:hover{color:#000}.wrap .loco-list li.loco-edit-po .flag{margin-right:6px}.wrap .loco-list li.loco-warning>*:before{color:#cc0000}.wrap .loco-list li.loco-ok>*:before{color:#006600}.wrap .loco-list .loco-details li{margin-bottom:0}.wrap .loco-list .loco-mtime{color:#999}.wrap .loco-list .loco-progress{color:#999}.error a.dismiss,.updated a.dismiss{text-decoration:none;font-size:20px;line-height:1;display:block;position:absolute;right:10px;top:5px}.error a.dismiss:before,.updated a.dismiss:before{display:none}.wrap div.loco-message{margin-top:10px}.wrap div.loco-success{border-color:#00CC00;background-color:#ccffcc}.wrap div.loco-message:hover{border-color:#000}form.loco-switcher{display:inline;display:inline-block;padding:0 5px}form.loco-switcher select{font-weight:normal;height:auto;display:inline}h3.title .loco-meta{font-weight:normal;font-size:14px}.wrap #loco-poedit{border:solid 1px #ccc}.wrap #loco-poedit-inner{min-height:600px;font-size:14px;clear:both}.wrap #loco-poedit-inner h2{color:#000;line-height:1}#loco-nav{font-size:14px;height:50px}#loco-nav form{display:block;padding:0;margin:0}#loco-search,#loco-nav button{display:block;position:relative;float:left;clear:none;box-sizing:border-box;margin:5px 0 0 5px;height:40px;text-align:left}#loco-nav button.loco-help{float:right;margin-right:5px}#loco-nav button span:before{padding-right:0.5em;font-family:loco}.wp-core-ui button.loco-inverted,.wp-core-ui button.loco-inverted:hover{background-image:-webkit-gradient(linear, left top, left bottom, from(#e0e0e0), to(#fefefe));background-image:-webkit-linear-gradient(top, #e0e0e0, #fefefe);background-image:-moz-linear-gradient(top, #e0e0e0, #fefefe);background-image:-o-linear-gradient(top, #e0e0e0, #fefefe);background-image:linear-gradient(to bottom, #e0e0e0, #fefefe)}#loco-filter input[type="text"]{padding-left:10px;margin-left:20px;width:300px;font-size:15px}#loco-filter .icon.clear{display:none !important}.loco-fscheck .loco-list{margin-bottom:20px}
|
1 |
+
.wrap a.nav-tab-active{cursor:text}.wrap #loco-poedit .wg-cell,.wrap #loco-poedit .wg-cell div{position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wrap #loco-poedit .wg-cell{left:0;top:0;padding:0;margin:0;overflow:hidden}.wrap #loco-poedit .wg-split{background:#eee}.wrap #loco-poedit .wg-body:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.wrap #loco-poedit .wg-split-x>div>.not-first>*{margin-left:6px}.wrap #loco-poedit .wg-split-y>div>.not-first>*{margin-top:6px}.wrap #loco-poedit .wg-split>div>.has-title .wg-content{margin-top:0}.wrap #loco-poedit .wg-split-x>div>.wg-cell{float:left;clear:none;height:100%}.wrap #loco-poedit .wg-split-x>div{cursor:move;cursor:ew-resize;cursor:col-resize}.wrap #loco-poedit .wg-split>div>.not-first:before{display:block;position:absolute;overflow:hidden;content:" "}.wrap #loco-poedit .wg-split-x>div>.not-first:before{width:6px;height:100%;background:transparent url(../img/wg/splitx.png) center center no-repeat}.wrap #loco-poedit .wg-split-y>div{cursor:move;cursor:ns-resize;cursor:row-resize}.wrap #loco-poedit .wg-split-y>div>.not-first:before{height:6px;width:100%;background:transparent url(../img/wg/splity.png) center center no-repeat}.wrap #loco-poedit .wg-split>div.locked{cursor:default}.wrap #loco-poedit .wg-split-x>div.locked>.not-first>*{margin-left:1px}.wrap #loco-poedit .wg-split-y>div.locked>.not-first>*{margin-top:1px}.wrap #loco-poedit .wg-split>div.locked>.not-first:before{display:none}.wrap #loco-poedit .wg-title{background:#ddd;cursor:default !important;margin:0;padding:4px 6px;font-size:1em;white-space:nowrap}.wrap #loco-poedit .wg-content{background:#fff;cursor:default;padding:4px 6px;overflow-x:hidden;overflow-y:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wrap #loco-poedit .is-table .wg-cols{outline:none}.wrap #loco-poedit .is-table .wg-col{float:left;clear:none}.wrap #loco-poedit .is-table .wg-title{padding:3px 10px;margin:0 !important;font-weight:normal}.wrap #loco-poedit .is-table .wg-thead>div>.not-first:before{background-position:center 1px}.wrap #loco-poedit .is-table .wg-thead{background:#ddd;border-bottom:solid 1px #ccc}.wrap #loco-poedit .is-table .wg-tr:nth-child(even){background-color:#f3f7fd}.wrap #loco-poedit .is-table .wg-tr.selected{background-color:#3875d7;color:#fff}.wrap #loco-poedit .is-table .wg-td{white-space:nowrap;line-height:1.7em;margin-left:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;-ms-text-overflow:ellipsis}.wrap #loco-poedit .is-table .wg-tbody .not-first .wg-td{margin-left:10px}.wrap #loco-poedit .is-table .wg-cols.filtered .wg-tr{display:none}.wrap #loco-poedit .is-table .wg-cols.filtered .wg-tr.filtered{display:block}.wrap #loco-poedit .is-field>.wg-content{cursor:text;outline:none;white-space:pre-wrap}.wrap #loco-poedit .is-field>.wg-content:focus{-webkit-box-shadow:inset 0 0 10px #3875d7;-moz-box-shadow:inset 0 0 10px #3875d7;box-shadow:inset 0 0 10px #3875d7}.wrap #loco-poedit .is-field.readonly>.wg-content{cursor:default;background:#f8f8f8;text-shadow:0 1px #fff}.wrap #loco-poedit .is-field.readonly>.wg-content:focus{-webkit-box-shadow:inset 0 0 10px #c00;-moz-box-shadow:inset 0 0 10px #c00;box-shadow:inset 0 0 10px #c00}.wrap #loco-poedit .wg-split-x>nav.wg-tabs{white-space:nowrap;text-align:center}.wrap #loco-poedit .wg-split-x>nav.wg-tabs>a{display:inline-block;padding:0.5em 1em;color:#000;text-decoration:none;-webkit-border-radius:0.2em 0.2em 0 0;-moz-border-radius:0.2em 0.2em 0 0;-ms-border-radius:0.2em 0.2em 0 0;-o-border-radius:0.2em 0.2em 0 0;border-radius:0.2em 0.2em 0 0;background-color:#f3f7fd}.wrap #loco-poedit .wg-split-x>nav.wg-tabs>a:hover{background-color:#fff}.wrap #loco-poedit .wg-split-x>nav.wg-tabs>a.active{background-color:#3875d7;color:#fff}.wrap #loco-poedit .wg-split>div>.has-nav>.wg-body{margin-top:0px}@media all and (max-width: 768px){.wrap #loco-poedit .wg-split-x>div>.not-first>*{margin-left:20px}.wrap #loco-poedit .wg-split-y>div>.not-first>*{margin-top:20px}.wrap #loco-poedit .wg-split-x>div>.not-first:before{width:20px}.wrap #loco-poedit .wg-split-y>div>.not-first:before{height:20px}}.wrap #loco-poedit .is-table .po-fuzzy{color:#b59829;font-weight:bold}.wrap #loco-poedit .is-table .po-empty{color:#1f507a;font-weight:bold}.wrap #loco-poedit .is-table .wg-col.first .wg-td:before{font-family:loco;vertical-align:middle;display:inline-block;content:" ";width:1.2em;line-height:1}.wrap #loco-poedit .is-table .po-incorrect,.wrap #loco-poedit .is-table .po-needs-review{color:#CC0000}.wrap #loco-poedit .is-table .wg-col.first .po-flagged .wg-td:before{content:"\e60e"}.wrap #loco-poedit .is-table .wg-col.first .po-comment .wg-td:before{content:"\e613";color:#999}.wrap #loco-poedit .is-table .wg-col.first .po-unsaved .wg-td:before{content:"\e612";color:#f1d040}.wrap #loco-poedit #po-list .wg-content{padding:0}.wrap #loco-poedit #po-source>.wg-body>.has-title>h2{background:transparent;font-weight:normal;float:left;clear:none;min-width:3.4em}.wrap #loco-poedit #po-source>.wg-body>.has-title>.wg-content{clear:none}.wrap #loco-poedit #po-source p.notes{font-style:italic;color:#999;margin:0 0 0.5em 0;font-size:0.85em;line-height:1.2em}.wrap #loco-poedit #po-source>.wg-body>.has-title>h2{min-width:4.5em}.wrap #loco-poedit .is-table .wg-td{font-size:13px}.wrap .flag{width:16px;height:11px;display:inline-block;background:url(../img/flags.tiny.png) no-repeat}.wrap .flag.flag-ad{background-position:-16px 0}.wrap .flag.flag-ae{background-position:-32px 0}.wrap .flag.flag-af{background-position:-48px 0}.wrap .flag.flag-ag{background-position:-64px 0}.wrap .flag.flag-ai{background-position:-80px 0}.wrap .flag.flag-al{background-position:-96px 0}.wrap .flag.flag-am{background-position:-112px 0}.wrap .flag.flag-an{background-position:-128px 0}.wrap .flag.flag-ao{background-position:-144px 0}.wrap .flag.flag-ar{background-position:-160px 0}.wrap .flag.flag-as{background-position:-176px 0}.wrap .flag.flag-at{background-position:-192px 0}.wrap .flag.flag-au{background-position:-208px 0}.wrap .flag.flag-aw{background-position:-224px 0}.wrap .flag.flag-az{background-position:-240px 0}.wrap .flag.flag-ba{background-position:0 -11px}.wrap .flag.flag-bb{background-position:-16px -11px}.wrap .flag.flag-bd{background-position:-32px -11px}.wrap .flag.flag-be{background-position:-48px -11px}.wrap .flag.flag-bf{background-position:-64px -11px}.wrap .flag.flag-bg{background-position:-80px -11px}.wrap .flag.flag-bh{background-position:-96px -11px}.wrap .flag.flag-bi{background-position:-112px -11px}.wrap .flag.flag-bj{background-position:-128px -11px}.wrap .flag.flag-bm{background-position:-144px -11px}.wrap .flag.flag-bn{background-position:-160px -11px}.wrap .flag.flag-bo{background-position:-176px -11px}.wrap .flag.flag-br{background-position:-192px -11px}.wrap .flag.flag-bs{background-position:-208px -11px}.wrap .flag.flag-bt{background-position:-224px -11px}.wrap .flag.flag-bw{background-position:-240px -11px}.wrap .flag.flag-by{background-position:0 -22px}.wrap .flag.flag-bz{background-position:-16px -22px}.wrap .flag.flag-ca{background-position:-32px -22px}.wrap .flag.flag-cd{background-position:-48px -22px}.wrap .flag.flag-cf{background-position:-64px -22px}.wrap .flag.flag-cg{background-position:-80px -22px}.wrap .flag.flag-ch{background-position:-96px -22px}.wrap .flag.flag-ci{background-position:-112px -22px}.wrap .flag.flag-ck{background-position:-128px -22px}.wrap .flag.flag-cl{background-position:-144px -22px}.wrap .flag.flag-cm{background-position:-160px -22px}.wrap .flag.flag-cn{background-position:-176px -22px}.wrap .flag.flag-co{background-position:-192px -22px}.wrap .flag.flag-cr{background-position:-208px -22px}.wrap .flag.flag-cu{background-position:-224px -22px}.wrap .flag.flag-cv{background-position:-240px -22px}.wrap .flag.flag-cw{background-position:0 -33px}.wrap .flag.flag-cy{background-position:-16px -33px}.wrap .flag.flag-cz{background-position:-32px -33px}.wrap .flag.flag-de{background-position:-48px -33px}.wrap .flag.flag-dj{background-position:-64px -33px}.wrap .flag.flag-dk{background-position:-80px -33px}.wrap .flag.flag-dm{background-position:-96px -33px}.wrap .flag.flag-do{background-position:-112px -33px}.wrap .flag.flag-dz{background-position:-128px -33px}.wrap .flag.flag-ec{background-position:-144px -33px}.wrap .flag.flag-ee{background-position:-160px -33px}.wrap .flag.flag-eg{background-position:-176px -33px}.wrap .flag.flag-eh{background-position:-192px -33px}.wrap .flag.flag-er{background-position:-208px -33px}.wrap .flag.flag-es{background-position:-224px -33px}.wrap .flag.flag-et{background-position:-240px -33px}.wrap .flag.flag-fi{background-position:0 -44px}.wrap .flag.flag-fj{background-position:-16px -44px}.wrap .flag.flag-fk{background-position:-32px -44px}.wrap .flag.flag-fm{background-position:-48px -44px}.wrap .flag.flag-fo{background-position:-64px -44px}.wrap .flag.flag-fr{background-position:-80px -44px}.wrap .flag.flag-ga{background-position:-96px -44px}.wrap .flag.flag-gb{background-position:-112px -44px}.wrap .flag.flag-gd{background-position:-128px -44px}.wrap .flag.flag-ge{background-position:-144px -44px}.wrap .flag.flag-gf{background-position:-160px -44px}.wrap .flag.flag-gh{background-position:-176px -44px}.wrap .flag.flag-gi{background-position:-192px -44px}.wrap .flag.flag-gl{background-position:-208px -44px}.wrap .flag.flag-gm{background-position:-224px -44px}.wrap .flag.flag-gn{background-position:-240px -44px}.wrap .flag.flag-gp{background-position:0 -55px}.wrap .flag.flag-gq{background-position:-16px -55px}.wrap .flag.flag-gr{background-position:-32px -55px}.wrap .flag.flag-gt{background-position:-48px -55px}.wrap .flag.flag-gu{background-position:-64px -55px}.wrap .flag.flag-gw{background-position:-80px -55px}.wrap .flag.flag-gy{background-position:-96px -55px}.wrap .flag.flag-hk{background-position:-112px -55px}.wrap .flag.flag-hn{background-position:-128px -55px}.wrap .flag.flag-hr{background-position:-144px -55px}.wrap .flag.flag-ht{background-position:-160px -55px}.wrap .flag.flag-hu{background-position:-176px -55px}.wrap .flag.flag-id{background-position:-192px -55px}.wrap .flag.flag-ie{background-position:-208px -55px}.wrap .flag.flag-il{background-position:-224px -55px}.wrap .flag.flag-in{background-position:-240px -55px}.wrap .flag.flag-iq{background-position:0 -66px}.wrap .flag.flag-ir{background-position:-16px -66px}.wrap .flag.flag-is{background-position:-32px -66px}.wrap .flag.flag-it{background-position:-48px -66px}.wrap .flag.flag-jm{background-position:-64px -66px}.wrap .flag.flag-jo{background-position:-80px -66px}.wrap .flag.flag-jp{background-position:-96px -66px}.wrap .flag.flag-ke{background-position:-112px -66px}.wrap .flag.flag-kg{background-position:-128px -66px}.wrap .flag.flag-kh{background-position:-144px -66px}.wrap .flag.flag-ki{background-position:-160px -66px}.wrap .flag.flag-km{background-position:-176px -66px}.wrap .flag.flag-kn{background-position:-192px -66px}.wrap .flag.flag-kp{background-position:-208px -66px}.wrap .flag.flag-kr{background-position:-224px -66px}.wrap .flag.flag-kw{background-position:-240px -66px}.wrap .flag.flag-ky{background-position:0 -77px}.wrap .flag.flag-kz{background-position:-16px -77px}.wrap .flag.flag-la{background-position:-32px -77px}.wrap .flag.flag-lb{background-position:-48px -77px}.wrap .flag.flag-lc{background-position:-64px -77px}.wrap .flag.flag-li{background-position:-80px -77px}.wrap .flag.flag-lk{background-position:-96px -77px}.wrap .flag.flag-lr{background-position:-112px -77px}.wrap .flag.flag-ls{background-position:-128px -77px}.wrap .flag.flag-lt{background-position:-144px -77px}.wrap .flag.flag-lu{background-position:-160px -77px}.wrap .flag.flag-lv{background-position:-176px -77px}.wrap .flag.flag-ly{background-position:-192px -77px}.wrap .flag.flag-ma{background-position:-208px -77px}.wrap .flag.flag-mc{background-position:-224px -77px}.wrap .flag.flag-md{background-position:-240px -77px}.wrap .flag.flag-me{background-position:0 -88px}.wrap .flag.flag-mg{background-position:-16px -88px}.wrap .flag.flag-mh{background-position:-32px -88px}.wrap .flag.flag-mk{background-position:-48px -88px}.wrap .flag.flag-ml{background-position:-64px -88px}.wrap .flag.flag-mm{background-position:-80px -88px}.wrap .flag.flag-mn{background-position:-96px -88px}.wrap .flag.flag-mo{background-position:-112px -88px}.wrap .flag.flag-mp{background-position:-128px -88px}.wrap .flag.flag-mq{background-position:-144px -88px}.wrap .flag.flag-mr{background-position:-160px -88px}.wrap .flag.flag-ms{background-position:-176px -88px}.wrap .flag.flag-mt{background-position:-192px -88px}.wrap .flag.flag-mu{background-position:-208px -88px}.wrap .flag.flag-mv{background-position:-224px -88px}.wrap .flag.flag-mw{background-position:-240px -88px}.wrap .flag.flag-mx{background-position:0 -99px}.wrap .flag.flag-my{background-position:-16px -99px}.wrap .flag.flag-mz{background-position:-32px -99px}.wrap .flag.flag-na{background-position:-48px -99px}.wrap .flag.flag-nc{background-position:-64px -99px}.wrap .flag.flag-ne{background-position:-80px -99px}.wrap .flag.flag-nf{background-position:-96px -99px}.wrap .flag.flag-ng{background-position:-112px -99px}.wrap .flag.flag-ni{background-position:-128px -99px}.wrap .flag.flag-nl{background-position:-144px -99px}.wrap .flag.flag-no{background-position:-160px -99px}.wrap .flag.flag-np{background-position:-176px -99px}.wrap .flag.flag-nr{background-position:-192px -99px}.wrap .flag.flag-nu{background-position:-208px -99px}.wrap .flag.flag-nz{background-position:-224px -99px}.wrap .flag.flag-om{background-position:-240px -99px}.wrap .flag.flag-pa{background-position:0 -110px}.wrap .flag.flag-pe{background-position:-16px -110px}.wrap .flag.flag-pf{background-position:-32px -110px}.wrap .flag.flag-pg{background-position:-48px -110px}.wrap .flag.flag-ph{background-position:-64px -110px}.wrap .flag.flag-pk{background-position:-80px -110px}.wrap .flag.flag-pl{background-position:-96px -110px}.wrap .flag.flag-pm{background-position:-112px -110px}.wrap .flag.flag-pn{background-position:-128px -110px}.wrap .flag.flag-pr{background-position:-144px -110px}.wrap .flag.flag-ps{background-position:-160px -110px}.wrap .flag.flag-pt{background-position:-176px -110px}.wrap .flag.flag-pw{background-position:-192px -110px}.wrap .flag.flag-py{background-position:-208px -110px}.wrap .flag.flag-qa{background-position:-224px -110px}.wrap .flag.flag-re{background-position:-240px -110px}.wrap .flag.flag-ro{background-position:0 -121px}.wrap .flag.flag-rs{background-position:-16px -121px}.wrap .flag.flag-ru{background-position:-32px -121px}.wrap .flag.flag-rw{background-position:-48px -121px}.wrap .flag.flag-sa{background-position:-64px -121px}.wrap .flag.flag-sb{background-position:-80px -121px}.wrap .flag.flag-sc{background-position:-96px -121px}.wrap .flag.flag-sd{background-position:-112px -121px}.wrap .flag.flag-se{background-position:-128px -121px}.wrap .flag.flag-sg{background-position:-144px -121px}.wrap .flag.flag-sh{background-position:-160px -121px}.wrap .flag.flag-si{background-position:-176px -121px}.wrap .flag.flag-sk{background-position:-192px -121px}.wrap .flag.flag-sl{background-position:-208px -121px}.wrap .flag.flag-sm{background-position:-224px -121px}.wrap .flag.flag-sn{background-position:-240px -121px}.wrap .flag.flag-so{background-position:0 -132px}.wrap .flag.flag-sr{background-position:-16px -132px}.wrap .flag.flag-ss{background-position:-32px -132px}.wrap .flag.flag-st{background-position:-48px -132px}.wrap .flag.flag-sv{background-position:-64px -132px}.wrap .flag.flag-sy{background-position:-80px -132px}.wrap .flag.flag-sz{background-position:-96px -132px}.wrap .flag.flag-tc{background-position:-112px -132px}.wrap .flag.flag-td{background-position:-128px -132px}.wrap .flag.flag-tg{background-position:-144px -132px}.wrap .flag.flag-th{background-position:-160px -132px}.wrap .flag.flag-tj{background-position:-176px -132px}.wrap .flag.flag-tk{background-position:-192px -132px}.wrap .flag.flag-tl{background-position:-208px -132px}.wrap .flag.flag-tm{background-position:-224px -132px}.wrap .flag.flag-tn{background-position:-240px -132px}.wrap .flag.flag-to{background-position:0 -143px}.wrap .flag.flag-tr{background-position:-16px -143px}.wrap .flag.flag-tt{background-position:-32px -143px}.wrap .flag.flag-tv{background-position:-48px -143px}.wrap .flag.flag-tw{background-position:-64px -143px}.wrap .flag.flag-tz{background-position:-80px -143px}.wrap .flag.flag-ua{background-position:-96px -143px}.wrap .flag.flag-ug{background-position:-112px -143px}.wrap .flag.flag-us{background-position:-128px -143px}.wrap .flag.flag-uy{background-position:-144px -143px}.wrap .flag.flag-uz{background-position:-160px -143px}.wrap .flag.flag-va{background-position:-176px -143px}.wrap .flag.flag-vc{background-position:-192px -143px}.wrap .flag.flag-ve{background-position:-208px -143px}.wrap .flag.flag-vg{background-position:-224px -143px}.wrap .flag.flag-vi{background-position:-240px -143px}.wrap .flag.flag-vn{background-position:0 -154px}.wrap .flag.flag-vu{background-position:-16px -154px}.wrap .flag.flag-wf{background-position:-32px -154px}.wrap .flag.flag-ws{background-position:-48px -154px}.wrap .flag.flag-ye{background-position:-64px -154px}.wrap .flag.flag-yt{background-position:-80px -154px}.wrap .flag.flag-za{background-position:-96px -154px}.wrap .flag.flag-zm{background-position:-112px -154px}.wrap .flag.flag-zw{background-position:-128px -154px}.wrap .loco-add>*:before{content:"\e60c"}.wrap .loco-del>*:before{content:"\e60d"}.wrap .loco-save>*:before{content:"\e610"}.wrap .loco-sync>*:before{content:"\e633"}.wrap .loco-help>*:before{content:"\3f"}.wrap .loco-revert>*:before{content:"\e634"}.wrap .loco-fuzzy>*:before{content:"\e607"}.wrap .loco-download>*:before{content:"\e608"}.wrap .loco-ok>*:before{content:"\e618"}.wrap .loco-error>*:before,.wrap .loco-warning>*:before{content:"\e62e"}.wrap .loco-edit-pot>*:before{content:"\e61e"}.wrap .loco-clearable>a:before{content:"\e615"}@font-face{font-family:'loco';src:url("../font/loco.eot");src:url("../font/loco.eot?#iefix") format("embedded-opentype"),url("../font/loco.woff") format("woff"),url("../font/loco.ttf") format("truetype"),url("../font/loco.svg#loco") format("svg");font-weight:normal;font-style:normal}.wrap div{position:relative}h2 .nav-tab.nav-tab-loco{float:right;border-color:transparent;font-size:16px;color:#2e892e;background:transparent}h2 .nav-tab.nav-tab-loco:hover{color:#3db63d}.widefat thead tr th{width:25%}.wrap.loco-lists>h2:before{display:inline-block;font-family:dashicons;opacity:0.5}.wrap .loco-list{margin:10px 0}.wrap .loco-message p:before,.wrap .loco-list li>a:before,.wrap .loco-list li>span:before{padding-right:0.5em;font-family:loco;color:inherit}.wrap .loco-list li.loco-add a{color:#666666}.wrap .loco-list li.loco-add a:hover{color:#000}.wrap .loco-list li.loco-edit-po .flag{margin-right:6px}.wrap .loco-list li.loco-warning>*:before{color:#cc0000}.wrap .loco-list li.loco-ok>*:before{color:#006600}.wrap .loco-list .loco-details li{margin-bottom:0}.wrap .loco-list .loco-mtime{color:#999}.wrap .loco-list .loco-progress{color:#999}.error a.dismiss,.updated a.dismiss{text-decoration:none;font-size:20px;line-height:1;display:block;position:absolute;right:10px;top:5px}.error a.dismiss:before,.updated a.dismiss:before{display:none}.wrap div.loco-message{margin-top:10px}.wrap div.loco-success{border-color:#00CC00;background-color:#ccffcc}.wrap div.loco-message:hover{border-color:#000}form.loco-switcher{display:inline;display:inline-block;padding:0 5px}form.loco-switcher select{font-weight:normal;height:auto;display:inline}h3.title .loco-meta{font-weight:normal;font-size:14px}.wrap #loco-poedit{border:solid 1px #ccc}.wrap #loco-poedit-inner{min-height:600px;font-size:14px;clear:both}.wrap #loco-poedit-inner h2{color:#000;line-height:1}#loco-nav{font-size:14px;height:50px}#loco-nav form{display:block;float:left;clear:none;padding:0;margin:0}#loco-search,#loco-nav button{display:block;position:relative;float:left;clear:none;box-sizing:border-box;margin:5px 0 0 5px;height:40px;text-align:left}#loco-nav form.loco-right{float:right;margin-right:5px}#loco-nav button span:before{padding-right:0.5em;font-family:loco}.wp-core-ui button.loco-inverted,.wp-core-ui button.loco-inverted:hover{background-image:-webkit-gradient(linear, left top, left bottom, from(#e0e0e0), to(#fefefe));background-image:-webkit-linear-gradient(top, #e0e0e0, #fefefe);background-image:-moz-linear-gradient(top, #e0e0e0, #fefefe);background-image:-o-linear-gradient(top, #e0e0e0, #fefefe);background-image:linear-gradient(to bottom, #e0e0e0, #fefefe)}#loco-filter input[type="text"]{padding-left:10px;margin-left:20px;font-size:14px;line-height:normal}.loco-clearable{display:inline-block;vertical-align:middle;position:relative}.loco-clearable a.clear{top:0;right:0;outline:none;padding:1em 0.5em;position:absolute;font-size:1em;line-height:normal;text-decoration:none}.loco-clearable a.clear:before{font-family:loco;vertical-align:middle;padding:0;color:#999}.loco-clearable a.clear:hover:before{color:#333}.loco-clearable a.clear span{display:none}.loco-clearable ::-ms-clear{display:none}.loco-fscheck .loco-list{margin-bottom:20px}
|
pub/css/loco-legacy.css
CHANGED
@@ -11,4 +11,8 @@
|
|
11 |
|
12 |
#adminmenu .toplevel_page_loco-translate.wp-has-current-submenu .wp-menu-image {
|
13 |
background-position: 2px -28px;
|
14 |
-
}
|
|
|
|
|
|
|
|
11 |
|
12 |
#adminmenu .toplevel_page_loco-translate.wp-has-current-submenu .wp-menu-image {
|
13 |
background-position: 2px -28px;
|
14 |
+
}
|
15 |
+
|
16 |
+
.wrap.loco-lists > h2:before {
|
17 |
+
display: none !important;
|
18 |
+
}
|
pub/js/build/admin-poedit.js
CHANGED
@@ -1,148 +1,151 @@
|
|
1 |
-
(function(u,
|
2 |
-
a||
|
3 |
-
c.p.replace("%",""))+", "+a,k&&
|
4 |
-
|
5 |
-
return c}({},u,
|
6 |
-
|
7 |
-
|
8 |
-
title:
|
9 |
-
|
10 |
-
function(){
|
11 |
-
|
12 |
-
var
|
13 |
-
|
14 |
-
var b,
|
15 |
-
|
16 |
-
|
17 |
-
function(b){y();
|
18 |
-
c.unlisten=function(b){y().unbind("overlayClosed",b);return c};return c}({},u,
|
19 |
-
|
20 |
-
if(b.download)a.location.assign(b.download);else if(b.redirect)return a.location.assign(b.redirect),!1;
|
21 |
-
|
22 |
-
break a}}function
|
23 |
-
|
24 |
-
return!0});return c},r=c.close=function(){g.close();return c};c.initLink=function(b){b.click(
|
25 |
-
|
26 |
-
c.getAttribute("data-prefix");a.defaultIcon=c.getAttribute("data-icon")||"jshide";var
|
27 |
-
b.attr("tabindex")||"").append(a.icon).append(a.selection);a.wrapper=
|
28 |
-
|
29 |
a.onRelease=function(b){this.active&&!this.over&&this.close();return!0};a.onGlobalKeydown=function(b){if(this.active)switch(b.keyCode){case 27:return this.close(),f(b);case 40:return this.hoverNext(1),f(b);case 38:return this.hoverNext(-1),f(b);case 13:if(-1!=this.hover)return this.selectIndex(this.hover,!0),this.hoverItem(-1),this.close(),f(b)}return!0};a.onKeydown=function(b){return this.active||40!==b.keyCode?!0:(this.open(),f(b))};a.open=function(){this.active=!0;this.hover=-1;this.wrapper.addClass("active");
|
30 |
var b=this.handle.outerHeight()||0;this.list.show().css("top",b+"px");var b=this.handle.outerWidth()||0,a=this.list.outerWidth()||0;b>a&&(a-=this.list.width(),this.list.css("min-width",String(b-a)+"px"))};a.close=function(){this.list.hide();this.active=!1;-1!==this.hover&&(this.getElement(this.hover).removeClass("over"),this.hover=-1);this.wrapper.removeClass("active")};a.hoverItem=function(b,a){-1!==this.hover&&this.getElement(this.hover).removeClass("over");this.hover=b;-1!==b&&(a=a||this.getElement(b),
|
31 |
-
a.addClass("over"))};a.hoverNext=function(b){var a=this.options.length;if(a){a-=1;if(-1==this.hover)b=0<b?0:a;else{b=this.hover+b;if(0>b){this.close();return}b>a&&(b=0)}this.hoverItem(b)}};a.enableChange=function(b){this.eventName=b;this.eventData=[].slice.call(arguments,1);return this};a.clearOptions=function(){this.index={};this.length=0;this.options=[];this.list.html("");this.hidden.val("");this.idx=this.hover=-1;return this};a.addOption=function(b,a,c,g){var
|
32 |
-
"jshide"),
|
33 |
b)};a.reIndex=function(){this.index={};this.length=0;for(var b=this.options.length;-1<--b;)this.index[this.options[b].value]=b,this.length++};a.selectValue=function(b,a){return this.selectIndex(this.index[b],a)};a.selectIndex=function(b,a){var c=this.options[b];c&&(this.hidden.val(c.value),b!==this.idx&&(this.idx=b,this.setLabel(c.text),this.icon.attr("class",c.icon||this.defaultIcon),a&&this.change()),this.active&&this.close());return this};a.setLabel=function(b){this.selection.text(b);this.prefix&&
|
34 |
-
this.selection.prepend(
|
35 |
-
this.index[b],c=this.options[a];c&&(b=this.val(),this.getElement(a).remove(),this.options.splice(a,1),this.reIndex(),b===c.value?this.selectIndex(0,!0):this.selectValue(b,!1))};a.getElement=function(b){return this.list.find("li").eq(b)};a=null;return c}({},u,
|
36 |
-
|
37 |
-
return g}function
|
38 |
-
b.find("a").length)||b.click(
|
39 |
-
n.hasClass("hastip-right")&&
|
40 |
-
(
|
41 |
-
"tooltip.js");
|
42 |
-
h.getAttribute("data-modal"))
|
43 |
-
|
44 |
-
jQuery?a[0]:a;for(var r,
|
45 |
-
function(){return c};this.clear()}c.create=function(){return new f};a=f.prototype;a.depth=0;a.matchall=!0;a.ignorecase=!0;a.nonword=/[\-.?!;:,_*^+=~`"'(){}<>[\]\/\\\u00a0\u1680\u180e\u2000-\u206f\u2e00-\u2e7f\u3000-\u303f]+/g;a.translit=function(a,c){function b(b){return a[b]||b}c=c||/[^a-z0-9]/g;
|
46 |
-
var n=
|
47 |
-
k.length;){f=
|
48 |
-
a.strip=function(a){return a.replace(this.nonword,"")};a=null;return c}({},u,
|
49 |
-
"px").css("width",b+"px");
|
50 |
-
return a}function
|
51 |
-
a])}}var
|
52 |
-
b.stopPropagation();return!1}switch(b.keyCode){case 27:
|
53 |
-
|
54 |
-
b&&this.dict.add(a,b)};
|
55 |
-
function(b){function
|
56 |
-
c,f){b instanceof jQuery||(b=
|
57 |
-
|
58 |
-
|
59 |
-
a.getAttribute("data-icon");if(c){var d
|
60 |
-
c=i=null)};return c}({},u,
|
61 |
-
function(a){a=this.ords[a];return null==a?-1:a};a.add=function(a,c){var b=this.ords[a];null==b&&(this.keys[this.length]=a,b=this.ords[a]=this.length++);this[b]=c;return b};a.get=function(a){return this[this.ords[a]]};a.cut=function(a,c){var b=[].splice.call(this,a,c);this.keys.splice(a,c);this.reIndex(this.keys);
|
62 |
-
"Report-Msgid-Bugs-To":"","POT-Creation-Date":a||"","POT-Revision-Date":a||"","PO-Revision-Date":a||"","Last-Translator":"","Language-Team":"",Language:"","Plural-Forms":"","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","X-Poedit-SourceCharset":"UTF-8"}}
|
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 |
-
"\ud835\
|
94 |
-
"\
|
95 |
-
"\ud835\
|
96 |
-
"\
|
97 |
-
"\ud835\
|
98 |
-
"\ud835\
|
99 |
-
"\ud835\
|
100 |
-
"\ud835\
|
101 |
-
"\
|
102 |
-
"\
|
103 |
-
"\
|
104 |
-
"\
|
105 |
-
"\
|
106 |
-
"\
|
107 |
-
"\
|
108 |
-
"\
|
109 |
-
|
110 |
-
|
111 |
-
function(
|
112 |
-
|
113 |
-
|
114 |
-
[]
|
115 |
-
a
|
116 |
-
|
117 |
-
|
118 |
-
a
|
119 |
-
|
120 |
-
this.
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
c
|
128 |
-
|
129 |
-
this;
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
"
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
|
|
|
|
|
1 |
+
(function(u,D,d,W){function R(c){var a=0,d,f=[].slice.call(arguments,1);return c.replace(/%(s|u|%)/g,function(e,c){if("%"===c)return"%";d=f[a++];return String(d)||""})}function S(c){c.stopPropagation();c.preventDefault();return!1}function da(c,a){function k(){f();e=setTimeout(function(){d(c).fadeOut(1E3,a)},g)}function f(){e&&clearTimeout(e);e=null}var e,g=5E3;k();d(c).mouseenter(f).mouseleave(k)}function Z(c,a){function k(a){d(c).remove();d(u).triggerHandler("resize");return a&&S(a)}d('<a class="dismiss" href="#">×</a>').appendTo(c).click(k);
|
2 |
+
a||da(c,k)}function X(c,a,k,f){var e="loco-js-"+k;k=D.getElementById(e)||d('<div id="'+e+'" class="loco-message '+(f||k)+'"></div>').insertBefore(d("#loco-poedit"));c=d(D.createElement("p")).text(c);a=d(D.createElement("strong")).text(a+": ");c.prepend(a).appendTo(d(k).html(""));d(u).triggerHandler("resize");Z(k);d("div.loco-warning").remove()}function $(c){return X(c,F("OK"),"updated loco-success")}function Y(){var c=G.stats(),a=c.t,k=c.f,f=c.u,a=R(F("1 string","%s strings",a),a),e=[];U&&(a=R(F("%s%% translated"),
|
3 |
+
c.p.replace("%",""))+", "+a,k&&e.push(R(F("%s fuzzy"),k)),f&&e.push(R(F("%s untranslated"),f)),e.length&&(a+=" ("+e.join(", ")+")"));d("#loco-po-status").text(a)}function aa(c,a,k){function f(e,c,b){b=b||F("Unknown error");X(b,F("Error"),"error");k&&k(e,c,b)}return d.ajax({url:ba,type:c.method,data:d(c).serialize(),dataType:"json",error:f,success:function(c,g,b){!c||c.error?f(b,g,c&&c.error&&c.error.message):a&&a(c,g,b)}})}var t=function(){var c={};return{register:function(a,d){c[a]=d},require:function(a,
|
4 |
+
d){var f=c[a];if(!f)throw Error('CommonJS error: failed to require("'+d+'")');return f}}}();t.register("$1",function(c,a,d){Array.prototype.indexOf||(Array.prototype.indexOf=function(c){if(null==this)throw new TypeError;var a,g=Object(this),b=g.length>>>0;if(0===b)return-1;a=0;1<arguments.length&&(a=Number(arguments[1]),a!=a?a=0:0!=a&&Infinity!=a&&-Infinity!=a&&(a=(0<a||-1)*Math.floor(Math.abs(a))));if(a>=b)return-1;for(a=0<=a?a:Math.max(b-Math.abs(a),0);a<b;a++)if(a in g&&g[a]===c)return a;return-1});
|
5 |
+
return c}({},u,D));t.register("$16",function(c,a,d){function f(q){b||a._gat&&(b=_gat._createTracker(e,"loco"));if(b){var p=q.shift();b[p].apply(b,q)}else g&&g.push(q);return c}var e,g,b;c._init=function(b){if(e=b.code){g=a._gaq||(a._gaq=[]);g.push(["_setAccount",e]);g.push(["_trackPageview"]);g.push(["_setDomainName",b.host]);b=d.createElement("script");b.type="text/javascript";b.async=!0;b.src=("https:"==d.location.protocol?"https://ssl":"http://www")+".google-analytics.com/ga.js";var p=d.getElementsByTagName("script")[0];
|
6 |
+
p.parentNode.insertBefore(b,p)}return c};c.event=function(b,a,c,e){return f(["_trackEvent",b||"",a||"",c||"",e||0])};c.page=function(b,a){return f(["_trackPageview",{page:b||location.pathname+location.hash,title:a||d.title}])};return c}({},u,D));t.register("$17",function(c,a,d){function f(b,q){if(e)e[b](q);else a.ga&&ga(b,q);return c}var e,g;c._init=function(b){b.code&&(function(b,a,c,e,h,s,n){b.GoogleAnalyticsObject=h;b[h]=b[h]||function(){(b[h].q=b[h].q||[]).push(arguments)};b[h].l=1*new Date;s=
|
7 |
+
a.createElement(c);n=a.getElementsByTagName(c)[0];s.async=1;s.src=e;n.parentNode.insertBefore(s,n)}(a,d,"script","//www.google-analytics.com/analytics.js","ga"),ga("create",b.code,{alwaysSendReferrer:!0}),b.custom&&f("set",b.custom),c.page(),ga(function(b){e=b}));return c};c.event=function(b,a,c,e){return f("send",{hitType:"event",eventCategory:b||"",eventAction:a||"",eventLabel:c||"",eventValue:Number(e||0)})};c.page=function(b,a){var c={hitType:"pageview",page:b||location.pathname+location.hash,
|
8 |
+
title:a||d.title};c.location=location.protocol+"//"+location.hostname+c.page;g&&f("set",{referrer:g});g=c.location;return f("send",c)};c.reset=function(){g=location.href;f("set",{page:location.pathname+location.hash,title:d.title,location:g});return c};return c}({},u,D));t.register("$8",function(c,a,k){function f(b,a){d(b).click(function(b){e&&e.event(a,"click",this.getAttribute("href")||"");return!0});b=null;return c}var e,g=location.hostname;c.init=function(b){!e&&b&&(g=b.host||(b.host=g),e=b.legacy?
|
9 |
+
t.require("$16","legacy.js"):t.require("$17","universal.js"),e._init(b));return c};c.link=function(b){for(var a=b.getAttribute("href");a&&"#"!==a;){if(0===a.indexOf("#"))return f(b,"anchor");if(0===a.indexOf("http")||0===a.indexOf("//")){if(-1!==a.indexOf(g)&&/^(https?:)*\/\/([^\/]+)/.exec(a)&&g===RegExp.$2)break;b.setAttribute("target","_blank");f(b,"external")}break}return c};c.page=function(){e&&e.page.apply(e,arguments);return c};c.event=function(){e&&e.event.apply(e,arguments);return c};c.reset=
|
10 |
+
function(){e&&e.reset&&e.reset();return c};return c}({},u,D));t.register("$22",function(c,a,k){function f(b,a,c,e,f){function h(){m&&clearTimeout(m);v&&v.fadeOut(400,function(){d(this).remove();v=null});return!1}function s(){n();-1!==e&&(m=setTimeout(h,e||2E3));v.unbind("mouseleave");v.mouseenter(n)}function n(){m&&clearTimeout(m);m=null;v.unbind("mouseenter");v.mouseleave(s)}var m;g||(g=k.createElement("div"),g.id="growls",k.body.appendChild(g));var v=d('<div class="growl growl-'+c+'"><div><a class="close" href="#"><span>X</span></a><span class="badge"></span><p class="message"></p><small class="caption"></small></div></div>');
|
11 |
+
v.find("p").text(b||"Empty message");a?v.find("small").text(a):v.find("small").remove();if(f.length){f.push({label:"Cancel",callback:h,css:"cancel"});var w,I=d('<form action="#" class="dialog"></form>');a=function(b,a){w=d('<input type="button" value="'+a.label+'" class="butt '+(a.css||"")+'" />');w.click(function(b){"function"===typeof a.callback&&a.callback(b,{close:h})});I.append(w);return w};for(b=0;b<f.length;b++)a(b,f[b]);v.append(I)}d(g).prepend(v.hide().fadeIn(400));v.find("a").click(h);s()}
|
12 |
+
var e,g;c.init=function(){if(!e)return e=a.alert,a.alert=function(b){b=String(b).split("\n");var a=b[1]&&b.slice(1).join("\n");c.alert(b[0],a)},c};c.debug=function(b){e(b);return c};c.alert=function(b,c,g,d,B){try{return f(b,c||"",g||"alert",d||4E3,B||[]),!0}catch(h){return b+="\n\n--\n"+(h.message||h),e.call(a,b),!1}};c.success=function(b,a,e){return c.alert(b,a,"success",e||2E3)};c.dialog=function(b,a,e,g){return c.alert(b,a,g||"alert",-1,e)};c.login=function(b,a,e,g){c.dialog(a||"You're not logged in",
|
13 |
+
e||"Please log in to continue",[{label:g||"Log in",callback:function(a,h){location.assign(b||"/session/auth/login?r="+encodeURIComponent(location.href))}}])};return c}({},u,D));t.register("$19",function(c,a,k){function f(b){return 27===b.keyCode&&s&&n?(H(),b.preventDefault(),!1):!0}function e(h){if(s){var c=Math.max(b.height(),q.outerHeight(!0));c&&r.css("height",c+"px");h&&(l=d(a).innerWidth(),z(A))}return!0}function g(b){b?(B.show(),p.addClass("has-title")):(B.hide(),p.removeClass("has-title"))}
|
14 |
+
var b,q,p,r,B,h,s=!1,n=!1,m=!1,v,w,I,l,A,y=c.init=function(){if(!b){b=d('<div id="overlay"></div>');q=d('<div class="overlay-frame"></div>');p=d('<div class="overlay-container"></div>');B=d('<div class="overlay-title"><span class="title">Untitled</span></div>');h=d('<a class="overlay-close" href="#"><span>x</span></a>');r=d('<div class="overlay-bg"></div>');b.append(q.append(p)).append(r).prependTo(k.body);d(k).bind("keydown",f);d(a).resize(e);I=p.outerWidth(!0)-p.width()+(q.innerWidth()-q.width());
|
15 |
+
p.outerHeight(!0);p.outerHeight(!1);q.innerHeight();q.height();l=d(a).innerWidth();v=parseInt(p.css("width"));if(!v||isNaN(v))v=p.width();w=parseInt(p.css("height"));if(!w||isNaN(w))w=p.height();B.append(h.hide()).hide().prependTo(q);b.hide()}return b},z=c.width=function(h){y();if(null===h)q.css("width",""),p.css("width","");else{h=h||v||640;x=h+I;A=h;var a=l;x>a?(x=a,h=x-I,b.addClass("spill")):b.removeClass("spill");q.css("width",x+"px");p.css("width",h+"px")}return c};c.autoSize=function(){y();
|
16 |
+
e();var b=v||0;p.children().each(function(h,a){b=Math.max(b,d(a).outerWidth(!0))});z(b);return c};c.css=function(b){y().attr("class",b);return c};c.html=function(b){y();a.innerShiv&&(b=innerShiv(b,!1));return p.html(b)};c.append=function(b){y();b instanceof jQuery||(b=d(b));p.append(b);return c};var H=c.close=function(h){if(s){var a=function(){y().hide();d(k.body).removeClass("has-overlay");s=!1;p.html("");s=null;b.trigger("overlayClosed",[c])};null==h&&(h=300);h?b.fadeOut(h,a):a()}return c};c.title=
|
17 |
+
function(b){y();m=b||"";B.find("span.title").text(m);null!=b?g(!0):n||g(!1);return c};c.enableClose=function(){y();n=!0;h.unbind("click").bind("click",function(b){H();return!1});g(!0);h.show();return c};c.disableClose=function(){y();n=!1;h.hide();s&&m||g(!1);return c};c.open=function(){y();p.html("");z(v);b.attr("class","");d(k.body).addClass("has-overlay");y().show();s=!0;e();c.title(null);n&&g(!0);b.trigger("overlayOpened",[c]);return c};c.listen=function(b){y().bind("overlayClosed",b);return c};
|
18 |
+
c.unlisten=function(b){y().unbind("overlayClosed",b);return c};return c}({},u,D));t.register("$18",function(c,a,k){var f={401:"You've been logged out",404:"Not Found",500:"Server Error",502:"Bad Gateway",503:"Service unavailable",504:"Gateway timeout"};c.getErrors=function(){return f};c.jsonLink=function(a){if(!a)return"";a=a.split("?");a[0]=a[0].replace(/(\.[a-z0-9]{1,4})?$/i,".json");return a.join("?")};c.errorData=function(a,c,b){var q,p;b=a.responseText;c=a.status;if(!b&&0===c)return null;try{q=
|
19 |
+
d.parseJSON(b)||{}}catch(r){q={},p=f[a.status]||r.message||r}p||(p=q.statusText||a.statusText||f[c]||"Unknown Error");q.error=p;return q};c.ajax=function(e,g,b,q){function p(){b&&b()}function f(b){b.alert&&alert(b.alert);var c=b.success;c&&t.require("$22","growl.js").success.apply(this,c.push?c:[c]);c=q||d(k.body);c.trigger("locoAjaxSuccess",[b]);var e=b.events;if(e&&e.length)for(var m,g=t.require("$8","ga.js");m=e.shift();)c.trigger(m,[b]),g.event("ajax",m);b.modal&&t.require("$10","LocoModal.js").replace(b.modal);
|
20 |
+
if(b.download)a.location.assign(b.download);else if(b.redirect)return a.location.assign(b.redirect),!1;p();return!0}function B(b,a,e){401===b.status?(t.require("$22","growl.js").login(),p()):(a=c.errorData(b,a,e),null!=a&&(e=a.error,"function"===typeof g&&!1===g(null,e,b.status)?p():a&&a.data&&!f(a.data)||(alert(e||"Unknown error"),p())))}e.error=B;e.success=function(b,a,c){if(!b||"object"!==typeof b)return B(c,"unknown");b.status&&alert(b.statusText||"Unknown error");"function"===typeof g&&!1===
|
21 |
+
g(b&&b.data?b.data:b)?p():b&&b.data?f(b.data):p()};-1!==e.url.indexOf(".json")&&(e.dataType="json");d.ajax(e)};return c}({},u,D));t.register("$10",function(c,a,k){function f(b,a){g.autoSize();var c=g.init();t.require("$2","html.js").init(c);c.find("[data-script]").each(function(b,c){c=d(c);for(var e=-1,l,s=c.attr("data-script").split(" ");++e<s.length;)l=s[e],q[l]?q[l](c,a||{}):alert("Unknown script "+l)});c.trigger("locoModalLoaded",[g,b||"",a||{}]);var e,m=c.find("form")[0];if(m)a:for(c=0;c<m.elements.length;c++)switch(e=
|
22 |
+
m.elements[c],e.type){case "text":case "email":case "textarea":d(e).focus();break a}}function e(b){var a=d(b.currentTarget),c=a.attr("data-modal");if("close"===c){r();var e=a.attr("href");if(e&&-1!==e.indexOf("#!"))return!0}else{var q="submit"===b.type,f=a.attr("title")||a.attr("data-title"),e=a.attr("href")||a.attr("action"),w=q?a.serialize():"",a=q?a.attr("method"):"get";p(e,f,a,w);c||(c=e.split("/").slice(1,4).join("-"));c="modal "+c;g.width(null).css(c).autoSize()}b.stopPropagation();b.preventDefault();
|
23 |
+
return!1}var g=t.require("$19","overlay.js"),b=t.require("$8","ga.js"),q={},p=c.load=function(a,h,e,q){g.open().title("Loading ..").disableClose().css("modal").html('<div class="overlay-placeholder"></div>');var m=t.require("$18","http.js");e={type:e||"get",data:q||"",url:m.jsonLink(a)};m.ajax(e,function(c,e,q){var l=c&&c.html;if(!l)return c=d('<h3 class="error"></h3>').text(e||"Unknown error"),g.enableClose().title("Error "+q||"?").html("").append(c),!1;h=c.title||h||"Untitled";g.enableClose().title(h).html(l);
|
24 |
+
f(a,c.js);b.page(a,h);g.init().one("overlayClosed",function(){b.reset()});return!0});return c},r=c.close=function(){g.close();return c};c.initLink=function(b){b.click(e)};c.initForm=function(b){d(b).submit(e)};c.replace=function(b){var a=b&&b.html,c=b&&b.url,e=b&&b.title;c?(p(c,e),b=b&&b.css||c.split("/").slice(1,4).join("-"),g.width(null).css(" modal "+b).autoSize()):a&&(g.open().html(a),e&&g.enableClose().title(e),f("",b&&b.js))};c.find=function(b){return g.init().find(b)};c.script=function(b,a){if(a){if("function"!==
|
25 |
+
typeof a.run)throw Error(b+" macro has no run function");q[b]=a.run;return c}return q[b]};return c}({},u,D));t.register("$12",function(c,a,k){function f(b){b.stopPropagation();b.preventDefault();return!1}function e(b,a,c){if(c=c||b.getElement(a))c.unbind().mouseup(function(c){c.stopPropagation();b.selectIndex(a,!0);return!1}).mouseover(function(){d(this).addClass("over");b.hover=a;return!0}).mouseout(function(){d(this).removeClass("over");b.hover=-1;return!0}),c=null;return b}function g(b){if(b){var a=
|
26 |
+
this,c=b[0];a.id=c.id||"";a.name=c.name||"";a.prefix=c.getAttribute("data-prefix");a.defaultIcon=c.getAttribute("data-icon")||"jshide";var e=c.selectedIndex,g=[],h,s,n;for(s=0;s<c.options.length;s++)h=c.options[s],n=h.disabled,h=d(h),g.push([h.val(),h.text(),h.attr("data-icon")||"",n]);a.hidden=d('<input type="hidden" name="'+a.name+'" value="" />').appendTo(c.form);a.list=d('<ul class="clearfix"></ul>');a.icon=d('<span class="icon"> </span>');a.selection=d('<span class="label"></span>');a.handle=
|
27 |
+
d('<a class="handle" href="#"></a>').attr("tabindex",b.attr("tabindex")||"").append(a.icon).append(a.selection);a.wrapper=d("<div></div>").addClass(c.className).addClass("selector").append(a.handle).append(a.list).replaceAll(c);this.id&&a.wrapper.attr("id",this.id);for(a.clearOptions();h=g.shift();)a.addOption.apply(a,h);a.handle.click(function(b){b.preventDefault();return!1}).mouseover(function(b){return a.onRollover(b)}).mouseout(function(b){return a.onRollout(b)}).mousedown(function(b){return a.onPress(b)}).keydown(function(b){return a.onKeydown(b)});
|
28 |
+
d(k.body).mouseup(function(b){return a.onRelease(b)}).keydown(function(b){return a.onGlobalKeydown(b)});a.close();a.selectIndex(e)}}c.create=function(b){return new g(b)};c.extend=function(b){b.prototype=new g};a=g.prototype;a.onRollover=function(b){return this.over=!0};a.onRollout=function(b){this.over=!1;return!0};a.onPress=function(b){return this.active?this.over?(this.close(),b.stopPropagation(),b.preventDefault(),!1):!0:(this.open(),b.stopPropagation(),b.preventDefault(),this.handle.focus(),!1)};
|
29 |
a.onRelease=function(b){this.active&&!this.over&&this.close();return!0};a.onGlobalKeydown=function(b){if(this.active)switch(b.keyCode){case 27:return this.close(),f(b);case 40:return this.hoverNext(1),f(b);case 38:return this.hoverNext(-1),f(b);case 13:if(-1!=this.hover)return this.selectIndex(this.hover,!0),this.hoverItem(-1),this.close(),f(b)}return!0};a.onKeydown=function(b){return this.active||40!==b.keyCode?!0:(this.open(),f(b))};a.open=function(){this.active=!0;this.hover=-1;this.wrapper.addClass("active");
|
30 |
var b=this.handle.outerHeight()||0;this.list.show().css("top",b+"px");var b=this.handle.outerWidth()||0,a=this.list.outerWidth()||0;b>a&&(a-=this.list.width(),this.list.css("min-width",String(b-a)+"px"))};a.close=function(){this.list.hide();this.active=!1;-1!==this.hover&&(this.getElement(this.hover).removeClass("over"),this.hover=-1);this.wrapper.removeClass("active")};a.hoverItem=function(b,a){-1!==this.hover&&this.getElement(this.hover).removeClass("over");this.hover=b;-1!==b&&(a=a||this.getElement(b),
|
31 |
+
a.addClass("over"))};a.hoverNext=function(b){var a=this.options.length;if(a){a-=1;if(-1==this.hover)b=0<b?0:a;else{b=this.hover+b;if(0>b){this.close();return}b>a&&(b=0)}this.hoverItem(b)}};a.enableChange=function(b){this.eventName=b;this.eventData=[].slice.call(arguments,1);return this};a.clearOptions=function(){this.index={};this.length=0;this.options=[];this.list.html("");this.hidden.val("");this.idx=this.hover=-1;return this};a.addOption=function(b,a,c,g){var f=this.options.length,h=d("<span></span>").addClass(c||
|
32 |
+
"jshide"),s=d('<span class="label"></span>').text(a||b),h=d("<li></li>").append(h).append(s).appendTo(this.list);h.attr("data-option",f);this.options[f]={value:b,text:a,icon:c};this.index[b]=f;this.length=f+1;g?this.disableIndex(f):e(this,f,h);return f};a.disableOption=function(b){return this.disableIndex(this.index[b])};a.disableIndex=function(b){(b=this.getElement(b))&&b.addClass("disabled").unbind();return this};a.enableOption=function(b){return this.enableIndex(this.index[b])};a.enableIndex=function(b){return e(this,
|
33 |
b)};a.reIndex=function(){this.index={};this.length=0;for(var b=this.options.length;-1<--b;)this.index[this.options[b].value]=b,this.length++};a.selectValue=function(b,a){return this.selectIndex(this.index[b],a)};a.selectIndex=function(b,a){var c=this.options[b];c&&(this.hidden.val(c.value),b!==this.idx&&(this.idx=b,this.setLabel(c.text),this.icon.attr("class",c.icon||this.defaultIcon),a&&this.change()),this.active&&this.close());return this};a.setLabel=function(b){this.selection.text(b);this.prefix&&
|
34 |
+
this.selection.prepend(d('<span class="prefix"></span>').text(this.prefix))};a.val=function(){var b=this.options[this.idx];return b&&b.value};a.change=function(){var b=this.eventName||"change",a=this.eventData&&this.eventData.slice()||[];a.unshift(this.val());this.wrapper.trigger(b,a);return this};a.renameOption=function(b,a){var c=this.index[b],e=this.options[c];e&&(e.text=a,this.getElement(c).find("span.label").text(a),c===this.idx&&this.setLabel(a));return this};a.removeOption=function(b){var a=
|
35 |
+
this.index[b],c=this.options[a];c&&(b=this.val(),this.getElement(a).remove(),this.options.splice(a,1),this.reIndex(),b===c.value?this.selectIndex(0,!0):this.selectValue(b,!1))};a.getElement=function(b){return this.list.find("li").eq(b)};a=null;return c}({},u,D));t.register("$20",function(c,a,d){function f(b){e&&(b=g[b]||b);return b}var e=navigator.msPointerEnabled,g={touchstart:"MSPointerDown",touchmove:"MSPointerMove",touchend:"MSPointerUp"};c.bind=function(b,a,e){b=f(b);a.addEventListener&&a.addEventListener(b,
|
36 |
+
e,!1);return c};c.unbind=function(b,a,e){b=f(b);a.removeEventListener&&a.removeEventListener(b,e,!1);return c};return c}({},u,D));t.register("$13",function(c,a,k){function f(){q&&clearTimeout(q);q=null}function e(b){b.preventDefault();b.stopPropagation();return!1}var g,b,q,p=100,r=100,B=!1,h=!1,s;c.delays=function(b,a){p=b||0;r=a||0};c.kill=function(){b&&b.hide().stop().remove();b=null;g&&g.hide().html("")};c.text=function(a){b&&b.find("label.tip").text(a)};c.init=function(n){function m(){g||(g=d('<div id="tipholder"></div>').appendTo(k.body));
|
37 |
+
return g}function v(){f();y?q=setTimeout(w,y):w()}function w(){f();B||h||l()}function I(){f();b&&(b.stop(),b.remove());var a=n.offset();b=H.clone();m().show().append(b);var c=Math.round(a.left),a=Math.round(a.top);b.hasClass("tooltip-right")&&(c-=b.outerWidth(!1),c+=n.outerWidth(!1));a=b.hasClass("tooltip-top")?a-b.outerHeight():a+n.outerHeight();m().css("left",c+"px").css("top",a+"px");b.mouseenter(function(){B=!0;return!1}).mouseleave(function(){B=!1;v();return!0});Boolean(b.find("form").length|
|
38 |
+
b.find("a").length)||b.click(A);n.trigger("tooltipOpen",[b])}function l(){function a(){c.kill()}b?b.fadeOut(500,a):a();n.trigger("tooltipClose",[b])}function A(){!1!==n.triggerHandler("click")&&C&&(location.href=C);return!1}var y=Number(n.attr("data-hide-delay")||r),z=Number(n.attr("data-show-delay")||p),H=n.find("div.tooltip"),E=n.attr("title");if(!H.length){if(!E)return;H=d('<div class="tooltip"></div>').append(d('<label class="tip"></label>').text(E));n.hasClass("hastip-top")&&H.addClass("tooltip-top");
|
39 |
+
n.hasClass("hastip-right")&&H.addClass("tooltip-right");n.prepend(H)}E&&(n.attr("data-title")&&H.children("label.tip").text(E),n.attr("data-title",E),n.attr("title",""));var C=n.attr("href");"#"===C&&(C="");E=t.require("$20","touch.js").bind("touchstart",n[0],e).bind("touchmove",n[0],e).bind("touchend",n[0],function(b){setTimeout(A,300);return e(b)});null==s&&(s=!1,E.bind("touchstart",a,function(){return s=!0}).bind("touchend",a,function(){setTimeout(function(){s=!1},300);return!0}));n.mouseover(function(){s||
|
40 |
+
(h=!0,f(),b?I():z?q=setTimeout(I,z):I());return!0}).mouseout(function(){s||(h=!1,v());return!0});C&&n.click(function(){h=!1;l();return!0})};return c}({},u,D));t.register("$2",function(c,a,k){var f=a.ieVersion;c.ie=function(b){return b?f<=b:f};var e=c.init=function(b){b?b instanceof jQuery||(b=d(b)):b=d(k.body);var a=t.require("$8","ga.js"),g=t.require("$9","forms.js"),r=t.require("$10","LocoModal.js"),B=t.require("$11","LocoAutoComplete.js"),h=t.require("$12","LocoSelector.js"),s=t.require("$13",
|
41 |
+
"tooltip.js");b.find("form").each(function(b,a){var c=d(a);f&&10>f&&g.placeholders(c);a.getAttribute("data-modal")?r.initForm(a):a.action&&0!==a.action.indexOf("#")&&!a.target&&g.jsonify(a);c.hasClass("hasreveal")&&g.revealify(c);c.find("input.button").each(function(b,a){g.linkify(a)});c.find("input.auto-comp").each(function(b,a){B.init(a)});c.find("select.selector").each(function(b,a){h.create(d(a))})});b.find("a").each(function(b,h){-1!==h.className.indexOf("hastip")&&s.init(d(h));if(-1!==h.href.indexOf("/modal/")||
|
42 |
+
h.getAttribute("data-modal"))r.initLink(d(h));else{a.link(h);var g=h.getAttribute("data-ajax-target");g&&(g=d("#"+g),d(h).click(function(b){b.preventDefault();g.addClass("loading");d.get(h.href,function(b){b=c.$(b).replaceAll(g);e(b);b.trigger("locoAhah")});return!1}))}});g=r=B=b=null;return c};c.$=function(b){return d(a.innerShiv?innerShiv(b,!1):b)};d.fn._html=function(b){return null!=b?(b=this.html(a.innerShiv?innerShiv(b,!1):b),e(this),b):j.html()};d.fn.macro=function(b,a){if("function"!==typeof b.run)throw Error("macro has no run function");
|
43 |
+
b.run(this,a||{});return this};c.el=function(b,a){var c=k.createElement(b||"div");a&&(c.className=a);return c};c.txt=function(b){return k.createTextNode(b||"")};var g=c.plain=function(b,a){if("BR"===b.tagName)a.push("");else for(var c=-1,e=b.childNodes.length,d;++c<e;)d=b.childNodes[c],3===d.nodeType?a.push(d.nodeValue):1===d.nodeType?g(d,a):a.push("??")};return c}({},u,D));t.register("$6",function(c,a,k){var f=t.require("$2","html.js").ie()?["keyup","paste"]:["input"];c.listen=function(a,c){function b(){n[h?
|
44 |
+
"show":"hide"]()}function q(){a.value!==h&&(r&&clearTimeout(r),h=a.value,s&&a.setAttribute("size",h.length||1),b(),r=setTimeout(function(){c(h)},k))}function p(){q();return!0}a=a instanceof jQuery?a[0]:a;for(var r,k=150,h=a.value,s=1===Number(a.size),n=d('<a href="#clear" tabindex="-1" class="icon clear"><span>clear</span></a>').click(function(b){a.value="";q();return!1}),m=-1,v=d(a);++m<f.length;)v.bind(f[m],p);v.after(n);b();m=v=null;return{delay:function(b){k=b},ping:q,val:function(c){if(null==
|
45 |
+
c)return h;r&&clearTimeout(r);a.value=h=c;b()}}};return c}({},u,D));t.register("$4",function(c,a,d){function f(){var a,c;this.clear=function(){this.length=0;a={};c=[]};this.getTree=function(){return a};this.getData=function(){return c};this.clear()}c.create=function(){return new f};a=f.prototype;a.depth=0;a.matchall=!0;a.ignorecase=!0;a.nonword=/[\-.?!;:,_*^+=~`"'(){}<>[\]\/\\\u00a0\u1680\u180e\u2000-\u206f\u2e00-\u2e7f\u3000-\u303f]+/g;a.translit=function(a,c){function b(b){return a[b]||b}c=c||/[^a-z0-9]/g;
|
46 |
+
this.trans=function(a){return a.replace(c,b)}};a.stoppers=function(a){this.stopped=function(c){return Boolean(a[c])}};a.add=function(a,c){null==c&&(c=String(a));var b=-1,d,f,r,k,h,s=this.normalize(c);d=this.getData();var n=d.length;d.push(a);for(this.length++;++b<s.length;)if(d=s[b],!this.stopped(d)){f=this.getTree();r=Math.min(d.length,this.depth)||d.length;for(k=0;k<r;k++)h=d.charAt(k),f=f[h]||(f[h]={});d=f[" "]||(f[" "]=[]);d.push(n)}return this};a.find=function(a,c){function b(a,c){var h,e,d;
|
47 |
+
for(s in a)if(d=a[s]," "===s)for(h in d)n=d[h],e=m[n]||(m[n]={length:0,words:{}}),e.length+=e.words[c]?0:1,e.words[c]=1+(e.words[c]||0);else b(d,c)}var d=-1,f,r,k,h,s,n,m={},v=[],w=this.normalize(a),I=this.getData();a:for(;++d<w.length;){f=w[d];r=this.getTree();k=Math.min(f.length,this.depth)||f.length;for(h=0;h<k;h++){s=f.charAt(h);if(!r[s])continue a;r=r[s]}b(r,f)}for(n in m)this.matchall&&m[n].length<w.length||v.push(I[n]);c&&(c.query=a,c.words=w);return v};a.normalize=function(a){for(var c=-1,
|
48 |
+
b={},d=[],f=this.split(a);++c<f.length;)if(a=f[c])if(this.ignorecase&&(a=a.toLowerCase()),a=this.strip(a))this.trans&&(a=this.trans(a)),b[a]||(d.push(a),b[a]=!0);return d};a.stopped=function(a){return 1===a.length};a.split=function(a){return a.split(/\s+/)};a.strip=function(a){return a.replace(this.nonword,"")};a=null;return c}({},u,D));t.register("$11",function(c,a,k){function f(a){this.url="/auto/"+a+".json?q=";this.dead={}}function e(){this.dict=t.require("$4","dict.js").create()}c.init=function(a){function b(){if("hint"!==
|
49 |
+
E){var b=z.val()&&!(N&&N.val())&&null==A&&!w;ca[b?"addClass":"removeClass"]("error")}}function c(){L.show();var b=z.outerWidth(!1),a=z.outerHeight(!1),h=z.css("margin-top");h&&(h=parseInt(h),isNaN(h)||(a+=h));b-=2;L.css("top",a+"px").css("width",b+"px");w=!0}function p(){L.hide();w=!1}function r(){L.html("");p();v=0;y=A=null}function k(a){r();var l;for(l=0;l<a.length;l++){var e=l,n=a[l],y=d('<span class="label"></span>').text(n.label),g=d('<div class="auto-comp-result"></div>'),f=void 0;for(f in n)g.attr("data-"+
|
50 |
+
f,n[f]);n.icon&&g.append(d("<span></span>").attr("class",n.icon));g.append(y);h(e,g)}(v=a.length)?(I&&c(),s(0)):(s(null),b())}function h(b,a){L.append(a);a.click(function(c){c.stopPropagation();s(b,a);m();return!1});return a}function s(b,a){y&&(y.removeClass("selected"),y=null);A=null;null==b?N&&N.val(""):(a||(a=L.find("div.auto-comp-result").eq(b)),a.length&&(a.addClass("selected"),A=b,y=a))}function n(b){if(v){var a=v-1;null==A?b=0<b?0:a:(b=A+b,0>b?b=a:b>a&&(b=0));return s(b)}}function m(){if(null==
|
51 |
+
A)u.val(""),N&&N.val("");else{var a=L.find("div.auto-comp-result").eq(A),c=a.attr("data-value"),l=a.attr("data-label");N&&N.val(c);u.val(l);p();a=a.clone();r();h(0,a);v=1;s(0,a);b();a.trigger("locoAutocomp",[c,l,a])}}var v=0,w=!1,I=!1,l=a.form,A=null,y=null,z=d(a),H=z.attr("name"),E=z.attr("data-mode"),C=z.attr("data-provider"),N="hint"!==E&&d('<input type="hidden" value="" name="'+H+'" />').appendTo(l),ca=d('<div class="auto-comp-wrap"></div>').replaceAll(z),L=d('<div class="auto-comp-drop"></div>');
|
52 |
+
C&&(C=new f(C));N&&z.attr("name","_"+H);z.attr("autocomplete","off");ca.append(z).append(L);p();z.focus(function(b){I=!0;1<v&&c()}).blur(function(a){I=!1;b()}).keydown(function(b){function a(){b.preventDefault();b.stopPropagation();return!1}switch(b.keyCode){case 27:w&&(b.stopPropagation(),p(),z.blur());break;case 40:v&&(w?n(1):c());break;case 38:w&&n(-1);break;case 13:if(w)return m(),a();if(!A&&"hint"!==E)return a()}return!0});var u=t.require("$6","LocoTextListener.js").listen(z,function(b){C&&C.fetch(b,
|
53 |
+
k)});(l=z.attr("data-pre"))&&(l=d.parseJSON(l))&&l.value&&l.label?(k([l]),m()):!a.value||N&&N.val()||!C||C.fetch(a.value,function(b){k(b);m()});return{$:z,clear:r,reset:function(){r();z.val("");N&&N.val("");u.ping()},preload:function(b){v&&r();C=new e;var a,c;for(a in b)c=b[a],C.add(c)},mode:function(b){E=b}}};f.prototype.fetch=function(a,b){if(!a)return b&&b([]),this;var c,e=this.dead;for(c in e)if(0===a.indexOf(c))return b&&b([]),this;c={dataType:"json",url:this.url+encodeURIComponent(a)};t.require("$18",
|
54 |
+
"http.js").ajax(c,function(c){var d=c&&c.results;d&&(b&&c.query&&c.query===a&&b(c.results),d.length||(e[a]=0));return!0});return this};e.prototype.add=function(a){var b=a.fulltext||a.label||a.value;b&&this.dict.add(a,b)};e.prototype.fetch=function(a,b){if(!a)return b&&b([]),this;var c=this.dict.find(a);b(c)};return c}({},u,D));t.register("$9",function(c,a,k){function f(b){function a(){b.value===f&&(b.value="",e.removeClass("placeheld"));return!0}function c(){""===b.value&&(b.value=f,e.addClass("placeheld"));
|
55 |
+
return!0}var e=d(b);if(!e.hasClass("auto-comp")){var f=e.attr("placeholder");if(f)return e.focus(a).blur(c),c(),{kill:function(){a();e.unbind("focus",a).unbind("blur",c)}}}}var e=c.enable=function(b){function e(b,a){a.getAttribute("data-was-disabled")||(a.disabled=!1)}b.find(".button").removeClass("loading");b.find("input").each(e);b.find("select").each(e);b.find("textarea").each(e);a.attachEvent&&b.hasClass("has-placeholders")&&c.placeholders(b)},g=c.disable=function(b){function a(b,c){c.disabled?
|
56 |
+
c.setAttribute("data-was-disabled","true"):c.disabled=!0}b.find(".button").addClass("loading");b.find("input").each(a);b.find("select").each(a);b.find("textarea").each(a)};c.jsonify=function(b,c,f){b instanceof jQuery||(b=d(b));b.disable||(d.fn.disable=function(){g(this);return this},d.fn.enable=function(){e(this);this.placehold&&this.placehold();return this});var k="";b.find('[type="submit"]').click(function(a){a&&a.target&&a.target.name&&(k=encodeURIComponent(a.target.name)+"="+encodeURIComponent(a.target.value));
|
57 |
+
return!0});b.submit(function(h){if(h&&h.isDefaultPrevented&&h.isDefaultPrevented()||f&&!1===f(h))return!1;var e=a.tinyMCE;e&&b.find("textarea.editor").each(function(a,b){var c=e.get(b.id);c&&c.save()});var d=b.serialize();k&&(d&&(d+="&"),d+=k,k="");b.disable();var g=t.require("$18","http.js"),d={url:g.jsonLink(b.attr("action")),type:b.attr("method"),data:d};g.ajax(d,c,function(){b.enable()},b);h.preventDefault();h.stopPropagation();return!1});if(b.hasClass("autopost")){var B,h=Number(b.attr("data-autopost-delay")||
|
58 |
+
500);b.find('input[type="checkbox"]').change(function(){B&&clearTimeout(B);B=setTimeout(function(){b.submit()},h);return!0})}};c.revealify=function(a){a.find("div[data-reveal-if]").each(function(c,e){function f(a){var b;w=w||a.target;if("."===m)b=Boolean(w&&w[k]);else if("="===m){var c,h;b=d(w.form).serializeArray();for(h in b)b[h].name===n&&(c=b[h].value);b=k===c}if(b!==s)if(s=b,a)g[s?"slideDown":"slideUp"](200);else g[s?"show":"hide"]();return!0}var g=d(e),h=/^([_\w\-\[\]]+)(\.|=)(.+)$/.exec(g.attr("data-reveal-if"));
|
59 |
+
if(h){var s,n=h[1],m=h[2],k=h[3],h=a[0][n];h.length||(h=[h]);var w;for(c=0;c<h.length;c++)w=h[c],f(),d(w).change(f).removeClass("jshide");h=h=w=null}});a=null};c.linkify=function(a){var c=a.getAttribute("data-icon");if(c){var e=d(a),f=d("<a> </a>");f.attr("href",a.form.action);f.attr("class",e.attr("class"));f.attr("tabindex",e.attr("tabindex"));e.attr("tabindex","-1");f.text(e.val());c&&d("<span></span>").prependTo(f).addClass(c);e.hide().after(f);f.click(function(a){e.click();return!1})}};c.placeholders=
|
60 |
+
function(a){var c,e=[];a.find("input[placeholder]").each(function(a,b){"password"!==b.type&&(c=f(b))&&e.push(c)});e.length&&(a.submit(function(){for(var a in e)e[a].kill()}),a.addClass("has-placeholders"),c=i=null)};return c}({},u,D));t.register("$14",function(c,a,d){function f(a){this.reIndex([]);if(a)for(var c in a)this.add(c,a[c])}c.init=function(a){return new f(a)};a=f.prototype;a.reIndex=function(a){var c=-1;for(this.ords={};++c<a.length;)this.ords[a[c]]=c;this.keys=a;this.length=c};a.key=function(a,
|
61 |
+
c){if(null==c)return this.keys[a];var b=this.keys[a],d=this.ords[c];if(c!==b){if(null!=d)throw Error("Clash with item at ["+d+"]");this.keys[a]=c;delete this.ords[b];this.ords[c]=a}return a};a.indexOf=function(a){a=this.ords[a];return null==a?-1:a};a.add=function(a,c){var b=this.ords[a];null==b&&(this.keys[this.length]=a,b=this.ords[a]=this.length++);this[b]=c;return b};a.get=function(a){return this[this.ords[a]]};a.cut=function(a,c){var b=[].splice.call(this,a,c);this.keys.splice(a,c);this.reIndex(this.keys);
|
62 |
+
return b};a.each=function(a){for(var c=-1;++c<this.length;)a(this.keys[c],this[c],c);return this};a=null;return c}({},u,D));t.register("$3",function(c,a,d){function f(a){return{"Project-Id-Version":"PACKAGE VERSION","Report-Msgid-Bugs-To":"","POT-Creation-Date":a||"","POT-Revision-Date":a||"","PO-Revision-Date":a||"","Last-Translator":"","Language-Team":"",Language:"","Plural-Forms":"","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","X-Poedit-SourceCharset":"UTF-8"}}
|
63 |
+
function e(a,b){var c=a||"";b&&(c+="\x00"+b);return c}function g(){return t.require("$14","collection.js").init()}function b(a){return a.replace(/(["\\])/g,"\\$1").replace(/\n/g,"\\n")}function q(a){this.head={};this.headers(f(this.now()));this.locale(a);this.length=0;this.rows=g()}function p(a,b){this._id="";this.src=[a||""];this.msg=[b||""];this.xcmt=this.cmt=this.ref="";this.status=0}c.create=function(a){return new q(a)};var r=c.quote=function(a){if(!a)return'""';for(var c=a.split(/(?:\r\n|\n|\r)/g),
|
64 |
+
e=c.length-1,d=[],f=-1,g;++f<c.length;){a=c[f];for(e&&e!==f&&(a+="\n");a&&a.charAt(77);){for(g=77;--g;)if(-1!==" \n\r.?!,;:-".indexOf(a.charAt(g))){g++;break}g||(g=77);d.push(b(a.substr(0,g)));a=a.substr(g)}a&&d.push(b(a))}d[1]&&d.unshift("");return'"'+d.join('"\n"')+'"'},B=c.wrap=function(a,b,c){if(0!==c){null==c&&(c=79);for(var d=c+1,e=a.split(/(?:\r\n|\n|\r)/g),f=[],g=-1,l;++g<e.length;){for(a=e[g];a&&a.charAt(d);){for(l=c;--l;)if(-1!==" \n\r.?!,;:-".indexOf(a.charAt(l))){l++;break}l||(l=d);f.push(a.substr(0,
|
65 |
+
l));a=a.substr(l)}a&&f.push(a)}a=f}else a=a.split(/(?:\r\n|\n|\r)/g);return b+a.join("\n"+b)};a=q.prototype;a.now=function(){return(new Date).toString()};a.header=function(a,b){if(null==b)return this.headers()[a]||"";this.head[a]=b||"";return this};a.headers=function(a){var b;if(null!=a){for(b in a)this.head[b]=a[b];return this}var c=this.locale(),d=this.now();a={};for(b in this.head)a[b]=String(this.head[b]);c?(a.Language=c.label||"Unknown locale",a["Plural-Forms"]="nplurals="+(c.nplurals||"2")+
|
66 |
+
"; plural="+(c.pluraleq||"n!=1"),a["X-Loco-Target-Locale"]=(c.lang||"en")+"_"+(c.region||"GB"),a["PO-Revision-Date"]=d,delete a["POT-Revision-Date"]):(a.Language="",a["Plural-Forms"]="nplurals=INTEGER; plural=EXPRESSION",a["POT-Revision-Date"]=d,a["PO-Revision-Date"]="YEAR-MO-DA HO:MI+ZONE");a["X-Generator"]="Loco - https://localise.biz/";return a};a.locale=function(a){if(null==a)return this.loc;this.loc=a||{lang:"en",region:"GB",plurals:["one","other"],pluraleg:[1,0],nplurals:2,pluraleq:"n == 1 ? 0 : 1",
|
67 |
+
label:"English"};this.loc.toString=function(){return this.lang+"_"+this.region};return this};a.lock=function(a){this.locale(a||!1);return this.loc};a.unlock=function(){var a=this.loc;this.loc=null;return a};a.reIndex=function(a,b){var c=this.indexOf(a),d=a.hash(),e=this.rows.indexOf(d);return e===c?c:-1!==e?(b=(b||0)+1,a.source("Error, duplicate "+String(b)+": "+a.source()),this.reIndex(a,b)):this.rows.key(c,d)};a.get=function(a,b){var c=e(a,b);return this.rows.get(c)};a.indexOf=function(a){null==
|
68 |
+
a.idx&&(a.idx=this.rows.indexOf(a.hash()));return a.idx};a.del=function(a){a=this.indexOf(a);if(-1!==a){var b=this.rows.cut(a,1);if(b&&b.length)return this.length=this.rows.length,this.rows.each(function(a,b,c){b.idx=c}),a}};a.add=function(a,b){a instanceof p||(a=new p(a));b&&a.context(b);var c=a.hash();if(this.rows.get(c))throw Error("Duplicate message at index "+this.indexOf(a));a.idx=this.rows.add(c,a);this.length=this.rows.length;return a};a.each=function(a){this.rows.each(a);return this};a.load=
|
69 |
+
function(a){for(var b=-1,c,d,e,f,g=[],l=[],A=[],y=[];++b<a.length;)if(c=a[b],null==c.parent){if(d=c.source||c.id,e=c.context,d||e)f=new p(d,c.target||""),f._id=c._id,e&&f.context(e),c.flag&&f.flag(c.flag,!0),c.comment&&f.comment(c.comment),c.notes&&f.notes(c.notes),c.refs&&f.refs(c.refs),null!==c.format&&f.format(c.format),c.message=f,f.translation()?f.fuzzy()?A.push(f):l.push(f):y.push(f)}else g.push(c);for(b=-1;++b<g.length;)try{c=g[b];d=c.source||c.id;f=a[c.parent]&&a[c.parent].message;if(!f)throw Error("parent missing for plural "+
|
70 |
+
d);1===c.plural&&f.plural(d);f.translate(c.target||"",c.plural)}catch(z){}d=[y,A,l];for(b=0;3>b;b++)for(c=d[b],a=-1;++a<c.length;)try{this.add(c[a])}catch(k){}return this};a.merge=function(a){var b,c=this.rows,d=g(),e={add:[],del:[]};a=a.rows;this.rows.each(function(b,c){a.get(b)||e.del.push(c)});a.each(function(a,f){try{(b=c.get(a))?(b.ref=f.ref,b.fmt=f.fmt):(b=f,e.add.push(b)),b.idx=d.add(a,b)}catch(l){}});this.rows=d;this.length=d.length;return e};a.row=function(a){return this.rows[a]};a.toString=
|
71 |
+
function(){var a,b=[],c=[],d=this.headers(),e=!this.loc;for(a in d)c.push(a+": "+d[a]);c=new p("",c.join("\n"));e&&(c.comment("Loco Gettext template"),c.fuzzy(!0));b.push(c.toString());b.push("");this.rows.each(function(a,c){a&&(b.push(c.toString(e)),b.push(""))});return b.join("\n")};a=p.prototype;a.hash=function(){return e(this.source(),this.context())};a.flag=function(a,b){var c=a===(a&this.status);if(null==b)return c;b?this.status|=a:c&&(this.status^=a);return this};a.fuzzy=function(a){return this.flag(4,
|
72 |
+
a)};a.source=function(a,b){if(null==a)return this.src[0];this.src[0]=a;this.plural(b);return this};a.plural=function(a){if(null==a)return this.src[1];this.src[1]=a||"";return this};a.each=function(a){for(var b=-1;++b<this.msg.length;)a(b,this.msg[b]);return this};a.translate=function(a,b){this.msg[b||0]=a||"";return this};a.translation=function(a){return this.msg[a||0]||""};a.comment=function(a){if(null==a)return this.cmt;this.cmt=a||"";return this};a.notes=function(a){if(null==a)return this.xcmt;
|
73 |
+
this.xcmt=a||"";return this};a.refs=function(a){if(null==a)return this.ref;this.ref=a||"";return this};a.format=function(a){if(null==a)return this.fmt;this.fmt=a;return this};a.context=function(a){if(null==a)return this.src[2]||"";this.src[2]=a||"";return this};a.toString=function(a){var b,c=[];this.cmt&&c.push(B(this.cmt,"# ",0));this.xcmt&&c.push(B(this.xcmt,"#. ",0));b=this.ref;this._id&&(b+=(b?" ":"")+"loco:"+this._id);b&&/\S/.test(b)&&c.push(B(b,"#: ",79));!a&&this.fuzzy()&&c.push("#, fuzzy");
|
74 |
+
this.fmt?c.push("#, "+this.fmt+"-format"):null!=this.fmt&&c.push("#, no-c-format");this.src[2]&&c.push("msgctxt "+r(this.src[2]));c.push("msgid "+r(this.src[0]));if(null==this.src[1])c.push("msgstr "+r(a?"":this.msg[0]));else for(b=-1,c.push("msgid_plural "+r(this.src[1]));++b<this.msg.length;)c.push("msgstr["+b+"] "+r(a?"":this.msg[b]));return c.join("\n")};a.toText=function(){return this.src.join(" ")+" "+this.msg.join(" ")};a.weight=function(){var a=0;this.translation()||(a+=2);this.fuzzy()&&(a+=
|
75 |
+
1);return a};a.compare=function(a,b){var c=this.weight(),d=a.weight();if(c>d)return 1;if(c<d)return-1;if(b){c=this.hash().toLowerCase();d=a.hash().toLowerCase();if(c<d)return 1;if(c>d)return-1}return 0};a.equals=function(a){return this===a||this.source()===a.source()&&this.context()===a.context()};a=a=null;return c}({},u,D));t.register("$5",{"\u0131":"i","\u03b1":"a","\u03b2":"b","\u03c8":"c","\u03b4":"d","\u03b5":"e","\u03c6":"f","\u03b3":"g","\u03b7":"h","\u03b9":"i","\u03be":"j","\u03ba":"k","\u03bb":"l",
|
76 |
+
"\u03bc":"m","\u03bd":"n","\u03bf":"o","\u03c0":"p","\u03c1":"r","\u03c3":"s","\u03c4":"t","\u03b8":"u","\u03c9":"v","\u03c2":"s","\u03c7":"x","\u03c5":"y","\u03b6":"z","\u0444":"a","\u0438":"b","\u0441":"c","\u0432":"d","\u0443":"e","\u0430":"f","\u043f":"g","\u0440":"h","\u0448":"i","\u043e":"j","\u043b":"k","\u0434":"l","\u044c":"m","\u0442":"n","\u0449":"o","\u0437":"p","\u0439":"\ua647","\u043a":"r","\u044b":"s","\u0435":"t","\u0433":"u","\u043c":"v","\u0446":"w","\u0447":"x","\u043d":"y","\u044f":"z",
|
77 |
+
"\u00aa":"a","\u00e1":"a","\u00e0":"a","\u0103":"a","\u1eaf":"a","\u1eb1":"a","\u1eb5":"a","\u1eb3":"a","\u00e2":"a","\u1ea5":"a","\u1ea7":"a","\u1eab":"a","\u1ea9":"a","\u01ce":"a","\u00e5":"a","\u01fb":"a","\u00e4":"a","\u01df":"a","\u00e3":"a","\u0227":"a","\u01e1":"a","\u0105":"a","\u0101":"a","\u1ea3":"a","\u0201":"a","\u0203":"a","\u1ea1":"a","\u1eb7":"a","\u1ead":"a","\u1e01":"a","\ua733":"a","\u00e6":"a","\u01fd":"a","\u01e3":"a","\ua735":"a","\ua737":"a","\ua739":"a","\ua73b":"a","\ua73d":"a",
|
78 |
+
"\u1e9a":"a","\u2c65":"\u2c65","\u1e03":"b","\u1e05":"b","\u1e07":"b","\u0180":"\u0180","\u0183":"\u0183","\u0107":"c","\u0109":"c","\u010d":"c","\u010b":"c","\u00e7":"c","\u1e09":"c","\u023c":"\u023c","\ua792":"\ua793","\u0188":"\u0188","\ua73f":"\ua73f","\u010f":"d","\u1e0b":"d","\u1e11":"d","\u1e0d":"d","\u1e13":"d","\u1e0f":"d","\u0111":"d","\u00f0":"d","\ua77a":"d","\u0238":"d","\u01f3":"d","\u01f2":"d","\u01c6":"d","\u01c5":"d","\u018c":"\u018c","\u00e9":"e","\u00e8":"e","\u0115":"e","\u00ea":"e",
|
79 |
+
"\u1ebf":"e","\u1ec1":"e","\u1ec5":"e","\u1ec3":"e","\u011b":"e","\u00eb":"e","\u1ebd":"e","\u0117":"e","\u0229":"e","\u1e1d":"e","\u0119":"e","\u0113":"e","\u1e17":"e","\u1e15":"e","\u1ebb":"e","\u0205":"e","\u0207":"e","\u1eb9":"e","\u1ec7":"e","\u1e19":"e","\u1e1b":"e","\u0247":"\u0247","\u01dd":"\u01dd","\u1e1f":"f","\ua77c":"f","\u0192":"\u0192","\u01f5":"g","\u011f":"g","\u011d":"g","\u01e7":"g","\u0121":"g","\u0123":"g","\u1e21":"g","\ua7a1":"g","\u01e5":"\u01e5","\ua77f":"\ua77f","\u01a3":"\u01a3",
|
80 |
+
"\u0125":"h","\u021f":"h","\u1e27":"h","\u1e23":"h","\u1e29":"h","\u1e25":"h","\u1e2b":"h","\u1e96":"h","\u0127":"h","\ua7f8":"h","\u0195":"\u0195","\u2c68":"\u2c68","\u2c76":"\u2c76","\ua727":"\ua727","\u00ed":"i","\u00ec":"i","\u012d":"i","\u00ee":"i","\u01d0":"i","\u00ef":"i","\u1e2f":"i","\u0129":"i","\u012f":"i","\u012b":"i","\u1ec9":"i","\u0209":"i","\u020b":"i","\u1ecb":"i","\u1e2d":"i","\u0133":"i","\ud835\udea4":"i","\u2c7c":"j","\u0135":"j","\u01f0":"j","\u0249":"\u0249","\u1e31":"k","\u01e9":"k",
|
81 |
+
"\u0137":"k","\ua7a3":"k","\u1e33":"k","\u1e35":"k","\u0199":"\u0199","\u2c6a":"\u2c6a","\ua741":"\ua741","\ua743":"\ua743","\ua745":"\ua745","\u013a":"l","\u013e":"l","\u013c":"l","\u1e37":"l","\u1e39":"l","\u1e3d":"l","\u1e3b":"l","\u0142":"l","\u0140":"l","\u01c9":"l","\u01c8":"l","\u1efb":"l","\ua747":"\ua747","\ua749":"\ua749","\u019a":"\u019a","\u2c61":"\u2c61","\ua781":"\ua781","\u1e3f":"m","\u1e41":"m","\u1e43":"m","\u0144":"n","\u01f9":"n","\u0148":"n","\u00f1":"n","\u1e45":"n","\u0146":"n",
|
82 |
+
"\ua7a5":"n","\u1e47":"n","\u1e4b":"n","\u1e49":"n","\u01cc":"n","\u01cb":"n","\u019e":"\u019e","\ua791":"\ua791","\u014b":"\u014b","\u00ba":"o","\u00f3":"o","\u00f2":"o","\u014f":"o","\u00f4":"o","\u1ed1":"o","\u1ed3":"o","\u1ed7":"o","\u1ed5":"o","\u01d2":"o","\u00f6":"o","\u022b":"o","\u0151":"o","\u00f5":"o","\u1e4d":"o","\u1e4f":"o","\u022d":"o","\u022f":"o","\u0231":"o","\u00f8":"o","\u01ff":"o","\u01eb":"o","\u01ed":"o","\u014d":"o","\u1e53":"o","\u1e51":"o","\u1ecf":"o","\u020d":"o","\u020f":"o",
|
83 |
+
"\u01a1":"o","\u1edb":"o","\u1edd":"o","\u1ee1":"o","\u1edf":"o","\u1ee3":"o","\u1ecd":"o","\u1ed9":"o","\u0153":"o","\ua7f9":"o","\ua74f":"o","\ua74d":"\ua74d","\ua74b":"\ua74b","\u0223":"\u0223","\u1e55":"p","\u1e57":"p","\ua751":"\ua751","\u01a5":"\u01a5","\ua753":"\ua753","\ua755":"\ua755","\u0239":"q","\ua757":"\ua757","\ua759":"\ua759","\u024b":"\u024b","\u0155":"r","\u0159":"r","\u1e59":"r","\u0157":"r","\ua7a7":"r","\u0211":"r","\u0213":"r","\u1e5b":"r","\u1e5d":"r","\u1e5f":"r","\ua783":"r",
|
84 |
+
"\ua75b":"\ua75b","\u024d":"\u024d","\ua75d":"\ua75d","\u015b":"s","\u1e65":"s","\u015d":"s","\u0161":"s","\u1e67":"s","\u1e61":"s","\u015f":"s","\ua7a9":"s","\u1e63":"s","\u1e69":"s","\u0219":"s","\u017f":"s","\ua785":"s","\u1e9b":"s","\u00df":"s","\u023f":"\u023f","\u0165":"t","\u1e97":"t","\u1e6b":"t","\u0163":"t","\u1e6d":"t","\u021b":"t","\u1e71":"t","\u1e6f":"t","\ua787":"t","\u01be":"t","\ua729":"t","\u0167":"\u0167","\u2c66":"\u2c66","\u01ad":"\u01ad","\u00fa":"u","\u00f9":"u","\u016d":"u",
|
85 |
+
"\u00fb":"u","\u01d4":"u","\u016f":"u","\u00fc":"u","\u01d8":"u","\u01dc":"u","\u01da":"u","\u01d6":"u","\u0171":"u","\u0169":"u","\u1e79":"u","\u0173":"u","\u016b":"u","\u1e7b":"u","\u1ee7":"u","\u0215":"u","\u0217":"u","\u01b0":"u","\u1ee9":"u","\u1eeb":"u","\u1eef":"u","\u1eed":"u","\u1ef1":"u","\u1ee5":"u","\u1e73":"u","\u1e77":"u","\u1e75":"u","\u2c7d":"v","\u1e7d":"v","\u1e7f":"v","\ua761":"v","\ua75f":"\ua75f","\u1efd":"\u1efd","\u1e83":"w","\u1e81":"w","\u0175":"w","\u1e98":"w","\u1e85":"w",
|
86 |
+
"\u1e87":"w","\u1e89":"w","\u2c73":"\u2c73","\u1e8d":"x","\u1e8b":"x","\u00fd":"y","\u1ef3":"y","\u0177":"y","\u1e99":"y","\u00ff":"y","\u1ef9":"y","\u1e8f":"y","\u0233":"y","\u1ef7":"y","\u1ef5":"y","\u024f":"\u024f","\u01b4":"\u01b4","\u1eff":"\u1eff","\u021d":"\u021d","\u017a":"z","\u1e91":"z","\u017e":"z","\u017c":"z","\u1e93":"z","\u1e95":"z","\u018d":"z","\u01b6":"\u01b6","\u0225":"\u0225","\u0240":"\u0240","\u2c6c":"\u2c6c","\ua763":"\ua763","\u01b9":"\u01b9","\u00fe":"\u00fe","\ua765":"\ua765",
|
87 |
+
"\ua767":"\ua767","\u01bf":"\u01bf","\ua769":"\ua769","\ua76b":"\ua76b","\ua76d":"\ua76d","\ua76f":"\ua76f","\ua770":"\ua76f","\ua72b":"\ua72b","\ua72d":"\ua72d","\ua72f":"\ua72f","\u01a8":"\u01a8","\u01bd":"\u01bd","\u0185":"\u0185","\u0242":"\u0242","\ua723":"\ua723","\ua78c":"\ua78c","\ua725":"\ua725","\ud835\udec2":"a","\ud835\udefc":"a","\ud835\udf36":"a","\ud835\udf70":"a","\ud835\udfaa":"a","\ud835\udea8":"a","\ud835\udee2":"a","\ud835\udf1c":"a","\ud835\udf56":"a","\ud835\udf90":"a","\u1f00":"a",
|
88 |
+
"\u1f04":"a","\u1f84":"a","\u1f8c":"a","\u1f02":"a","\u1f82":"a","\u1f8a":"a","\u1f06":"a","\u1f86":"a","\u1f8e":"a","\u1f80":"a","\u1f88":"a","\u1f01":"a","\u1f05":"a","\u1f85":"a","\u1f8d":"a","\u1f03":"a","\u1f83":"a","\u1f8b":"a","\u1f07":"a","\u1f87":"a","\u1f8f":"a","\u1f81":"a","\u1f89":"a","\u03ac":"a","\u1f71":"a","\u1fb4":"a","\u1f70":"a","\u1fb2":"a","\u1fb0":"a","\u1fb6":"a","\u1fb7":"a","\u1fb1":"a","\u1fb3":"a","\u1fbc":"a","\u03d0":"b","\ud835\udec3":"b","\ud835\udefd":"b","\ud835\udf37":"b",
|
89 |
+
"\ud835\udf71":"b","\ud835\udfab":"b","\ud835\udea9":"b","\ud835\udee3":"b","\ud835\udf1d":"b","\ud835\udf57":"b","\ud835\udf91":"b","\u1d5d":"b","\u1d66":"b","\u213d":"g","\ud835\udec4":"g","\ud835\udefe":"g","\ud835\udf38":"g","\ud835\udf72":"g","\ud835\udfac":"g","\u213e":"g","\ud835\udeaa":"g","\ud835\udee4":"g","\ud835\udf1e":"g","\ud835\udf58":"g","\ud835\udf92":"g","\u1d5e":"g","\u1d67":"g","\ud835\udec5":"d","\ud835\udeff":"d","\ud835\udf39":"d","\ud835\udf73":"d","\ud835\udfad":"d","\ud835\udeab":"d",
|
90 |
+
"\ud835\udee5":"d","\ud835\udf1f":"d","\ud835\udf59":"d","\ud835\udf93":"d","\u1d5f":"d","\u03f5":"e","\ud835\udec6":"e","\ud835\udedc":"e","\ud835\udf00":"e","\ud835\udf16":"e","\ud835\udf3a":"e","\ud835\udf50":"e","\ud835\udf74":"e","\ud835\udf8a":"e","\ud835\udfae":"e","\ud835\udfc4":"e","\ud835\udeac":"e","\ud835\udee6":"e","\ud835\udf20":"e","\ud835\udf5a":"e","\ud835\udf94":"e","\u1f10":"e","\u1f14":"e","\u1f12":"e","\u1f11":"e","\u1f15":"e","\u1f13":"e","\u03ad":"e","\u1f73":"e","\u1f72":"e",
|
91 |
+
"\u03dd":"\u03dd","\u0377":"\u0377","\u03db":"\u03db","\ud835\udec7":"z","\ud835\udf01":"z","\ud835\udf3b":"z","\ud835\udf75":"z","\ud835\udfaf":"z","\ud835\udead":"z","\ud835\udee7":"z","\ud835\udf21":"z","\ud835\udf5b":"z","\ud835\udf95":"z","\u0371":"\u0371","\ud835\udec8":"h","\ud835\udf02":"h","\ud835\udf3c":"h","\ud835\udf76":"h","\ud835\udfb0":"h","\ud835\udeae":"h","\ud835\udee8":"h","\ud835\udf22":"h","\ud835\udf5c":"h","\ud835\udf96":"h","\u1f20":"h","\u1f24":"h","\u1f94":"h","\u1f9c":"h",
|
92 |
+
"\u1f22":"h","\u1f92":"h","\u1f9a":"h","\u1f26":"h","\u1f96":"h","\u1f9e":"h","\u1f90":"h","\u1f98":"h","\u1f21":"h","\u1f25":"h","\u1f95":"h","\u1f9d":"h","\u1f23":"h","\u1f93":"h","\u1f9b":"h","\u1f27":"h","\u1f97":"h","\u1f9f":"h","\u1f91":"h","\u1f99":"h","\u03ae":"h","\u1f75":"h","\u1fc4":"h","\u1f74":"h","\u1fc2":"h","\u1fc6":"h","\u1fc7":"h","\u1fc3":"h","\u1fcc":"h","\u03d1":"u","\ud835\udec9":"u","\ud835\udedd":"u","\ud835\udf03":"u","\ud835\udf17":"u","\ud835\udf3d":"u","\ud835\udf51":"u",
|
93 |
+
"\ud835\udf77":"u","\ud835\udf8b":"u","\ud835\udfb1":"u","\ud835\udfc5":"u","\ud835\udeaf":"u","\ud835\udeb9":"u","\ud835\udee9":"u","\ud835\udef3":"u","\ud835\udf23":"u","\ud835\udf2d":"u","\ud835\udf5d":"u","\ud835\udf67":"u","\ud835\udf97":"u","\ud835\udfa1":"u","\u1dbf":"u","\u1fbe":"i","\u037a":"i","\ud835\udeca":"i","\ud835\udf04":"i","\ud835\udf3e":"i","\ud835\udf78":"i","\ud835\udfb2":"i","\ud835\udeb0":"i","\ud835\udeea":"i","\ud835\udf24":"i","\ud835\udf5e":"i","\ud835\udf98":"i","\u1f30":"i",
|
94 |
+
"\u1f34":"i","\u1f32":"i","\u1f36":"i","\u1f31":"i","\u1f35":"i","\u1f33":"i","\u1f37":"i","\u03af":"i","\u1f77":"i","\u1f76":"i","\u1fd0":"i","\u1fd6":"i","\u03ca":"i","\u0390":"i","\u1fd3":"i","\u1fd2":"i","\u1fd7":"i","\u1fd1":"i","\u03f0":"k","\ud835\udecb":"k","\ud835\udede":"k","\ud835\udf05":"k","\ud835\udf18":"k","\ud835\udf3f":"k","\ud835\udf52":"k","\ud835\udf79":"k","\ud835\udf8c":"k","\ud835\udfb3":"k","\ud835\udfc6":"k","\ud835\udeb1":"k","\ud835\udeeb":"k","\ud835\udf25":"k","\ud835\udf5f":"k",
|
95 |
+
"\ud835\udf99":"k","\u03d7":"k","\ud835\udecc":"l","\ud835\udf06":"l","\ud835\udf40":"l","\ud835\udf7a":"l","\ud835\udfb4":"l","\ud835\udeb2":"l","\ud835\udeec":"l","\ud835\udf26":"l","\ud835\udf60":"l","\ud835\udf9a":"l","\u00b5":"m","\ud835\udecd":"m","\ud835\udf07":"m","\ud835\udf41":"m","\ud835\udf7b":"m","\ud835\udfb5":"m","\ud835\udeb3":"m","\ud835\udeed":"m","\ud835\udf27":"m","\ud835\udf61":"m","\ud835\udf9b":"m","\u3382":"m","\u338c":"m","\u338d":"m","\u3395":"m","\u339b":"m","\u33b2":"m",
|
96 |
+
"\u33b6":"m","\u33bc":"m","\ud835\udece":"n","\ud835\udf08":"n","\ud835\udf42":"n","\ud835\udf7c":"n","\ud835\udfb6":"n","\ud835\udeb4":"n","\ud835\udeee":"n","\ud835\udf28":"n","\ud835\udf62":"n","\ud835\udf9c":"n","\ud835\udecf":"j","\ud835\udf09":"j","\ud835\udf43":"j","\ud835\udf7d":"j","\ud835\udfb7":"j","\ud835\udeb5":"j","\ud835\udeef":"j","\ud835\udf29":"j","\ud835\udf63":"j","\ud835\udf9d":"j","\ud835\uded0":"o","\ud835\udf0a":"o","\ud835\udf44":"o","\ud835\udf7e":"o","\ud835\udfb8":"o",
|
97 |
+
"\ud835\udeb6":"o","\ud835\udef0":"o","\ud835\udf2a":"o","\ud835\udf64":"o","\ud835\udf9e":"o","\u1f40":"o","\u1f44":"o","\u1f42":"o","\u1f41":"o","\u1f45":"o","\u1f43":"o","\u03cc":"o","\u1f79":"o","\u1f78":"o","\u03d6":"p","\u213c":"p","\ud835\uded1":"p","\ud835\udee1":"p","\ud835\udf0b":"p","\ud835\udf1b":"p","\ud835\udf45":"p","\ud835\udf55":"p","\ud835\udf7f":"p","\ud835\udf8f":"p","\ud835\udfb9":"p","\ud835\udfc9":"p","\u213f":"p","\ud835\udeb7":"p","\ud835\udef1":"p","\ud835\udf2b":"p","\ud835\udf65":"p",
|
98 |
+
"\ud835\udf9f":"p","\u03fb":"\u03fb","\u03df":"\u03df","\u03d9":"\u03d9","\u03f1":"r","\ud835\uded2":"r","\ud835\udee0":"r","\ud835\udf0c":"r","\ud835\udf1a":"r","\ud835\udf46":"r","\ud835\udf54":"r","\ud835\udf80":"r","\ud835\udf8e":"r","\ud835\udfba":"r","\ud835\udfc8":"r","\ud835\udeb8":"r","\ud835\udef2":"r","\ud835\udf2c":"r","\ud835\udf66":"r","\ud835\udfa0":"r","\u1d68":"r","\u1fe4":"r","\u1fe5":"r","\u03f2":"s","\ud835\uded3":"s","\ud835\uded4":"s","\ud835\udf0d":"s","\ud835\udf0e":"s","\ud835\udf47":"s",
|
99 |
+
"\ud835\udf48":"s","\ud835\udf81":"s","\ud835\udf82":"s","\ud835\udfbb":"s","\ud835\udfbc":"s","\ud835\udeba":"s","\ud835\udef4":"s","\ud835\udf2e":"s","\ud835\udf68":"s","\ud835\udfa2":"s","\u037c":"\u037c","\u037b":"\u037b","\u037d":"\u037d","\ud835\uded5":"t","\ud835\udf0f":"t","\ud835\udf49":"t","\ud835\udf83":"t","\ud835\udfbd":"t","\ud835\udebb":"t","\ud835\udef5":"t","\ud835\udf2f":"t","\ud835\udf69":"t","\ud835\udfa3":"t","\ud835\uded6":"y","\ud835\udf10":"y","\ud835\udf4a":"y","\ud835\udf84":"y",
|
100 |
+
"\ud835\udfbe":"y","\u03d2":"y","\ud835\udebc":"y","\ud835\udef6":"y","\ud835\udf30":"y","\ud835\udf6a":"y","\ud835\udfa4":"y","\u1f50":"y","\u1f54":"y","\u1f52":"y","\u1f56":"y","\u1f51":"y","\u1f55":"y","\u1f53":"y","\u1f57":"y","\u03cd":"y","\u1f7b":"y","\u03d3":"y","\u1f7a":"y","\u1fe0":"y","\u1fe6":"y","\u03cb":"y","\u03d4":"y","\u03b0":"y","\u1fe3":"y","\u1fe2":"y","\u1fe7":"y","\u1fe1":"y","\u03d5":"f","\ud835\uded7":"f","\ud835\udedf":"f","\ud835\udf11":"f","\ud835\udf19":"f","\ud835\udf4b":"f",
|
101 |
+
"\ud835\udf53":"f","\ud835\udf85":"f","\ud835\udf8d":"f","\ud835\udfbf":"f","\ud835\udfc7":"f","\ud835\udebd":"f","\ud835\udef7":"f","\ud835\udf31":"f","\ud835\udf6b":"f","\ud835\udfa5":"f","\u1d60":"f","\u1d69":"f","\ud835\uded8":"x","\ud835\udf12":"x","\ud835\udf4c":"x","\ud835\udf86":"x","\ud835\udfc0":"x","\ud835\udebe":"x","\ud835\udef8":"x","\ud835\udf32":"x","\ud835\udf6c":"x","\ud835\udfa6":"x","\u1d61":"x","\u1d6a":"x","\ud835\uded9":"c","\ud835\udf13":"c","\ud835\udf4d":"c","\ud835\udf87":"c",
|
102 |
+
"\ud835\udfc1":"c","\ud835\udebf":"c","\ud835\udef9":"c","\ud835\udf33":"c","\ud835\udf6d":"c","\ud835\udfa7":"c","\ud835\udeda":"v","\ud835\udf14":"v","\ud835\udf4e":"v","\ud835\udf88":"v","\ud835\udfc2":"v","\ud835\udec0":"v","\ud835\udefa":"v","\ud835\udf34":"v","\ud835\udf6e":"v","\ud835\udfa8":"v","\u1f60":"v","\u1f64":"v","\u1fa4":"v","\u1fac":"v","\u1f62":"v","\u1fa2":"v","\u1faa":"v","\u1f66":"v","\u1fa6":"v","\u1fae":"v","\u1fa0":"v","\u1fa8":"v","\u1f61":"v","\u1f65":"v","\u1fa5":"v","\u1fad":"v",
|
103 |
+
"\u1f63":"v","\u1fa3":"v","\u1fab":"v","\u1f67":"v","\u1fa7":"v","\u1faf":"v","\u1fa1":"v","\u1fa9":"v","\u03ce":"v","\u1f7d":"v","\u1ff4":"v","\u1f7c":"v","\u1ff2":"v","\u1ff6":"v","\u1ff7":"v","\u1ff3":"v","\u1ffc":"v","\u03e1":"\u03e1","\u0373":"\u0373","\u03f8":"\u03f8","\u2df6":"f","\u04d1":"f","\u04d3":"f","\u04d9":"\u04d9","\u04db":"\u04d9","\u04d5":"\u04d5","\u2de0":"\u0431","\u0431":"\u0431","\u2de1":"d","\u2de2":"u","\u0491":"u","\u0493":"\u0493","\u04fb":"\u04fb","\u0495":"\u0495","\u04f7":"\u04f7",
|
104 |
+
"\u2de3":"l","\u0501":"\u0501","\ua681":"\ua681","\u0452":"\u0452","\ua663":"\ua663","\u0503":"\u0503","\u0453":"\u0503","\u0499":"\u0499","\u2df7":"t","\u0450":"t","\u0451":"t","\u04d7":"t","\ua674":"\u0454","\u0454":"\u0454","\u2de4":"\u0436","\u0436":"\u0436","\u04c2":"\u0436","\ua685":"\ua685","\u04dd":"\ua685","\u0497":"\u0497","\u2de5":"p","\ua641":"\ua641","\u0505":"\u0505","\u0511":"\u0511","\u04df":"\u0511","\ua643":"\ua643","\u0455":"\u0455","\ua645":"\ua645","\u04e1":"\u04e1","\ua689":"\ua689",
|
105 |
+
"\u0507":"\u0507","\ua683":"\ua683","\ua675":"b","\u045d":"b","\u04e3":"b","\u048b":"\u048b","\u04e5":"\u048b","\u0456":"\u0456","\ua647":"\ua647","\u0457":"\ua647","\ua676":"\ua647","\u0458":"\u0458","\u2df8":"\ua649","\ua649":"\ua649","\u2de6":"r","\u049b":"\u049b","\u04c4":"\u04c4","\u04a1":"\u04a1","\u049f":"\u049f","\u049d":"\u049d","\u051f":"\u051f","\u051b":"\u051b","\u2de7":"k","\u04c6":"\u04c6","\u0513":"\u0513","\u0521":"\u0521","\u0459":"\u0459","\ua665":"\ua665","\u0509":"\u0509","\u0515":"\u0515",
|
106 |
+
"\u2de8":"v","\u04ce":"\u04ce","\ua667":"\ua667","\u2de9":"y","\u1d78":"y","\u04ca":"\u04ca","\u04a3":"\u04a3","\u04c8":"\u04c8","\u0523":"\u0523","\u04a5":"\u04a5","\u045a":"\u045a","\u050b":"\u050b","\u2dea":"j","\ua669":"j","\ua66b":"j","\ua66d":"j","\ua66e":"j","\u04e7":"j","\u04e9":"\u04e9","\u04eb":"\u04e9","\u2deb":"g","\u0525":"\u0525","\u04a7":"\u04a7","\u0481":"\u0481","\u2dec":"h","\u048f":"\u048f","\u0517":"\u0517","\u2ded":"c","\u2df5":"c","\u050d":"\u050d","\u04ab":"\u04ab","\u2dee":"n",
|
107 |
+
"\ua68d":"\ua68d","\u050f":"\u050f","\u04ad":"\u04ad","\ua68b":"\ua68b","\u045b":"\u045b","\u045c":"\u045b","\ua677":"e","\u04ef":"e","\u045e":"e","\u04f1":"e","\u04f3":"e","\u04af":"\u04af","\u04b1":"\u04b1","\u2df9":"\ua64b","\ua64b":"\ua64b","\u0479":"\u0479","\u2def":"\u0445","\u0445":"\u0445","\u04fd":"\u04fd","\u04ff":"\u04ff","\u04b3":"\u04b3","\u04bb":"\u04bb","\u0527":"\u0527","\ua695":"\ua695","\ua67b":"\u0461","\u0461":"\u0461","\u047f":"\u047f","\ua64d":"\ua64d","\u047d":"\u047d","\u047b":"\u047b",
|
108 |
+
"\u2df0":"w","\ua661":"\ua661","\ua68f":"\ua68f","\u04b5":"\u04b5","\ua691":"\ua691","\u2df1":"x","\ua693":"\ua693","\u04f5":"\ua693","\u04b7":"\u04b7","\u04cc":"\u04cc","\u04b9":"\u04b9","\ua687":"\ua687","\u04bd":"\u04bd","\u04bf":"\u04bf","\u045f":"\u045f","\u2df2":"i","\ua697":"\ua697","\u2df3":"o","\ua64f":"\ua64f","\ua678":"\u044a","\u044a":"\u044a","\ua651":"\ua651","\ua679":"s","\u04f9":"s","\ua67a":"m","\u048d":"\u048d","\u2dfa":"\u0463","\u0463":"\u0463","\ua653":"\ua653","\u044d":"\u044d",
|
109 |
+
"\u04ed":"\u044d","\u2dfb":"\u044e","\u044e":"\u044e","\ua655":"\ua655","\u2dfc":"\ua657","\ua657":"\ua657","\u0519":"\u0519","\ua69f":"\u0465","\u0465":"\u0465","\u2dfd":"\u0467","\u0467":"\u0467","\ua659":"\ua659","\u2dfe":"\u046b","\u046b":"\u046b","\ua65b":"\ua65b","\u0469":"\u0469","\ua65d":"\ua65d","\u2dff":"\u046d","\u046d":"\u046d","\u046f":"\u046f","\u0471":"\u0471","\u2df4":"\u0473","\u0473":"\u0473","\u0475":"\u0475","\u0477":"\u0475","\ua65f":"\ua65f","\u04a9":"\u04a9","\u051d":"\u051d",
|
110 |
+
"\u04cf":"\u04cf"});t.register("$23",function(c,a,d){var f=a.requestAnimationFrame,e=a.cancelAnimationFrame,g=0;if(!f||!e)for(var b in{ms:1,moz:1,webkit:1,o:1})if(f=a[b+"RequestAnimationFrame"])if(e=a[b+"CancelAnimationFrame"]||a[b+"CancelRequestAnimationFrame"])break;f&&e||(f=function(b){var c=q();timeToCall=Math.max(0,16-(c-g));nextTime=c+timeToCall;timerId=a.setTimeout(function(){b(nextTime)},timeToCall);g=nextTime;return timerId},e=function(a){clearTimeout(a)});var q=Date.now||function(){return(new Date).getTime()};
|
111 |
+
c.loop=function(a,b){function c(){g=f(c,b);a(d++)}var d=0,g;c();return{stop:function(){g&&e(g);g=null}}};return c}({},u,D));t.register("$21",function(c,a,d){function f(a,c,d,e){if(b){var f=d;d=function(a){if((a.MSPOINTER_TYPE_TOUCH||"touch")===a.pointerType)return f(a)}}a.addEventListener(c,d,e);return{unbind:function(){a.removeEventListener(c,d,e)}}}function e(a){a.preventDefault();a.stopPropagation();return!1}var g,b=!!a.navigator.msPointerEnabled,q=b?"MSPointerDown":"touchstart",p=b?"MSPointerMove":
|
112 |
+
"touchmove",r=b?"MSPointerUp":"touchend";c.ok=function(a){null==g&&(g="function"===typeof d.body.addEventListener);g&&a&&a(c);return g};c.ms=function(){return b};c.dragger=function(a,b){function c(b){a.addEventListener(b,f[b],!1)}function d(b){a.removeEventListener(b,f[b],!1)}var f={};f[q]=function(a){B(a,function(c,d){d.type=q;b(a,d,g)});c(p);c(r);return!0};f[r]=function(a){d(p);d(r);B(a,function(c,d){d.type=r;b(a,d,g)});return!0};f[p]=function(a){B(a,function(c,d){d.type=p;b(a,d,g)});return e(a)};
|
113 |
+
c(q);var g={kill:function(){d(q);d(p);d(r);a=g=b=null}};return g};c.swiper=function(a,c,d){function f(b){a.addEventListener(b,z[b],!1)}function g(b){a.removeEventListener(b,z[b],!1)}function k(){l&&l.stop();l=null}var l,A,y,z={},H=[],E=[],C=[];z[q]=function(b){A=!1;k();var c=h();B(b,function(a,b){H[a]=c;E[a]=b.clientX;C[a]=b.clientY});y=a.scrollLeft;return!0};z[r]=function(a){B(a,function(a,b){var d=h()-H[a],e=E[a]-b.clientX,d=Math.abs(e)/d;c(d,e?0>e?-1:1:0)});y=null;return!0};z[p]=function(b){var c,
|
114 |
+
d;null==y||B(b,function(a,b){c=E[a]-b.clientX;d=C[a]-b.clientY});if(d&&Math.abs(d)>Math.abs(c))return A=!0;c&&(A=!0,a.scrollLeft=Math.max(0,y+c));return e(b)};if(!b||d)f(q),f(p),f(r),b&&(a.className+=" mstouch");return{kill:function(){g(q);g(p);g(r);k()},swiped:function(){return A},ms:function(){return b},snap:function(c){b&&!d&&(a.style["-ms-scroll-snap-points-x"]="snapInterval(0px,"+c+"px)",a.style["-ms-scroll-snap-type"]="mandatory",a.style["-ms-scroll-chaining"]="none")},scroll:function(b,c,d){k();
|
115 |
+
var e=a.scrollLeft,f=b>e?1:-1,g=Math[1===f?"min":"max"],y=Math.round(16*c*f);return l=t.require("$23","fps.js").loop(function(c){c&&(e=Math.max(0,g(b,e+y)),a.scrollLeft=e,b===e&&(k(),d&&d(e)))},a)}}};c.start=function(a,b){return f(a,q,b,!1)};c.move=function(a,b){return f(a,p,b,!1)};c.end=function(a,b){return f(a,r,b,!1)};var B=c.each=function(a,c){if(b)(a.MSPOINTER_TYPE_TOUCH||"touch")===a.pointerType&&c(0,a);else for(var d=-1,e=(a.originalEvent||a).changedTouches||[];++d<e.length;)c(d,e[d])},h=Date.now||
|
116 |
+
function(){return(new Date).getTime()};return c}({},u,D));t.register("$15",function(c,a,k){function f(a,b){var c=[].slice.call(arguments,2);return function(d){return a.apply(b,[d].concat(c))}}function e(a,b){var c=a.id,d=c&&w[c],e=d&&d.parent();if(!d||!e)return null;var f=(c=e.dir===v)?"X":"Y",c=c?B:h,g=c(e.el),k=b["offset"+f];null==k&&(k=b["page"+f]-c(a));k&&(g+=k);return{move:function(a){e.resize(a["page"+f]-g,d);return!0}}}function g(a,b){function c(){d(k).unbind("mousemove",f);u=null;return!0}
|
117 |
+
function f(a){u?u.move(a):c();return!0}if(u)return!0;u=e(a.target,a);if(!u)return!0;d(k).one("mouseup",c).mousemove(f);return r(a)}function b(a,b){var c=b.type;"touchmove"===c?u&&u.move(b):"touchstart"===c?u=e(a.target,b):"touchend"===c&&u&&(u=null)}function q(a){var b=d(a.target).closest("div.wg-tr"),c=b.length&&b.closest("div.is-table");(c=c&&w[c.attr("id")])&&c.selectRow(Number(b.attr("data-row")));return r(a)}function p(a){var b=a.keyCode;return 40===b?(this.nextRow(1),r(a)):38===b?(this.nextRow(-1),
|
118 |
+
r(a)):!0}function r(a){a.stopPropagation();a.preventDefault();return!1}function B(a,b){b||(b=k.body);for(var c=a.offsetLeft||0;(a=a.offsetParent)&&a!==b;)c+=a.offsetLeft||0;return c}function h(a,b){b||(b=k.body);for(var c=a.offsetTop||0;(a=a.offsetParent)&&a!==b;)c+=a.offsetTop||0;return c}function s(a){function b(){var c=a.innerHTML;c!==e&&(e=c,d(a).trigger("wgChange",[c]));return!0}var c=m.ie()?["keyup","paste"]:["input"],e=a.innerHTML,f=e;return d(a).attr("contenteditable","true").focus(function(){for(var e=
|
119 |
+
d(a),f=-1;++f<c.length;)e.bind(c[f],b);return!0}).blur(function(){for(var g=d(a),h=-1;++h<c.length;)g.unbind(c[h]);b();f!==e&&d(a).trigger("wgChanged",[a]);return!0})}function n(a){this.el=a;this.id=a.id;this.pos=this.index=0;this.css=["wg-cell"];w[a.id]=this;this.clear()}var m=t.require("$2","html.js"),v=1,w={},u=!1;c.init=function(a){var c=new n(a);c.restyle().redraw();c.root=!0;t.require("$21","touch.js").ok(function(c){c.dragger(a,b)});d(a).mousedown(g);return c};a=n.prototype;a.each=function(a){for(var b=
|
120 |
+
-1;++b<this.length;)a(b,this.cells[b]);return this};a.bind=function(){return this.$("bind",arguments)};a.unbind=function(){return this.$("unbind",arguments)};a.$=function(a,b){d.fn[a].apply(d(this.el),b);return this};a.parent=function(){return this.pid&&w[this.pid]};a.splitx=function(){return this._split(v,arguments)};a.splity=function(){return this._split(2,arguments)};a._split=function(a,b){this.dir&&this.dir!==a&&this.clear();this.dir=a;var c=-1,d,e=this.length,f=b.length,g=1/(e+f),h=0;if(e)throw Error("Todo: implement re-split");
|
121 |
+
for(;++c<f;){d=m.el();this.body.appendChild(d);for(var k=d,q=b[c],p=q,r=1;w[q];)q=p+"-"+ ++r;k.id=q;d=new n(d);d.index=e+c;d.pid=this.id;d.pos=h;h+=g;this.cells.push(d);this.length++}this.restyle().redraw();return this.cells};a.clear=function(){for(var a=-1,b;++a<this.length;)b=this.cells[a].clear(),delete w[b.id];this.cells=[];this.length=0;this.nav&&this.el.removeChild(this.nav);this.nav=null;this.body&&(this.field&&m.ie()&&(d(this.body).triggerHandler("blur"),this.field=null),this.table&&(this.table=
|
122 |
+
null),this.el.removeChild(this.body));this.body=this.el.appendChild(m.el("","wg-body"));return this};a.resize=function(a,b){if(!b&&(b=this.cells[1],!b))return;var c=b.index,e=d(this.el)[this.dir===v?"width":"height"](),f=this.cells[c+1],c=this.cells[c-1];pad=(b.body||b.el.firstChild).offsetTop||0;max=(f?f.pos*e:e)-pad;min=c?c.pos*e:0;b.pos=Math.min(max,Math.max(min,a))/e;(e=this.parent())&&e.table?e.redraw():this.redraw();return this};a.distribute=function(){for(var a,b=0;b<arguments.length;)a=Math.max(0,
|
123 |
+
Math.min(1,arguments[b++])),this.cells[b].pos=a;this.redraw();return this};a.restyle=function(){var a=this.css.slice();this.root&&a.push("wg-root");0===this.index?a.push("first"):a.push("not-first");this.dir&&(a.push("wg-split"),2===this.dir?a.push("wg-split-y"):a.push("wg-split-x"));this.t&&a.push("has-title");this.nav&&a.push("has-nav");this.table?a.push("is-table"):null!=this.field&&(a.push("is-field"),this.field||a.push("readonly"));this.el.className=a.join(" ");return this};a.redraw=function(){if(this.body){var a=
|
124 |
+
this.el.clientHeight||0,b=this.body.offsetTop||0;b<a&&(a-=b);this.body.style.height=String(a)+"px"}for(var a=this.length,c,e=1,f=2===this.dir?"height":"width";0<=--a;)b=this.cells[a],this.nav?c=1:(b.fixed&&(b.pos=b.fixed/d(this.el)[f]()),c=e-b.pos,e=b.pos),b.el.style[f]=String(100*c)+"%",b.restyle().redraw();this.table&&this.redrawTable();return this};a.redrawTable=function(){var a=-1,b=this.cells[0],c=this.cells[1],a=d(c.body).width(),e=c.body.firstChild,c=e.childNodes;e.style.width=a+"px";for(var a=
|
125 |
+
b.length,f=1;0<=--a;)e=b.cells[a],c[a].style.width=String(100*(f-e.pos))+"%",f=e.pos;return!0};a.contents=function(a){if(null===a)return this.body.innerHTML;this.cells.length?this.clear():this.body&&this.el.removeChild(this.body);this.body=this.el.appendChild(m.el("","wg-content"));"string"===typeof a?d(this.body)._html(a):this.append(a);this.redraw();return this};a.textarea=function(a,b){var c=m.txt(a);this.contents(c);(this.field=b)&&s(this.body);this.restyle();return this};a.rtl=function(){this.bodyAtt("dir",
|
126 |
+
"RTL");return this};a.ltr=function(){this.bodyAtt("dir","LTR");return this};a.bodyAtt=function(a,b){if(this.body)return null!=b&&this.body.setAttribute(a,b),this.body.getAttribute(a)};a.append=function(a){a.nodeType?m.init(this.body.appendChild(a)):m.init(d(a).appendTo(this.body));return this};a.prepend=function(a){var b=this.body;if(a.nodeType){var c=b.firstChild;m.init(c?b.insertBefore(a,c):b.appendChild(a))}else m.init(d(a).prependTo(b));return this};a.header=function(a,b){if(!arguments.length)return this.el.getElementsByTagName("h2")[0];
|
127 |
+
var c=["wg-title"];b&&c.push(b);this.t=m.txt(a||"");this.el.insertBefore(m.el("h2",c.join(" ")),this.body).appendChild(this.t);this.restyle().redraw();return this};a.title=function(a){this.t?this.t.nodeValue=a||"":this.header(a);return this.t};a.tabulate=function(a){var b=this.id,c=[],e=[];rows=this.splity(b+"-thead",b+"-body");thead=rows[0];tbody=rows[1];thead.css.push("wg-thead");tbody.css.push("wg-tbody");a.eachCol(function(a,d){c.push(b+"-col"+a);e.push(d)});for(var g=-1,k,n=m.el("","wg-cols"),
|
128 |
+
r=thead._split(v,c);++g<r.length;)k=r[g],k.header(e[g]),n.appendChild(m.el("","wg-col "+(0===g?"":"not-")+"first"));tbody.contents(n);a.eachRow(function(a,b,c){tbody._addRow(b,c)});d(tbody.el).mousedown(q);this.lock();this.table=a;this.restyle().redraw();k=thead.cells[0];tbody.fixed=h(k.body,k.el)||20;this.resize(tbody.fixed);d(n).attr("tabindex","-1").keydown(f(p,this));return n};a.lock=function(){this.body.className+=" locked";return this};a.addRow=function(a,b){this.table&&this.cells[1]&&this.cells[1]._addRow(a,
|
129 |
+
b);return this};a._addRow=function(a,b){var c,d=this.body.firstChild.childNodes,e=d.length,f=d[0].childNodes.length,g=-1;for(b=b&&"wg-tr "+b||"wg-tr";++g<e;)c=d[g].appendChild(m.el("",b)),c.setAttribute("data-row",f),c=c.appendChild(m.el("","wg-td")),a[g]&&/\S/.test(a[g])?c.appendChild(m.txt(a[g])):c.innerHTML=" ";return d};a.tr=function(a){for(var b=-1,c,d=[],e=this.cells[1].body.firstChild.childNodes;++b<e.length;)(c=e[b].childNodes[a])&&d.push(c);return d};a.td=function(a,b){try{return this.cells[1].body.firstChild.childNodes[b].childNodes[a].firstChild}catch(c){return null}};
|
130 |
+
a.nextRow=function(a,b){for(var c=this.trow;!1===this.selectRow(c+=a,b););};a.selectRow=function(a,b){var c=this.table&&this.table.row(a);if(!c)return null;var e=this.tr(a);if(e.length){var e=d(e),f=this.cells[1],g=f.body,h=d(g.firstChild);if(h.hasClass("filtered")&&!e.hasClass("filtered"))return!1;null!==this.trow&&d(this.tr(this.trow)).removeClass("selected");e.addClass("selected");this.trow=a;if(!b){var k=g.scrollTop;h.focus();k&&(g.scrollTop=k)}f.scrollTo(e[0],!0);h.trigger("wgRowSelect",[a,c])}return this};
|
131 |
+
a.deselectRow=function(){if(this.table){var a=d(this.cells[1].body.firstChild),b=this.trow;a.find("div.selected").removeClass("selected");this.row=null;a.trigger("wgRowDeselect",[b])}};a.filterRows=function(a){var b=-1,c;c=d(this.cells[1].body.firstChild);if(!a)return c.removeClass("filtered"),this;for(c.addClass("filtered").find("div.filtered").removeClass("filtered");++b<a.length;)c=a[b],c=this.tr(c),c.length&&d(c).addClass("filtered");return this};a.scrollTo=function(a,b){var c;c=this.body.scrollTop;
|
132 |
+
var e=h(a,this.body);if(c>e)c=e;else{var f=this.body.clientHeight,e=e+d(a).outerHeight();if(f+c<e)c=e-f;else return}b?this.body.scrollTop=c:d(this.body).stop(!0).animate({scrollTop:c},250)};a.navigize=function(a){function b(a,c){e=a.show();f=c.addClass("active");a.trigger("wgTabSelect",[a.data("index")]);return a}var c=this;c.nav&&c.el.removeChild(c.nav);c.nav=c.el.insertBefore(m.el("nav","wg-tabs"),c.body);var e,f,g=d(c.nav).click(function(a){var g=d(a.target),h=g.data("tab");if(h){var k=f;e&&e.hide();
|
133 |
+
k&&k.removeClass("active");b(h,g).children().focus();c.redraw();return r(a)}});c.each(function(c,f){f.pos=0;var h=d(f.el).data("index",c),k=d('<a href="#'+f.id+'"></a>').data("tab",h).text(a[c]).appendTo(g);e?h&&h.hide():b(h,k)});c.lock();c.restyle().redraw();g=null;return c};a=null;return c}({},u,D));t.register("$7",function(c,a,k){function f(a){var c=[],b=k.createElement("p");b.innerHTML=a;t.require("$2","html.js").plain(b,c);return c.join("\n")}c.init=function(c){function g(){var a=l.length,b=
|
134 |
+
0,c=0,d=0;l.each(function(a,e){e.translation()?e.fuzzy()?d++:b++:c++});return{t:a,p:String(b?Math.round(100*(b/a)):0)+"%",f:d,u:c}}function b(){A.clear();l.each(function(a,b,c){A.add(c,b.toText())});y="";z=l.length}function k(a,b){var c,d={};if(y===a)return z||0;if(!l.length)return 0;if(a){if(y&&!z&&0===a.indexOf(y))return 0;c=A.find(a,d);d.words.length||(a="")}y=a;z=c?c.length:l.length;J.filterRows(c);d=C?l.indexOf(C):-1;if(-1===d||c&&-1===c.indexOf(d))c?c.length?J.selectRow(c[0],!0):J.deselectRow():
|
135 |
+
J.selectRow(0,!0);b||m("poFilter",[y,z]);return z}function p(a){if(!a)return["",""];var b=[a.source()||"",a.translation()||""];(a=a.context())&&(b[0]+=" [ "+a+" ]");return b}function r(a){if(a=a||C){var b=l.indexOf(a),b=J.tr(b),c=b[0].className.replace(/\s*po-[a-z]+/g,""),c=c+(" "+h(a)+" po-unsaved");d(b).attr("class",c);m("poUnsaved",[++G])}}function u(a,b){b=b||C;if(!b)return null;var c=b.fuzzy();null!=a&&c!=a&&(b.fuzzy(a),m("poFuzzy",[b,a]),m(F,[b]),r(b));return c}function h(a){var b=[];a&&(a.fuzzy()&&
|
136 |
+
b.push("po-fuzzy"),a.translation()||b.push("po-empty"),a.comment()&&b.push("po-comment"));return b.join(" ")}function s(a,b){var c=p(a)[b||0],e=l.indexOf(a),e=J.td(e,b);c&&/\S/.test(c)?d(e).text(c.replace("\n"," ")):d(e).html(" ")}function n(a){a!==H&&(E=(H=a)?l.lock(E):l.unlock()||E,m("poLock",[a,E]),C&&D(C))}function m(a,b){return d(c).trigger(a,b||[])}function v(){if(l&&l.row){y&&(y="",z=l.length,m("poFilter",[y,z]));var a;J.table&&(a=L?L.parentNode.scrollTop:0,J.clear());L=J.tabulate(K);
|
137 |
+
a&&(L.parentNode.scrollTop=a);m("poLoad");(a=l.locale())?(E=a,n(!0)):n(!1);return!!l.length}J.clear().header("Error").contents("Invalid PO")}function w(){O.unbind().clear();P.unbind().clear();Q.unbind();C&&(m("poDeselected",[C]),C=null)}function D(a){function c(){var d=E&&E.lang&&"en"!==E.lang&&E.label;P.title(d?d+" translation:":"Translation:");if(q){var e=[],k=E.plurals||["Single","Other"],l=t.require("$14","collection.js").init();for(a.each(function(a,b){e.push(k[a]||"Form "+a);l.add("plural-"+
|
138 |
+
a,b)});(d=e.length)<E.nplurals;)e.push(k[d]||"Form "+l.length),l.add("plural-"+d,"");T=P.splitx.apply(P,l.keys);P.each(function(a,b){b.textarea(l[a],h)});P.navigize(e).bind("wgTabSelect",function(a,b){g=b})}else P.textarea(a.translation(),h);P.bind("wgChange",function(b,c){var d=f(c);a.translate(d,g);0===g&&s(a,1);a.fuzzy()?u(!1,a):r(a)}).bind("wgChanged",function(c){A&&b();m(F,[a])})}function e(){P.title("Context:");P.textarea(a.context(),!0);P.bind("wgChange",function(b,c){var d=f(c);a.context(d);
|
139 |
+
a.source();s(a,0);r(a)}).bind("wgChanged",function(){l.reIndex(a);A&&b();m(F,[a])})}w();C=a;Q.textarea(a.comment(),!0).bind("wgChange",function(b,c){var d=f(c);a.comment(d);m("poComment",[a,d]);r(a)});var g=0,h=H,k=!H,n=a.source()||"",q=a.plural()||"",p=a.notes();(function(){var c,e=O;q?(c=O.splity(O.id+"-singular",O.id+"-plural"),e=c[0],c=c[1],e.header("Single:").textarea(n,k),c.header("Plural:").textarea(q,k),O.lock()):O.textarea(n,k);O.title("Source text:");p&&e.prepend(d('<p class="notes"></p>').text(p));
|
140 |
+
k&&O.bind("wgChange",function(b,c){var d=f(c);O.id+"-plural"===b.target.parentNode.id?a.plural(d):(a.source(d),s(a,0));r(a)}).bind("wgChanged",function(c){O.id+"-plural"===c.target.parentNode.id||l.reIndex(a);A&&b();m(F,[a])})})();h?c():e();m("poSelected",[a]);data=null}var l,A,y,z,H,E,C,G=0,F="poUpdate",L,K={row:function(a){return p(l.row(a))},eachCol:function(a){a(0,"Source text");a(1,"Translation")},eachRow:function(a){var b=0;l.each(function(c,d){a(b++,p(d),h(d))})}},M=t.require("$15","LocoWinGrid.js").init(c),
|
141 |
+
T=M.splity("po-list","po-edit"),J=T[0],R=T[1],T=R.splitx("po-trans","po-comment"),S=T[0],Q=T[1].header("Comments:"),T=S.splity("po-source","po-target"),O=T[0].header("Source text:"),P=T[1].header("Translation:");M.distribute(0.34);R.distribute(0.8);d(a).resize(function(){M.redraw(!0);return!0});J.bind("wgRowSelect",function(a,b,c){a=l.row(b);D(a);return!0}).bind("wgRowDeselect",function(){w();Q.textarea("",!1);O.textarea("",!1).title("Source text not loaded:");P.textarea("",!1).title("Translation not loaded:");
|
142 |
+
m("poSelected",[null]);return!0});return{bind:function(a,b){return d(c).bind(a,b)},load:function(a){l=a;A&&b();v()&&J.selectRow(0)},save:function(a){if(G||a)d(L).find("div.po-unsaved").removeClass("po-unsaved"),m("poSave");G=0;return l},fuzzy:function(a){return u(a)},del:function(a,c){var d=arguments.length?l.get(a,c):C;if(d){var e=y,f=l.del(d);null!=f&&(r(d),m("poDel",[d]),m(F,[d]),v(),A&&b(),C&&C.equals(d)&&w(),l.length&&(e&&k(e),C||(f=Math.min(f,l.length-1),J.selectRow(f))))}},add:function(a,b){var c,
|
143 |
+
d=l.get(a,b);d?c=l.indexOf(d):(c=l.length,d=l.add(a,b),J.addRow(K.row(c),h(d)),r(d),A&&A.add(l.indexOf(d),d.toText()),m("poAdd",[d]),m(F,[d]));y&&k("");J.selectRow(c);return d},lock:function(){n(!0)},unlock:function(){n(!1)},locked:function(){return Boolean(H)},filter:function(a){return A&&l&&l.length&&k(a,!0)},searchable:function(a){a&&(A=a,l&&b());return A&&!0},stats:function(){return g()}}};return c}({},u,D));t.require("$1","array.js");t.require("$2","html.js");W=u.loco||{};var ba=u.ajaxurl||"/wp-admin/admin-ajax.php",
|
144 |
+
V=W.conf||{},U=V.locale,M=t.require("$3","po.js").create(U),K={},Q=D.getElementById("loco-poedit-inner"),F=W.t||function(c){return c};d(u).resize(function(){function c(){var c;c=Q;for(var e=c.offsetTop||0;(c=c.offsetParent)&&void 0!==c;)e+=c.offsetTop||0;c=e;e=d(u).innerHeight();c=Math.max(k,e-c-a);Q.style.height=String(c)+"px";return!0}var a=20,k=parseInt(d(Q).css("min-height")||0);c();return c}());K.save=function(c){function a(){c.disabled=!1}a();G.bind("poUnsaved",function(){d(c).addClass("button-primary loco-flagged")}).bind("poSave",
|
145 |
+
function(){d(c).removeClass("button-primary loco-flagged")});d(c.form).submit(function(k){var f=k.target;k.target.po.value=M.toString();c.disabled=!0;aa(f,function(c){a();d("#loco-po-modified").text(c.modified);G.save(!0);var f=F("PO file saved"),b=c.filename;c=c.compiled;null!=c&&(/\D/.test(c)?X(c,F("Error"),"error"):(f+=" "+F("and MO file compiled"),b=b.replace(/\.po$/i,".mo")));$(f+" - "+b)},a);return S(k)});return!0};K.download_po=K.download_mo=function(c){c.disabled=!1;c.form.action=ba;d(c).click(function(){c.form.po.value=
|
146 |
+
M.toString();d(Q).trigger("poSave");return!0});return!0};K.add=!U&&function(c){c.disabled=!1;d(c).click(function(a){var c=1,d;for(d="New message";M.get(d);)c=/(\d+)/.exec(d)?Math.max(c,RegExp.$1):c,d="New message "+ ++c;G.add(d);return S(a)});return!0};K.del=!U&&function(c){c.disabled=!1;d(c).click(function(a){G.del();return S(a)});return!0};K.fuzzy=U&&function(c){function a(a){c.disabled=null==a;d(c)[a?"addClass":"removeClass"]("loco-inverted")}G.bind("poSelected",function(c,d){a(d&&G.locked()?d.fuzzy():
|
147 |
+
null)}).bind("poFuzzy",function(c,d,e){a(G.locked()?e:null)});d(c).click(function(a){var c=!G.fuzzy();G.fuzzy(c);return S(a)});return!0};K.sync=function(c){function a(){c.disabled=!1}a();G.bind("poUnsaved",function(){c.disabled=!0}).bind("poSave",function(){a()});d(c.form).submit(function(k){c.disabled=!0;aa(k.target,function(c){a();var e=t.require("$3","po.js").create(void 0);e.load(c.exp);var g=[],e=M.merge(e),b=e.add.length,k=e.del.length;G.load(M);if(b||k){g.push(c.pot?R(F("Merged from %s"),c.pot):
|
148 |
+
F("Merged from source code"));b&&g.push(R(F("1 new string added","%s new strings added",b),b));k&&g.push(R(F("1 obsolete string removed","%s obsolete strings removed",k),k));d(Q).trigger("poUnsaved",[]);if(u.console&&console.log){for(b=-1;++b<e.add.length;)console.log(" + "+e.add[b].source());for(b=-1;++b<e.del.length;)console.log(" - "+e.del[b].source())}Y()}else g.push(c.pot?R(F("Already up to date with %s"),c.pot):F("Already up to date with source code"));M.headers(c.headers||{});$(g.join(". "));
|
149 |
+
d(Q).trigger("poMerge",[c])},a);return S(k)});return!0};K.revert=function(c){G.bind("poUnsaved",function(){c.disabled=!1}).bind("poSave",function(){c.disabled=!0});d(c).click(function(a){location.reload();return S(a)});return!0};K.help=function(){return!0};Q.innerHTML="";var G=t.require("$7","poedit.js").init(Q);d("#loco-nav").find("button").each(function(c,a){var k=a.getAttribute("data-loco");K[k]&&K[k](a)||d(a).hide()});K=null;(function(c){d(c.form).submit(function(a){return S(a)});var a=t.require("$4",
|
150 |
+
"dict.js").create();a.depth=10;a.translit(t.require("$5","translit.json"));G.searchable(a);c.disabled=!1;c.value="";var k=t.require("$6","LocoTextListener.js").listen(c,function(a){G.filter(a)});G.bind("poFilter",function(a,c){k.val(c)}).bind("poMerge",function(a,c){var d=k.val();d&&G.filter(d)});c=a=null})(D.getElementById("loco-search"));G.bind("poUnsaved",function(){u.onbeforeunload=function(){return F("Your changes will be lost if you continue without saving")}}).bind("poSave",function(){u.onbeforeunload=
|
151 |
+
null}).bind("poUpdate",Y);U?M.load(V.po||{}):M.load(V.pot||{});M.headers(V.headers);G.load(M);Y();d("#wpbody-content").find("div.loco-message").each(function(c,a){Z(a,!0)})})(window,document,window.jQuery);
|
pub/js/lang/dummy.php
CHANGED
@@ -2,22 +2,51 @@
|
|
2 |
/**
|
3 |
* Here for source code extraction until xgettext is applied to js files too
|
4 |
*/
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
__('Unknown error');
|
|
|
9 |
__('PO file saved');
|
|
|
10 |
__('and MO file compiled');
|
|
|
|
|
11 |
__('Merged from %s');
|
|
|
12 |
__('Merged from source code');
|
|
|
13 |
__('Already up to date with %s');
|
|
|
14 |
__('Already up to date with source code');
|
|
|
15 |
_n('1 new string added','%s new strings added', 2 );
|
|
|
16 |
_n('1 obsolete string removed','%s obsolete strings removed', 2 );
|
|
|
17 |
__('Your changes will be lost if you continue without saving');
|
18 |
|
19 |
|
20 |
/**
|
21 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
*/
|
23 |
-
|
|
|
|
2 |
/**
|
3 |
* Here for source code extraction until xgettext is applied to js files too
|
4 |
*/
|
5 |
+
|
6 |
+
// immediately preceeding comment block is extracted. this won't be.
|
7 |
+
//
|
8 |
__('Unknown error');
|
9 |
+
|
10 |
__('PO file saved');
|
11 |
+
|
12 |
__('and MO file compiled');
|
13 |
+
|
14 |
+
/* Translators: where %s is the path to a POT file */
|
15 |
__('Merged from %s');
|
16 |
+
|
17 |
__('Merged from source code');
|
18 |
+
|
19 |
__('Already up to date with %s');
|
20 |
+
|
21 |
__('Already up to date with source code');
|
22 |
+
|
23 |
_n('1 new string added','%s new strings added', 2 );
|
24 |
+
|
25 |
_n('1 obsolete string removed','%s obsolete strings removed', 2 );
|
26 |
+
|
27 |
__('Your changes will be lost if you continue without saving');
|
28 |
|
29 |
|
30 |
/**
|
31 |
+
* These items aren't ready for translation in source code yet because they come from Loco core, but they will be eventually
|
32 |
+
*/
|
33 |
+
|
34 |
+
// label for the window pane holding native translation
|
35 |
+
_x('Source text','Editor pane');
|
36 |
+
|
37 |
+
// where %s is the language, e.g French translation
|
38 |
+
_x('%s translation','Editor pane');
|
39 |
+
|
40 |
+
// label for the window pane holding translator comments
|
41 |
+
_x('Comments','Editor pane');
|
42 |
+
|
43 |
+
// label for the window pane holding message context
|
44 |
+
_x('Context','Editor pane');
|
45 |
+
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Legacy translations, removed from front end but don't want to lose in case reinstated
|
49 |
*/
|
50 |
+
|
51 |
+
//
|
52 |
+
__('Translation');
|
pub/js/lang/loco-translate-de_DE.js
CHANGED
@@ -3,11 +3,11 @@
|
|
3 |
* Project: loco.js conversion
|
4 |
* Release: Working copy
|
5 |
* Locale: de_DE, German
|
6 |
-
* Exported at:
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
10 |
-
// named plural forms
|
11 |
var pluralForms = ["one","other"];
|
12 |
|
13 |
// calc numeric index of a plural form (0-1)
|
@@ -29,5 +29,5 @@ loco = window.loco||{}, loco.t = function( pairs ){
|
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
-
{"Error":"Fehler","Warning":"Warnung","OK":"OK","Permission denied":"Zugriff verweigert","Settings saved":"Einstellungen gespeichert","New PO file":"Neue PO-Datei","You must specify a valid locale for a new PO file":"Du musst einen g\u00fcltigen Pfad f\u00fcr die PO-Datei angeben","No translatable strings found":"Keine \u00fcbersetzbaren Zeichenketten gefunden","Cannot create a PO file.":"Erstellen der PO-Datei fehlgeschlagen.","PO file already exists with locale %s":"PO-Datei existiert schon unter %s","PO file used as template. This will be renamed to %s on first save":"PO-Datei wird als Template verwendet. Dies wird in %s beim ersten Speichern umbenannt.","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Datei kann nicht automatisch erstellt werden. Setze die Datei-Zugriffsrechte oder benutze Download anstatt Speichern","%s file is empty":"Datei (%s) ist leer","Run Sync to update from source code":"Benutze Sync, um von der Quelle zu aktualisieren","No strings could be extracted from source code":"Es konnten keine Zeichenketten vom Quellcode extrahiert werden","Run Sync to update from %s":"Benutze Sync, um aus %s zu aktualisieren","Source code has been modified, run Sync to update POT":"Quellcode wurde ge\u00e4ndert, benutze Sync um POT zu aktualisieren","POT has been modified since PO file was saved, run Sync to update":"POT wurde aktualisiert bevor die PO-Datei gespeichert wurde. Benutze Sync zum Aktualisieren.","Bad file path":"Falscher Dateipfad","Empty or invalid %s file":"Leere oder ung\u00fcltige %s-Datei","%s file has no header":"%s-Datei hat keinen Header","New template":"Neues Template","New language":"Neue Sprache","%s%% translated":"%s%% \u00fcbersetzt","1 string":{"one":"1 Zeichenkette","other":"%s Zeichenketten"},"%s fuzzy":"%s undeutlich","%s untranslated":"%s nicht \u00fcbersetzt","Failed to compile MO file with built-in compiler":"Kompilieren der MO-Datei mit dem internen Kompilierer fehlgeschlagen.","Loco, Translation Management":"Loco, Translation Management","Manage translations":"\u00dcbersetzungen verwalten","Translation options":"\u00dcbersetzungsoptionen","Loco Translate":"Loco Translate","Settings":"Einstellungen","File download failed":"Dateidownload ist fehlgeschlagen","Unknown language":"Unbekannte Sprache","Some files not writable":"Einige Dateien nicht schreibbar","Some files missing":"Einige Dateien fehlen","\"%s\" folder not writable":"Ordner \"%s\" nicht schreibbar","POT file not writable":"POT-Datei nicht schreibbar","PO file not writable":"PO-Datei nicht schreibbar","MO file not writable":"MO-Datei nicht schreibbar","MO file not found":"MO-Datei nicht gefunden","Folder not writable":"Ordner nicht schreibbar","User does not have permission to manage translations":"Benutzer hat keine Rechte die \u00dcbersetzungen zu verwalten","Failed to compile MO file with %s, check your settings":"Kompilieren der MO-Datei fehlgeschlagen. Bitte pr\u00fcfe Deine Einstellungen","Invalid data posted to server":"Ung\u00fcltige Daten zum Server gesendet","Package not found called %s":"Paket %s nicht gefunden","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Webserver kann keine Sicherungen in \"%s\" anlegen. Setze die Datei-Zugriffrechte oder deaktiviere die Sicherungen in den Einstellungen","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Webserver kann Ordner \"%s\" nicht in \"%s\" erstellen. Setze die Zugriffsrechte oder erstelle den Ordner selbst.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Webserver kann keine Dateien im Ordner \"%s\" erstellen. Setze die Datei-Zugriffsrechte oder benutze Download anstatt Speichern.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"Datei %s ist vom Webserver nicht schreibbar. Setze die Datei-Zugriffsrechte oder benutze Download anstatt Speichern und speichere die Datei auf dem Server unter \"%s\/%s\" ab.","Cannot create MO file":"Erstellen der MO-Datei fehlgeschlagen.","Cannot overwrite MO file":"\u00dcberschreiben der MO-Datei fehlgeschlagen","Failed to write MO file":"Fehler beim Schreiben der MO-Datei","No strings could be extracted from source files":"Es konnten keine Zeichenketten aus der Quelle extrahiert werden","Unknown error":"Unbekannter Fehler","PO file saved":"PO-Datei gespeichert","and MO file compiled":"und MO-Datei kompiliert","Merged from %s":"Aus %s zusammengef\u00fchrt","Merged from source code":"Aus Quelle zusammengef\u00fchrt","Already up to date with %s":"Bereits auf dem aktuellen Stand mit %s","Already up to date with source code":"Bereits mit der Quelle auf dem aktuellen Stand","1 new string added":{"one":"1 neue Zeichenkette hinzugef\u00fcgt","other":"%s neue Zeichenketten hinzugef\u00fcgt"},"1 obsolete string removed":{"one":"1 veraltete Zeichenkette entfernt","other":"%s veraltete Zeichenketten entfernt"},"Your changes will be lost if you continue without saving":"Deine \u00c4nderungen gehen verloren, wenn du fortsetzt ohne zu Speichern","Translation":"\u00dcbersetzung","Packages":"Pakete","File check":"Dateipr\u00fcfung","File system permissions for %s":"Dateisystem-Rechte f\u00fcr %s","Back":"Zur\u00fcck","Get help":"Hilfe erhalten","Package details":"Paketdetails","Translations (PO)":"\u00dcbersetzungen (PO)","Template (POT)":"Template (POT)","File permissions":"Dateizugriffsrechte","1 language":{"one":"1 Sprache","other":"%u Sprachen"},"Updated":"Aktualisiert","Powered by":"Pr\u00e4sentiert von","Loco may not work as expected":"Loco scheint nicht, wie erwartet, zu arbeiten","Configure Loco Translate":"Konfiguriere Loco Translate","Compiling MO files":"MO-Dateien kompilieren","Use built-in MO compiler.":"Benutze internen MO-Kompilierer","Use external command:":"Benutze externes Befehlsprogramm:","Enter path to msgfmt on server":"Pfad zum msgfmt-Programm","Generate hash tables":"Erzeuge Hashtabellen","Backing up PO files":"PO-Datei sichern","Number of backups to keep of each file:":"Anzahl der Sicherungen pro Datei","Save settings":"Einstellungen speichern","Template file":"Templatedatei","Switch to...":"Wechsle zu...","never":"niemals","Save":"Speichern","Download":"Download","Sync":"Sync","Revert":"zur\u00fccksetzen","Add":"Hinzuf\u00fcgen","Del":"L\u00f6schen","Fuzzy":"Undeutlich","Filter translations":"\u00dcbersetzungen filtern","Help":"Hilfe","Initialize new translations in %s":"Initialisiere neue \u00dcbersetzung in %s","Select from common languages":"W\u00e4hle aus den Standardsprachen","or enter any language code":"oder trage den Sprach-Code ein","Start translating":"Starte \u00dcbersetzung","New version available":"Neue Version verf\u00fcgbar","Upgrade to version %s of Loco Translate":"Bitte upgrade Loco Translate auf Version %s","Select a plugin or theme to translate":"W\u00e4hle ein Plugin oder Theme zum \u00dcbersetzen","Themes":"Themes","Plugins":"Plugins","Core":"Core"}
|
33 |
);
|
3 |
* Project: loco.js conversion
|
4 |
* Release: Working copy
|
5 |
* Locale: de_DE, German
|
6 |
+
* Exported at: Mon, 09 Jun 2014 18:07:30 +0100
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
10 |
+
// named plural forms
|
11 |
var pluralForms = ["one","other"];
|
12 |
|
13 |
// calc numeric index of a plural form (0-1)
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
+
{"Folder not found":"","No source files in this package, nothing to sync":"","Source text":"","%s translation":"","Comments":"","Context":"","Experimental features":"","Enable Wordpress core translations":"","create in <code>%s<\/code>":"","create in global languages directory":"","Error":"Fehler","Warning":"Warnung","OK":"OK","Permission denied":"Zugriff verweigert","Settings saved":"Einstellungen gespeichert","New PO file":"Neue PO-Datei","You must specify a valid locale for a new PO file":"Du musst einen g\u00fcltigen Pfad f\u00fcr die PO-Datei angeben","No translatable strings found":"Keine \u00fcbersetzbaren Zeichenketten gefunden","Cannot create a PO file.":"Erstellen der PO-Datei fehlgeschlagen.","PO file already exists with locale %s":"PO-Datei existiert schon unter %s","PO file used as template. This will be renamed to %s on first save":"PO-Datei wird als Template verwendet. Dies wird in %s beim ersten Speichern umbenannt.","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Datei kann nicht automatisch erstellt werden. Setze die Datei-Zugriffsrechte oder benutze Download anstatt Speichern","%s file is empty":"Datei (%s) ist leer","Run Sync to update from source code":"Benutze Sync, um von der Quelle zu aktualisieren","No strings could be extracted from source code":"Es konnten keine Zeichenketten vom Quellcode extrahiert werden","Run Sync to update from %s":"Benutze Sync, um aus %s zu aktualisieren","Source code has been modified, run Sync to update POT":"Quellcode wurde ge\u00e4ndert, benutze Sync um POT zu aktualisieren","POT has been modified since PO file was saved, run Sync to update":"POT wurde aktualisiert bevor die PO-Datei gespeichert wurde. Benutze Sync zum Aktualisieren.","Bad file path":"Falscher Dateipfad","Empty or invalid %s file":"Leere oder ung\u00fcltige %s-Datei","%s file has no header":"%s-Datei hat keinen Header","New template":"Neues Template","New language":"Neue Sprache","%s%% translated":"%s%% \u00fcbersetzt","1 string":{"one":"1 Zeichenkette","other":"%s Zeichenketten"},"%s fuzzy":"%s undeutlich","%s untranslated":"%s nicht \u00fcbersetzt","Failed to compile MO file with built-in compiler":"Kompilieren der MO-Datei mit dem internen Kompilierer fehlgeschlagen.","Loco, Translation Management":"Loco, Translation Management","Manage translations":"\u00dcbersetzungen verwalten","Translation options":"\u00dcbersetzungsoptionen","Loco Translate":"Loco Translate","Settings":"Einstellungen","File download failed":"Dateidownload ist fehlgeschlagen","Unknown language":"Unbekannte Sprache","Some files not writable":"Einige Dateien nicht schreibbar","Some files missing":"Einige Dateien fehlen","\"%s\" folder not writable":"Ordner \"%s\" nicht schreibbar","POT file not writable":"POT-Datei nicht schreibbar","PO file not writable":"PO-Datei nicht schreibbar","MO file not writable":"MO-Datei nicht schreibbar","MO file not found":"MO-Datei nicht gefunden","Folder not writable":"Ordner nicht schreibbar","User does not have permission to manage translations":"Benutzer hat keine Rechte die \u00dcbersetzungen zu verwalten","Failed to compile MO file with %s, check your settings":"Kompilieren der MO-Datei fehlgeschlagen. Bitte pr\u00fcfe Deine Einstellungen","Invalid data posted to server":"Ung\u00fcltige Daten zum Server gesendet","Package not found called %s":"Paket %s nicht gefunden","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Webserver kann keine Sicherungen in \"%s\" anlegen. Setze die Datei-Zugriffrechte oder deaktiviere die Sicherungen in den Einstellungen","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Webserver kann Ordner \"%s\" nicht in \"%s\" erstellen. Setze die Zugriffsrechte oder erstelle den Ordner selbst.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Webserver kann keine Dateien im Ordner \"%s\" erstellen. Setze die Datei-Zugriffsrechte oder benutze Download anstatt Speichern.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"Datei %s ist vom Webserver nicht schreibbar. Setze die Datei-Zugriffsrechte oder benutze Download anstatt Speichern und speichere die Datei auf dem Server unter \"%s\/%s\" ab.","Cannot create MO file":"Erstellen der MO-Datei fehlgeschlagen.","Cannot overwrite MO file":"\u00dcberschreiben der MO-Datei fehlgeschlagen","Failed to write MO file":"Fehler beim Schreiben der MO-Datei","No strings could be extracted from source files":"Es konnten keine Zeichenketten aus der Quelle extrahiert werden","Unknown error":"Unbekannter Fehler","PO file saved":"PO-Datei gespeichert","and MO file compiled":"und MO-Datei kompiliert","Merged from %s":"Aus %s zusammengef\u00fchrt","Merged from source code":"Aus Quelle zusammengef\u00fchrt","Already up to date with %s":"Bereits auf dem aktuellen Stand mit %s","Already up to date with source code":"Bereits mit der Quelle auf dem aktuellen Stand","1 new string added":{"one":"1 neue Zeichenkette hinzugef\u00fcgt","other":"%s neue Zeichenketten hinzugef\u00fcgt"},"1 obsolete string removed":{"one":"1 veraltete Zeichenkette entfernt","other":"%s veraltete Zeichenketten entfernt"},"Your changes will be lost if you continue without saving":"Deine \u00c4nderungen gehen verloren, wenn du fortsetzt ohne zu Speichern","Translation":"\u00dcbersetzung","Packages":"Pakete","File check":"Dateipr\u00fcfung","File system permissions for %s":"Dateisystem-Rechte f\u00fcr %s","Back":"Zur\u00fcck","Get help":"Hilfe erhalten","Package details":"Paketdetails","Translations (PO)":"\u00dcbersetzungen (PO)","Template (POT)":"Template (POT)","File permissions":"Dateizugriffsrechte","1 language":{"one":"1 Sprache","other":"%u Sprachen"},"Updated":"Aktualisiert","Powered by":"Pr\u00e4sentiert von","Loco may not work as expected":"Loco scheint nicht, wie erwartet, zu arbeiten","Configure Loco Translate":"Konfiguriere Loco Translate","Compiling MO files":"MO-Dateien kompilieren","Use built-in MO compiler.":"Benutze internen MO-Kompilierer","Use external command:":"Benutze externes Befehlsprogramm:","Enter path to msgfmt on server":"Pfad zum msgfmt-Programm","Generate hash tables":"Erzeuge Hashtabellen","Backing up PO files":"PO-Datei sichern","Number of backups to keep of each file:":"Anzahl der Sicherungen pro Datei","Save settings":"Einstellungen speichern","Template file":"Templatedatei","Switch to...":"Wechsle zu...","never":"niemals","Save":"Speichern","Download":"Download","Sync":"Sync","Revert":"zur\u00fccksetzen","Add":"Hinzuf\u00fcgen","Del":"L\u00f6schen","Fuzzy":"Undeutlich","Filter translations":"\u00dcbersetzungen filtern","Help":"Hilfe","Initialize new translations in %s":"Initialisiere neue \u00dcbersetzung in %s","Select from common languages":"W\u00e4hle aus den Standardsprachen","or enter any language code":"oder trage den Sprach-Code ein","Start translating":"Starte \u00dcbersetzung","New version available":"Neue Version verf\u00fcgbar","Upgrade to version %s of Loco Translate":"Bitte upgrade Loco Translate auf Version %s","Select a plugin or theme to translate":"W\u00e4hle ein Plugin oder Theme zum \u00dcbersetzen","Themes":"Themes","Plugins":"Plugins","Core":"Core"}
|
33 |
);
|
pub/js/lang/loco-translate-nl_BE.js
CHANGED
@@ -3,11 +3,11 @@
|
|
3 |
* Project: loco.js conversion
|
4 |
* Release: Working copy
|
5 |
* Locale: nl_BE, Dutch (Belgium)
|
6 |
-
* Exported at:
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
10 |
-
// named plural forms
|
11 |
var pluralForms = ["one","other"];
|
12 |
|
13 |
// calc numeric index of a plural form (0-1)
|
@@ -29,5 +29,5 @@ loco = window.loco||{}, loco.t = function( pairs ){
|
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
-
{"Permission denied":"","Settings saved":"","PO file used as template. This will be renamed to %s on first save":"","Empty or invalid %s file":"","%s file has no header":"","Failed to compile MO file with built-in compiler":"","Translation options":"","Loco Translate":"","Settings":"","File download failed":"","Some files missing":"","POT file not writable":"","PO file not writable":"","MO file not writable":"","MO file not found":"","Folder not writable":"","Failed to compile MO file with %s, check your settings":"","Package not found called %s":"","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"","Cannot create MO file":"","Cannot overwrite MO file":"","Failed to write MO file":"","Unknown error":"","PO file saved":"","and MO file compiled":"","Merged from %s":"","Merged from source code":"","Already up to date with %s":"","Already up to date with source code":"","1 new string added":{"one":""},"1 obsolete string removed":{"one":""},"Your changes will be lost if you continue without saving":"","Translation":"","File check":"","File system permissions for %s":"","Back":"","Get help":"","OK":"OK","Loco may not work as expected":"","Configure Loco Translate":"","Compiling MO files":"","Use built-in MO compiler.":"","Use external command:":"","Enter path to msgfmt on server":"","Generate hash tables":"","Backing up PO files":"","Number of backups to keep of each file:":"","Save settings":"","Switch to...":"","Core":"","Error":"Fout","Warning":"Waarschuwing","New PO file":"Nieuw PO-bestand","You must specify a valid locale for a new PO file":"Specifieer een geldige locale voor een nieuw PO-bestand","No translatable strings found":"Geen vertaalbare teksten gevonden","Cannot create a PO file.":"Kan geen PO-bestand aanmaken","PO file already exists with locale %s":"PO-bestand bestaat al in locale %s","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Bestand kan niet automatisch aangemaakt worden. Verander de rechten of gebruik download en bewaar.","%s file is empty":"Het bestand %s is leeg","Run Sync to update from source code":"Voer Sync uit om de broncode up te daten","No strings could be extracted from source code":"Er kon geen tekst uit de broncode gehaald worden","Run Sync to update from %s":"Gebruik Sync om vanuit %s up te daten","Source code has been modified, run Sync to update POT":"Broncode is veranderd. Gebruik Sync om POT up te daten","POT has been modified since PO file was saved, run Sync to update":"POT is veranderd sedert bewaren van het PO-bestand. Gebruik Sync om up te daten","Bad file path":"Foute bestandslocatie","New template":"Nieuw sjabloon","New language":"Nieuwe taal","%s%% translated":"%s%% vertaald","1 string":{"one":"1 te vertalen tekst","other":"%s te vertalen teksten"},"%s fuzzy":"%s onzeker","%s untranslated":"%s onvertaald","Loco, Translation Management":"Loco, vertalingsbeheer","Manage translations":"Beheer vertalingen","Unknown language":"Onbekende taal","Some files not writable":"Sommige bestanden hebben geen schrijfrechten","\"%s\" folder not writable":"Map \"%s\" heeft geen schrijfrechten","User does not have permission to manage translations":"Gebruik heeft geen rechten om vertalingen te beheren","Invalid data posted to server":"Ongeldige gegevens op server","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of maak het zelf aan.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of gebruik de downloadfunctie.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"Bestand %s kan niet beschreven worden door de webserver. Bewerk de schrijfrechten of download en kopieer naar \"%s\/%s\".","No strings could be extracted from source files":"Er konden geen te vertalen teksten uit de bronbestanden gehaald worden","Packages":"Pakketten","Package details":"Pakketdetails","Translations (PO)":"Vertalingen (PO)","Template (POT)":"Sjabloon (POT)","File permissions":"Bestandsrechten","1 language":{"one":"1 taal","other":"%u talen"},"Updated":"Ge\u00fcpdated","Powered by":"Ondersteund door","Template file":"Sjabloonbestand","never":"nooit","Save":"Opslaan","Download":"Downloaden","Sync":"Sync","Revert":"Ongedaan maken","Add":"Toevoegen","Del":"Verwijder","Fuzzy":"Onzeker","Filter translations":"Filter vertalingen","Help":"Help","Initialize new translations in %s":"Start nieuwe vertalingen in %s","Select from common languages":"Selecteer van gebruikelijke talen","or enter any language code":"of geef een taalcode op","Start translating":"Start vertalen","New version available":"Nieuwe versie beschikbaar","Upgrade to version %s of Loco Translate":"Loco Translate upgraden naar versie %s","Select a plugin or theme to translate":"Selecteer een plug-in of thema om te vertalen","Themes":"Thema's","Plugins":"Plug-ins"}
|
33 |
);
|
3 |
* Project: loco.js conversion
|
4 |
* Release: Working copy
|
5 |
* Locale: nl_BE, Dutch (Belgium)
|
6 |
+
* Exported at: Mon, 09 Jun 2014 18:07:30 +0100
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
10 |
+
// named plural forms
|
11 |
var pluralForms = ["one","other"];
|
12 |
|
13 |
// calc numeric index of a plural form (0-1)
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
+
{"Permission denied":"","Settings saved":"","PO file used as template. This will be renamed to %s on first save":"","Empty or invalid %s file":"","%s file has no header":"","Failed to compile MO file with built-in compiler":"","Translation options":"","Loco Translate":"","Settings":"","File download failed":"","Some files missing":"","POT file not writable":"","PO file not writable":"","MO file not writable":"","MO file not found":"","Folder not writable":"","Folder not found":"","Failed to compile MO file with %s, check your settings":"","Package not found called %s":"","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"","Cannot create MO file":"","Cannot overwrite MO file":"","Failed to write MO file":"","No source files in this package, nothing to sync":"","Unknown error":"","PO file saved":"","and MO file compiled":"","Merged from %s":"","Merged from source code":"","Already up to date with %s":"","Already up to date with source code":"","1 new string added":{"one":"","other":""},"1 obsolete string removed":{"one":"","other":""},"Your changes will be lost if you continue without saving":"","Source text":"","%s translation":"","Comments":"","Context":"","Translation":"","File check":"","File system permissions for %s":"","Back":"","Get help":"","OK":"OK","Loco may not work as expected":"","Configure Loco Translate":"","Compiling MO files":"","Use built-in MO compiler.":"","Use external command:":"","Enter path to msgfmt on server":"","Generate hash tables":"","Backing up PO files":"","Number of backups to keep of each file:":"","Experimental features":"","Enable Wordpress core translations":"","Save settings":"","Switch to...":"","create in <code>%s<\/code>":"","create in global languages directory":"","Core":"","Error":"Fout","Warning":"Waarschuwing","New PO file":"Nieuw PO-bestand","You must specify a valid locale for a new PO file":"Specifieer een geldige locale voor een nieuw PO-bestand","No translatable strings found":"Geen vertaalbare teksten gevonden","Cannot create a PO file.":"Kan geen PO-bestand aanmaken","PO file already exists with locale %s":"PO-bestand bestaat al in locale %s","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Bestand kan niet automatisch aangemaakt worden. Verander de rechten of gebruik download en bewaar.","%s file is empty":"Het bestand %s is leeg","Run Sync to update from source code":"Voer Sync uit om de broncode up te daten","No strings could be extracted from source code":"Er kon geen tekst uit de broncode gehaald worden","Run Sync to update from %s":"Gebruik Sync om vanuit %s up te daten","Source code has been modified, run Sync to update POT":"Broncode is veranderd. Gebruik Sync om POT up te daten","POT has been modified since PO file was saved, run Sync to update":"POT is veranderd sedert bewaren van het PO-bestand. Gebruik Sync om up te daten","Bad file path":"Foute bestandslocatie","New template":"Nieuw sjabloon","New language":"Nieuwe taal","%s%% translated":"%s%% vertaald","1 string":{"one":"1 te vertalen tekst","other":"%s te vertalen teksten"},"%s fuzzy":"%s onzeker","%s untranslated":"%s onvertaald","Loco, Translation Management":"Loco, vertalingsbeheer","Manage translations":"Beheer vertalingen","Unknown language":"Onbekende taal","Some files not writable":"Sommige bestanden hebben geen schrijfrechten","\"%s\" folder not writable":"Map \"%s\" heeft geen schrijfrechten","User does not have permission to manage translations":"Gebruik heeft geen rechten om vertalingen te beheren","Invalid data posted to server":"Ongeldige gegevens op server","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of maak het zelf aan.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of gebruik de downloadfunctie.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"Bestand %s kan niet beschreven worden door de webserver. Bewerk de schrijfrechten of download en kopieer naar \"%s\/%s\".","No strings could be extracted from source files":"Er konden geen te vertalen teksten uit de bronbestanden gehaald worden","Packages":"Pakketten","Package details":"Pakketdetails","Translations (PO)":"Vertalingen (PO)","Template (POT)":"Sjabloon (POT)","File permissions":"Bestandsrechten","1 language":{"one":"1 taal","other":"%u talen"},"Updated":"Ge\u00fcpdated","Powered by":"Ondersteund door","Template file":"Sjabloonbestand","never":"nooit","Save":"Opslaan","Download":"Downloaden","Sync":"Sync","Revert":"Ongedaan maken","Add":"Toevoegen","Del":"Verwijder","Fuzzy":"Onzeker","Filter translations":"Filter vertalingen","Help":"Help","Initialize new translations in %s":"Start nieuwe vertalingen in %s","Select from common languages":"Selecteer van gebruikelijke talen","or enter any language code":"of geef een taalcode op","Start translating":"Start vertalen","New version available":"Nieuwe versie beschikbaar","Upgrade to version %s of Loco Translate":"Loco Translate upgraden naar versie %s","Select a plugin or theme to translate":"Selecteer een plug-in of thema om te vertalen","Themes":"Thema's","Plugins":"Plug-ins"}
|
33 |
);
|
pub/js/lang/loco-translate-nl_NL.js
CHANGED
@@ -3,11 +3,11 @@
|
|
3 |
* Project: loco.js conversion
|
4 |
* Release: Working copy
|
5 |
* Locale: nl_NL, Dutch
|
6 |
-
* Exported at:
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
10 |
-
// named plural forms
|
11 |
var pluralForms = ["one","other"];
|
12 |
|
13 |
// calc numeric index of a plural form (0-1)
|
@@ -29,5 +29,5 @@ loco = window.loco||{}, loco.t = function( pairs ){
|
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
-
{"Permission denied":"","Settings saved":"","PO file used as template. This will be renamed to %s on first save":"","Empty or invalid %s file":"","%s file has no header":"","Failed to compile MO file with built-in compiler":"","Translation options":"","Loco Translate":"","Settings":"","File download failed":"","Some files missing":"","POT file not writable":"","PO file not writable":"","MO file not writable":"","MO file not found":"","Folder not writable":"","Failed to compile MO file with %s, check your settings":"","Package not found called %s":"","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"","Cannot create MO file":"","Cannot overwrite MO file":"","Failed to write MO file":"","Unknown error":"","PO file saved":"","and MO file compiled":"","Merged from %s":"","Merged from source code":"","Already up to date with %s":"","Already up to date with source code":"","1 new string added":{"one":""},"1 obsolete string removed":{"one":""},"Your changes will be lost if you continue without saving":"","Translation":"","File check":"","File system permissions for %s":"","Back":"","Get help":"","OK":"OK","Loco may not work as expected":"","Configure Loco Translate":"","Compiling MO files":"","Use built-in MO compiler.":"","Use external command:":"","Enter path to msgfmt on server":"","Generate hash tables":"","Backing up PO files":"","Number of backups to keep of each file:":"","Save settings":"","Switch to...":"","Core":"","Error":"Fout","Warning":"Waarschuwing","New PO file":"Nieuw PO-bestand","You must specify a valid locale for a new PO file":"Specifieer een geldige locale voor een nieuw PO-bestand","No translatable strings found":"Geen vertaalbare teksten gevonden","Cannot create a PO file.":"Kan geen PO-bestand aanmaken","PO file already exists with locale %s":"PO-bestand bestaat al in locale %s","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Bestand kan niet automatisch aangemaakt worden. Verander de rechten of gebruik download en bewaar.","%s file is empty":"Het bestand %s is leeg","Run Sync to update from source code":"Voer Sync uit om de broncode up te daten","No strings could be extracted from source code":"Er kon geen tekst uit de broncode gehaald worden","Run Sync to update from %s":"Gebruik Sync om vanuit %s up te daten","Source code has been modified, run Sync to update POT":"Broncode is veranderd. Gebruik Sync om POT up te daten","POT has been modified since PO file was saved, run Sync to update":"POT is veranderd sedert bewaren van het PO-bestand. Gebruik Sync om up te daten","Bad file path":"Foute bestandslocatie","New template":"Nieuw sjabloon","New language":"Nieuwe taal","%s%% translated":"%s%% vertaald","1 string":{"one":"1 te vertalen tekst","other":"%s te vertalen teksten"},"%s fuzzy":"%s onzeker","%s untranslated":"%s onvertaald","Loco, Translation Management":"Loco, vertalingsbeheer","Manage translations":"Beheer vertalingen","Unknown language":"Onbekende taal","Some files not writable":"Sommige bestanden hebben geen schrijfrechten","\"%s\" folder not writable":"Map \"%s\" heeft geen schrijfrechten","User does not have permission to manage translations":"Gebruik heeft geen rechten om vertalingen te beheren","Invalid data posted to server":"Ongeldige gegevens op server","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of maak het zelf aan.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of gebruik de downloadfunctie.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"Bestand %s kan niet beschreven worden door de webserver. Bewerk de schrijfrechten of download en kopieer naar \"%s\/%s\".","No strings could be extracted from source files":"Er konden geen te vertalen teksten uit de bronbestanden gehaald worden","Packages":"Pakketten","Package details":"Pakketdetails","Translations (PO)":"Vertalingen (PO)","Template (POT)":"Sjabloon (POT)","File permissions":"Bestandsrechten","1 language":{"one":"1 taal","other":"%u talen"},"Updated":"Ge\u00fcpdated","Powered by":"Ondersteund door","Template file":"Sjabloonbestand","never":"nooit","Save":"Opslaan","Download":"Downloaden","Sync":"Sync","Revert":"Ongedaan maken","Add":"Toevoegen","Del":"Verwijder","Fuzzy":"Onzeker","Filter translations":"Filter vertalingen","Help":"Help","Initialize new translations in %s":"Start nieuwe vertalingen in %s","Select from common languages":"Selecteer van gebruikelijke talen","or enter any language code":"of geef een taalcode op","Start translating":"Start vertalen","New version available":"Nieuwe versie beschikbaar","Upgrade to version %s of Loco Translate":"Loco Translate upgraden naar versie %s","Select a plugin or theme to translate":"Selecteer een plug-in of thema om te vertalen","Themes":"Thema's","Plugins":"Plug-ins"}
|
33 |
);
|
3 |
* Project: loco.js conversion
|
4 |
* Release: Working copy
|
5 |
* Locale: nl_NL, Dutch
|
6 |
+
* Exported at: Mon, 09 Jun 2014 18:07:31 +0100
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
10 |
+
// named plural forms
|
11 |
var pluralForms = ["one","other"];
|
12 |
|
13 |
// calc numeric index of a plural form (0-1)
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
+
{"Permission denied":"","Settings saved":"","PO file used as template. This will be renamed to %s on first save":"","Empty or invalid %s file":"","%s file has no header":"","Failed to compile MO file with built-in compiler":"","Translation options":"","Loco Translate":"","Settings":"","File download failed":"","Some files missing":"","POT file not writable":"","PO file not writable":"","MO file not writable":"","MO file not found":"","Folder not writable":"","Folder not found":"","Failed to compile MO file with %s, check your settings":"","Package not found called %s":"","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"","Cannot create MO file":"","Cannot overwrite MO file":"","Failed to write MO file":"","No source files in this package, nothing to sync":"","Unknown error":"","PO file saved":"","and MO file compiled":"","Merged from %s":"","Merged from source code":"","Already up to date with %s":"","Already up to date with source code":"","1 new string added":{"one":"","other":""},"1 obsolete string removed":{"one":"","other":""},"Your changes will be lost if you continue without saving":"","Source text":"","%s translation":"","Comments":"","Context":"","Translation":"","File check":"","File system permissions for %s":"","Back":"","Get help":"","OK":"OK","Loco may not work as expected":"","Configure Loco Translate":"","Compiling MO files":"","Use built-in MO compiler.":"","Use external command:":"","Enter path to msgfmt on server":"","Generate hash tables":"","Backing up PO files":"","Number of backups to keep of each file:":"","Experimental features":"","Enable Wordpress core translations":"","Save settings":"","Switch to...":"","create in <code>%s<\/code>":"","create in global languages directory":"","Core":"","Error":"Fout","Warning":"Waarschuwing","New PO file":"Nieuw PO-bestand","You must specify a valid locale for a new PO file":"Specifieer een geldige locale voor een nieuw PO-bestand","No translatable strings found":"Geen vertaalbare teksten gevonden","Cannot create a PO file.":"Kan geen PO-bestand aanmaken","PO file already exists with locale %s":"PO-bestand bestaat al in locale %s","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Bestand kan niet automatisch aangemaakt worden. Verander de rechten of gebruik download en bewaar.","%s file is empty":"Het bestand %s is leeg","Run Sync to update from source code":"Voer Sync uit om de broncode up te daten","No strings could be extracted from source code":"Er kon geen tekst uit de broncode gehaald worden","Run Sync to update from %s":"Gebruik Sync om vanuit %s up te daten","Source code has been modified, run Sync to update POT":"Broncode is veranderd. Gebruik Sync om POT up te daten","POT has been modified since PO file was saved, run Sync to update":"POT is veranderd sedert bewaren van het PO-bestand. Gebruik Sync om up te daten","Bad file path":"Foute bestandslocatie","New template":"Nieuw sjabloon","New language":"Nieuwe taal","%s%% translated":"%s%% vertaald","1 string":{"one":"1 te vertalen tekst","other":"%s te vertalen teksten"},"%s fuzzy":"%s onzeker","%s untranslated":"%s onvertaald","Loco, Translation Management":"Loco, vertalingsbeheer","Manage translations":"Beheer vertalingen","Unknown language":"Onbekende taal","Some files not writable":"Sommige bestanden hebben geen schrijfrechten","\"%s\" folder not writable":"Map \"%s\" heeft geen schrijfrechten","User does not have permission to manage translations":"Gebruik heeft geen rechten om vertalingen te beheren","Invalid data posted to server":"Ongeldige gegevens op server","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of maak het zelf aan.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of gebruik de downloadfunctie.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"Bestand %s kan niet beschreven worden door de webserver. Bewerk de schrijfrechten of download en kopieer naar \"%s\/%s\".","No strings could be extracted from source files":"Er konden geen te vertalen teksten uit de bronbestanden gehaald worden","Packages":"Pakketten","Package details":"Pakketdetails","Translations (PO)":"Vertalingen (PO)","Template (POT)":"Sjabloon (POT)","File permissions":"Bestandsrechten","1 language":{"one":"1 taal","other":"%u talen"},"Updated":"Ge\u00fcpdated","Powered by":"Ondersteund door","Template file":"Sjabloonbestand","never":"nooit","Save":"Opslaan","Download":"Downloaden","Sync":"Sync","Revert":"Ongedaan maken","Add":"Toevoegen","Del":"Verwijder","Fuzzy":"Onzeker","Filter translations":"Filter vertalingen","Help":"Help","Initialize new translations in %s":"Start nieuwe vertalingen in %s","Select from common languages":"Selecteer van gebruikelijke talen","or enter any language code":"of geef een taalcode op","Start translating":"Start vertalen","New version available":"Nieuwe versie beschikbaar","Upgrade to version %s of Loco Translate":"Loco Translate upgraden naar versie %s","Select a plugin or theme to translate":"Selecteer een plug-in of thema om te vertalen","Themes":"Thema's","Plugins":"Plug-ins"}
|
33 |
);
|
pub/js/lang/loco-translate-ru_RU.js
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Loco js export: JavaScript function
|
3 |
+
* Project: loco.js conversion
|
4 |
+
* Release: Working copy
|
5 |
+
* Locale: ru_RU, Russian
|
6 |
+
* Exported at: Mon, 09 Jun 2014 18:07:31 +0100
|
7 |
+
*/
|
8 |
+
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
+
|
10 |
+
// named plural forms
|
11 |
+
var pluralForms = ["one","few","many"];
|
12 |
+
|
13 |
+
// calc numeric index of a plural form (0-2)
|
14 |
+
function pluralIndex( n ){
|
15 |
+
return Number( (n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2) );
|
16 |
+
}
|
17 |
+
|
18 |
+
// expose public t() function
|
19 |
+
return function( msgid1, msgid2, n ){
|
20 |
+
var value = pairs[msgid1];
|
21 |
+
// singular if no multiplier
|
22 |
+
if( null == n ){
|
23 |
+
n = 1;
|
24 |
+
}
|
25 |
+
// plurals stored as objects, e.g. { one: "" }
|
26 |
+
if( value instanceof Object ){
|
27 |
+
value = value[ pluralForms[ pluralIndex(n) ] || 'one' ];
|
28 |
+
}
|
29 |
+
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
+
};
|
31 |
+
}(
|
32 |
+
{"Folder not found":"","No source files in this package, nothing to sync":"","Already up to date with %s":"","Already up to date with source code":"","Source text":"","%s translation":"","Comments":"","Context":"","Number of backups to keep of each file:":"","Experimental features":"","Enable Wordpress core translations":"","create in <code>%s<\/code>":"","create in global languages directory":"","Error":"\u041e\u0448\u0438\u0431\u043a\u0430","Warning":"\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435","OK":"\u041e\u041a","Permission denied":"\u0414\u043e\u0441\u0442\u0443\u043f \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d","Settings saved":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b","New PO file":"\u041d\u043e\u0432\u044b\u0439 \u0420\u041e \u0444\u0430\u0439\u043b","You must specify a valid locale for a new PO file":"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u043b\u043e\u043a\u0430\u043b\u044c \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0420\u041e \u0444\u0430\u0439\u043b\u0430","No translatable strings found":"\u041d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043e \u0441\u0442\u0440\u043e\u043a \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430","Cannot create a PO file.":"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0420\u041e \u0444\u0430\u0439\u043b","PO file already exists with locale %s":"PO \u0444\u0430\u0439\u043b \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u043b\u043e\u043a\u0430\u043b\u0438 %s","PO file used as template. This will be renamed to %s on first save":"PO \u0444\u0430\u0439\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0448\u0430\u0431\u043b\u043e\u043d. \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d \u0432 %s \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u043d\u0438\u0438.","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"\u0424\u0430\u0439\u043b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u0418\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u043e \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c","%s file is empty":"%s \u0444\u0430\u0439\u043b \u043f\u0443\u0441\u0442","Run Sync to update from source code":"\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430","No strings could be extracted from source code":"\u041d\u0435\u0442 \u0441\u0442\u0440\u043e\u043a \u0434\u043b\u044f \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430","Run Sync to update from %s":"\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437 ","Source code has been modified, run Sync to update POT":"\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0431\u044b\u043b \u0438\u0437\u043c\u0435\u043d\u0451\u043d. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0420\u041e\u0422","POT has been modified since PO file was saved, run Sync to update":"\u0420\u041e\u0422 \u0431\u044b\u043b \u0438\u0437\u043c\u0435\u043d\u0451\u043d \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0420\u041e. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f","Bad file path":"\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443","Empty or invalid %s file":"\u041f\u0443\u0441\u0442\u043e\u0439, \u0438\u043b\u0438 \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0435\u043d\u043d\u044b\u0439 %s \u0444\u0430\u0439\u043b","%s file has no header":"%s \u0444\u0430\u0439\u043b \u0431\u0435\u0437 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430","New template":"\u041d\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d","New language":"\u041d\u043e\u0432\u044b\u0439 \u044f\u0437\u044b\u043a","%s%% translated":"%s%% \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043e","1 string":{"one":"1 \u0441\u0442\u0440\u043e\u043a\u0430","few":"%s \u0441\u0442\u0440\u043e\u043a(\u0438)","many":null},"%s fuzzy":"\u043d\u0435\u0442\u043e\u0447\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434","%s untranslated":"%s \u043d\u0435 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043e","Failed to compile MO file with built-in compiler":"\u041e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u041c\u041e \u0444\u0430\u0439\u043b\u0430 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c","Loco, Translation Management":"Loco, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u043c\u0438","Manage translations":"\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u043c\u0438","Translation options":"\u041e\u043f\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430","Loco Translate":"\u041f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a Loco","Settings":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438","File download failed":"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u0430","Unknown language":"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u044f\u0437\u044b\u043a","Some files not writable":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","Some files missing":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0441 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438, \u0438\u043b\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442","\"%s\" folder not writable":"\"%s\" \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","POT file not writable":"\u0420\u041e\u0422 \u0444\u0430\u0439\u043b \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","PO file not writable":"\u0420\u041e \u0444\u0430\u0439\u043b \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","MO file not writable":"\u041c\u041e \u0444\u0430\u0439\u043b \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","MO file not found":"\u041c\u041e \u0444\u0430\u0439\u043b \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d","Folder not writable":"\u041a\u0430\u0442\u0430\u043b\u043e\u0433 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","User does not have permission to manage translations":"\u0423 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0430\u0432 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u043c\u0438","Failed to compile MO file with %s, check your settings":"\u041e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u041c\u041e \u0444\u0430\u0439\u043b\u0430 \u0441 %s . \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","Invalid data posted to server":"\u041d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435","Package not found called %s":"\u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d \u043f\u0430\u043a\u0435\u0442 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c ","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Web \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e \u0432 \"%s\". \u0418\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0438\u043b\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Web \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \"%s\" \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0432 \"%s\". \u0418\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0432\u0440\u0443\u0447\u043d\u0443\u044e","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Web \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \"%s\" . \u0418\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"%s \u0444\u0430\u0439\u043b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440. \u0418\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \"%s\/%s\".","Cannot create MO file":"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u041c\u041e \u0444\u0430\u0439\u043b","Cannot overwrite MO file":"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u041c\u041e \u0444\u0430\u0439\u043b","Failed to write MO file":"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u0438 \u041c\u041e \u0444\u0430\u0439\u043b\u0430","No strings could be extracted from source files":"\u041d\u0435\u0442 \u0441\u0442\u0440\u043e\u043a \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430","Unknown error":"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430","PO file saved":"\u0420\u041e \u0444\u0430\u0439\u043b \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d","and MO file compiled":"\u0438 \u041c\u041e \u0444\u0430\u0439\u043b \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d","Merged from %s":"\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043e \u0441 %s","Merged from source code":"\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043e \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c","1 new string added":{"one":"1 \u043d\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430","few":"%s \u043d\u043e\u0432\u044b\u0445 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e","many":null},"1 obsolete string removed":{"one":"1\u0441\u0442\u0440\u043e\u043a\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0430","few":"%s \u0441\u0442\u0440\u043e\u043a\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u043e","many":null},"Your changes will be lost if you continue without saving":"\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u044b, \u0435\u0441\u043b\u0438 \u0412\u044b \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435\u0441\u044c","Translation":"\u041f\u0435\u0440\u0435\u0432\u043e\u0434","Packages":"\u041f\u0430\u043a\u0435\u0442\u044b \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432","File check":"\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0444\u0430\u0439\u043b\u0430","File system permissions for %s":"\u041f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f ","Back":"\u041d\u0430\u0437\u0430\u0434","Get help":"\u041f\u043e\u043c\u043e\u0449\u044c","Package details":"\u0414\u0435\u0442\u0430\u043b\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\n\n","Translations (PO)":"\u041f\u0435\u0440\u0435\u0432\u043e\u0434\u044b (\u0420\u041e)\n","Template (POT)":"\u0428\u0430\u0431\u043b\u043e\u043d\u044b (\u0420\u041e\u0422)\n","File permissions":"\u041f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0443","1 language":{"one":"1 \u044f\u0437\u044b\u043a","few":"%u \u044f\u0437\u044b\u043a\u0430(\u043e\u0432)","many":null},"Updated":"\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043e","Powered by":"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e","Loco may not work as expected":"\u041f\u043b\u0430\u0433\u0438\u043d Loco \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043a\u0430\u043a \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c","Configure Loco Translate":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Loco","Compiling MO files":"\u041a\u043e\u043c\u043f\u0442\u043b\u044f\u0446\u0438\u044f \u041c\u041e \u0444\u0430\u0439\u043b\u043e\u0432","Use built-in MO compiler.":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u041c\u041e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440","Use external command:":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u044e\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443:","Enter path to msgfmt on server":"\u041f\u0443\u0442\u044c \u043a msgfmt \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435","Generate hash tables":"\u0413\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c hash \u0442\u0430\u0431\u043b\u0438\u0446\u044b","Backing up PO files":"\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0420\u041e \u0444\u0430\u0439\u043b\u043e\u0432","Save settings":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438","Template file":"\u0424\u0430\u0439\u043b \u0448\u0430\u0431\u043b\u043e\u043d\u0430","Switch to...":"\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430...","never":"\u043d\u0438\u043a\u043e\u0433\u0434\u0430","Save":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c","Download":"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c","Sync":"\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f","Revert":"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f","Add":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c","Del":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c","Fuzzy":"\u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u043a\u0430\u043a \u043d\u0435\u0442\u043e\u0447\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434","Filter translations":"\u041f\u043e\u0438\u0441\u043a \u0444\u0440\u0430\u0437\u044b \u043f\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0443","Help":"\u041f\u043e\u043c\u043e\u0449\u044c","Initialize new translations in %s":"\u041d\u0430\u0447\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 %s","Select from common languages":"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u044f\u0437\u044b\u043a \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430","or enter any language code":"\u0438\u043b\u0438 \u0432\u0432\u0435\u0441\u0442\u0438 \u043a\u043e\u0434 \u044f\u0437\u044b\u043a\u0430","Start translating":"\u041d\u0430\u0447\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0432\u043e\u0434","New version available":"\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f","Upgrade to version %s of Loco Translate":"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c Loco Translate \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 %s","Select a plugin or theme to translate":"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d \u0438\u043b\u0438 \u0442\u0435\u043c\u0443 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 ","Themes":"\u0422\u0435\u043c\u044b","Plugins":"\u041f\u043b\u0430\u0433\u0438\u043d\u044b","Core":"\u042f\u0434\u0440\u043e"}
|
33 |
+
);
|
pub/js/lang/loco-translate-sv_SE.js
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Loco js export: JavaScript function
|
3 |
+
* Project: loco.js conversion
|
4 |
+
* Release: Working copy
|
5 |
+
* Locale: sv_SE, Swedish
|
6 |
+
* Exported at: Mon, 09 Jun 2014 18:07:31 +0100
|
7 |
+
*/
|
8 |
+
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
+
|
10 |
+
// named plural forms
|
11 |
+
var pluralForms = ["one","other"];
|
12 |
+
|
13 |
+
// calc numeric index of a plural form (0-1)
|
14 |
+
function pluralIndex( n ){
|
15 |
+
return Number( n != 1 );
|
16 |
+
}
|
17 |
+
|
18 |
+
// expose public t() function
|
19 |
+
return function( msgid1, msgid2, n ){
|
20 |
+
var value = pairs[msgid1];
|
21 |
+
// singular if no multiplier
|
22 |
+
if( null == n ){
|
23 |
+
n = 1;
|
24 |
+
}
|
25 |
+
// plurals stored as objects, e.g. { one: "" }
|
26 |
+
if( value instanceof Object ){
|
27 |
+
value = value[ pluralForms[ pluralIndex(n) ] || 'one' ];
|
28 |
+
}
|
29 |
+
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
+
};
|
31 |
+
}(
|
32 |
+
{"Source text":"","%s translation":"","Comments":"","Context":"","create in <code>%s<\/code>":"","Error":"Fel","Warning":"Varning","OK":"OK","Permission denied":"Beh\u00f6righet saknas","Settings saved":"Inst\u00e4llningar sparade","New PO file":"Ny PO-fil","You must specify a valid locale for a new PO file":"Du m\u00e5ste ange en giltig landskod f\u00f6r en ny PO-fil","No translatable strings found":"Inga \u00f6vers\u00e4ttbara str\u00e4ngar hittades","Cannot create a PO file.":"Kunde ej skapa en PO-fil.","PO file already exists with locale %s":"PO-fil finns redan med landskod %s","PO file used as template. This will be renamed to %s on first save":"PO-fil anv\u00e4nds som mall. Den kommer att byta namn till %s n\u00e4r du v\u00e4ljer att spara","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Fil kunde ej skapas automatiskt. \u00c4ndra filr\u00e4ttigheter eller anv\u00e4nd Ladda ner ist\u00e4llet f\u00f6r Spara","%s file is empty":"%s-filen \u00e4r tom","Run Sync to update from source code":"Anv\u00e4nd Synka f\u00f6r att uppdatera fr\u00e5n k\u00e4llkoden","No strings could be extracted from source code":"Inga str\u00e4ngar kunde hittas fr\u00e5n k\u00e4llkoden","Run Sync to update from %s":"Anv\u00e4nd Synka f\u00f6r att uppdatera fr\u00e5n %s","Source code has been modified, run Sync to update POT":"K\u00e4llkod har \u00e4ndrats, anv\u00e4nd Synka f\u00f6r att uppdatera POT","POT has been modified since PO file was saved, run Sync to update":"POT har \u00e4ndrats sedan PO-filen sparades, anv\u00e4nd Synka f\u00f6r att uppdatera","Bad file path":"Ogiltig s\u00f6kv\u00e4g","Empty or invalid %s file":"Tom eller ogiltigt %s-fil","%s file has no header":"%s-filen saknar header","New template":"Ny mall","New language":"Nytt spr\u00e5k","%s%% translated":"%s%% \u00f6versatt","1 string":{"one":"1 str\u00e4ng","other":"%s str\u00e4ngar"},"%s fuzzy":"%s oklar","%s untranslated":"%s ej \u00f6versatta","Failed to compile MO file with built-in compiler":"Det gick ej att sammanst\u00e4lla MO-fil med inbyggd kompilator","Loco, Translation Management":"Loco, Translation Management","Manage translations":"Spr\u00e5kfiler","Translation options":"Inst\u00e4llningar","Loco Translate":"\u00d6vers\u00e4ttningar","Settings":"Inst\u00e4llningar","File download failed":"Nedladdning misslyckades","Unknown language":"Ok\u00e4nt spr\u00e5k","Some files not writable":"Vissa filer \u00e4r ej skrivbara","Some files missing":"Vissa filer saknas","\"%s\" folder not writable":"Mappen \"%s\" \u00e4r ej skrivbar","POT file not writable":"POT-filen \u00e4r ej skrivbar","PO file not writable":"PO-filen \u00e4r ej skrivbar","MO file not writable":"MO-filen \u00e4r ej skrivbar","MO file not found":"MO-fil hittades ej","Folder not writable":"Mappen \u00e4r ej skrivbar","Folder not found":"Mappen hittades ej","User does not have permission to manage translations":"Anv\u00e4ndaren saknar beh\u00f6righet att hantera \u00f6vers\u00e4ttningar","Failed to compile MO file with %s, check your settings":"Det gick ej sammanst\u00e4lla MO-filen med %s , kontrollera dina inst\u00e4llningar","Invalid data posted to server":"Ogiltig data skickades till servern","Package not found called %s":"Paket %s ej hittat","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Webbservern kunde ej skapa s\u00e4kerhetskopior i \"%s\". \u00c4ndra filr\u00e4ttigheter eller inaktivera s\u00e4kerhetskopior i inst\u00e4llningarna","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Webbservern kunde ej skapa mappen \"%s\" i \"%s\". \u00c4ndra filr\u00e4ttigheter eller skapa den manuellt.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Webbservern kunde ej skapa filer i mappen \"%s\". \u00c4ndra filr\u00e4ttigheter eller anv\u00e4nd nedladdningsfunktionen.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"%s-filen \u00e4r ej skrivbar av webbservern. \u00c4ndra filr\u00e4ttigheter eller ladda ner och kopiera till \"%s\/%s\".","Cannot create MO file":"Kunde ej skapa MO-fil","Cannot overwrite MO file":"Kunde ej skriva \u00f6ver MO-fil","Failed to write MO file":"Kunde ej skapa MO-fil","No source files in this package, nothing to sync":"Inga k\u00e4llfiler hittades till denna spr\u00e5kfil, ingenting att synkronisera","No strings could be extracted from source files":"Inga str\u00e4ngar kunde hittas fr\u00e5n k\u00e4llfiler","Unknown error":"Ok\u00e4nt fel","PO file saved":"PO-fil sparad","and MO file compiled":"och MO-fil sammanst\u00e4lld","Merged from %s":"Sammanslagen fr\u00e5n %s","Merged from source code":"Sammanslagen fr\u00e5n k\u00e4llkod","Already up to date with %s":"Redan aktuell med %s","Already up to date with source code":"Redan aktuell med k\u00e4llkod","1 new string added":{"one":"1 ny str\u00e4ng tillagd","other":"%s nya str\u00e4ngar tillagda"},"1 obsolete string removed":{"one":"1 f\u00f6r\u00e5ldrad str\u00e4ng togs bort","other":"%s f\u00f6r\u00e5ldrade str\u00e4ngar togs bort"},"Your changes will be lost if you continue without saving":"Dina \u00e4ndringar kommer att g\u00e5 f\u00f6rlorade om du forts\u00e4tter utan att spara","Translation":"\u00d6vers\u00e4ttning","Packages":"Spr\u00e5kfiler","File check":"Filr\u00e4ttigheter","File system permissions for %s":"Filsystem r\u00e4ttigheter f\u00f6r %s","Back":"Tillbaka","Get help":"Hj\u00e4lp","Package details":"Beskrivning","Translations (PO)":"\u00d6vers\u00e4ttningar (PO)","Template (POT)":"Mall (POT)","File permissions":"Filr\u00e4ttigheter","1 language":{"one":"1 spr\u00e5k","other":"%u spr\u00e5k"},"Updated":"Uppdaterad","Powered by":"Drivs av","Loco may not work as expected":"Loco kanske ej fungerar som v\u00e4ntat","Configure Loco Translate":"Konfigurera Loco Translate","Compiling MO files":"Sammanst\u00e4lla MO-filer","Use built-in MO compiler.":"Anv\u00e4nd inbyggd MO-kompilator.","Use external command:":"Anv\u00e4nd externt kommando:","Enter path to msgfmt on server":"Skriv in s\u00f6kv\u00e4g till msgfmt p\u00e5 servern","Generate hash tables":"Generera hashtabeller","Backing up PO files":"S\u00e4kerhetskopiera PO-filer","Number of backups to keep of each file:":"Antal s\u00e4kerhetskopior att beh\u00e5lla f\u00f6r varje fil:","Experimental features":"Experimentella funktioner","Enable Wordpress core translations":"Aktivera Wordpress \u00f6vers\u00e4ttningar","Save settings":"Spara inst\u00e4llningar","Template file":"Mallfil","Switch to...":"V\u00e4xla till...","never":"aldrig","Save":"Spara","Download":"Ladda ner","Sync":"Synka","Revert":"\u00c5terg\u00e5","Add":"L\u00e4gg till","Del":"Radera","Fuzzy":"Oklar","Filter translations":"S\u00f6k \u00f6vers\u00e4ttningar","Help":"Hj\u00e4lp","Initialize new translations in %s":"Skapa nya \u00f6vers\u00e4ttningar i %s","Select from common languages":"V\u00e4lj bland vanliga spr\u00e5k","or enter any language code":"eller skriv valfri landskod","create in global languages directory":"skapa i den globala spr\u00e5k katalogen","Start translating":"B\u00f6rja \u00f6vers\u00e4tta","New version available":"Ny version tillg\u00e4nglig","Upgrade to version %s of Loco Translate":"Uppdatera till version %s av Loco Translate","Select a plugin or theme to translate":"V\u00e4lj ett till\u00e4gg eller tema att \u00f6vers\u00e4tta","Themes":"Teman","Plugins":"Till\u00e4gg","Core":"Wordpress"}
|
33 |
+
);
|
pub/js/lang/loco-translate-tr_TR.js
CHANGED
@@ -3,16 +3,16 @@
|
|
3 |
* Project: loco.js conversion
|
4 |
* Release: Working copy
|
5 |
* Locale: tr_TR, Turkish
|
6 |
-
* Exported at:
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
10 |
-
// named plural forms
|
11 |
var pluralForms = ["other"];
|
12 |
|
13 |
-
// calc numeric index of a plural form (0-
|
14 |
function pluralIndex( n ){
|
15 |
-
return Number(
|
16 |
}
|
17 |
|
18 |
// expose public t() function
|
@@ -29,5 +29,5 @@ loco = window.loco||{}, loco.t = function( pairs ){
|
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
-
{"Permission denied":"","PO file used as template. This will be renamed to %s on first save":"","Empty or invalid %s file":"","%s file has no header":"","Translation options":"","Loco Translate":"","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"","Loco may not work as expected":"","Backing up PO files":"","Number of backups to keep of each file:":"","Error":"Hata","Warning":"Uyar\u0131","OK":"TAMAM","Settings saved":"Ayarlar sakland\u0131","New PO file":"Yeni PO Dosyas\u0131","You must specify a valid locale for a new PO file":"Yeni PO dosyas\u0131 i\u00e7in ge\u00e7erli bir locale de\u011feri belirtmek zorundas\u0131n\u0131z","No translatable strings found":"\u00c7evrilebilir c\u00fcmle bulunamad\u0131","Cannot create a PO file.":"Bir PO dosyas\u0131 olu\u015fturulam\u0131yor.","PO file already exists with locale %s":"PO dosyas\u0131 %s locale de\u011feri ile zaten mevcut","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Dosya otomatik olarak olu\u015fturulam\u0131yor. Dosya izinlerini tamir edin ya da Saklama yerine \u0130ndirin.","%s file is empty":"%s dosyas\u0131 bo\u015f","Run Sync to update from source code":"Kaynak dosyas\u0131ndan g\u00fcncelleme i\u00e7in Senkr. \u00e7al\u0131\u015ft\u0131r","No strings could be extracted from source code":"Kaynak kodundan herhangi c\u00fcmle \u00e7\u0131kar\u0131lamad\u0131","Run Sync to update from %s":"%s \u00fczerinden g\u00fcncelleme i\u00e7in Senkr. \u00e7al\u0131\u015ft\u0131r","Source code has been modified, run Sync to update POT":"Kaynak dosyas\u0131 de\u011fi\u015ftirilmi\u015f, POT g\u00fcncellemesi i\u00e7in Senkr. \u00e7al\u0131\u015ft\u0131r\u0131n","POT has been modified since PO file was saved, run Sync to update":"PO dosyas\u0131 en son sakland\u0131\u011f\u0131ndan beri POT de\u011fi\u015fikli\u011fe u\u011fram\u0131\u015f, g\u00fcncelleme i\u00e7in Senkr. \u00e7al\u0131\u015ft\u0131r\u0131n.","Bad file path":"Uygun olmayan dosya yolu","New template":"Yeni \u015fablon","New language":"Yeni dil","%s%% translated":"%s%% \u00e7evrildi","1 string":{"other":"1 c\u00fcmle"},"%s fuzzy":"%s bulan\u0131k","%s untranslated":"%s \u00e7evrilmemi\u015f","Failed to compile MO file with built-in compiler":"Dahili derleyici ile MO derlemesinde hata","Loco, Translation Management":"Loco, \u00c7evri Y\u00f6netimi","Manage translations":"\u00c7evrileri Y\u00f6net","Settings":"Ayarlar","File download failed":"Dosya indirme hatas\u0131","Unknown language":"Bilinmeyen dil","Some files not writable":"Baz\u0131 dosyalar yaz\u0131labilir de\u011fil","Some files missing":"Baz\u0131 dosyalar eksik","\"%s\" folder not writable":"\"%s\" dizini yaz\u0131labilir de\u011fil","POT file not writable":"POT dosyas\u0131 yaz\u0131labilir de\u011fil","PO file not writable":"PO dosyas\u0131 yaz\u0131labilir de\u011fil","MO file not writable":"MO dosyas\u0131 yaz\u0131labilir de\u011fil","MO file not found":"MO dosyas\u0131 bulunamad\u0131","Folder not writable":"Dizin yaz\u0131labilir de\u011fil","User does not have permission to manage translations":"Kullan\u0131c\u0131 \u00e7evrileri y\u00f6netmeye yetkili de\u011fil","Failed to compile MO file with %s, check your settings":"%s ile MO dosyas\u0131 derlemede hata, ayarlar\u0131n\u0131z\u0131 denetleyin","Invalid data posted to server":"Sunucuya g\u00f6nderili veri ge\u00e7ersiz","Package not found called %s":"%s isimli paket bulunamad\u0131","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Web sunucusu \"%s\" dizini olu\u015fturam\u0131yor \"%s\" i\u00e7inde. Dosya izinlerini tamir edin ya da elle olu\u015fturun.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Web sunucusu \"%s\" dizini i\u00e7inde dosya olu\u015fturam\u0131yor. Dosya izinlerini tamir edin ya da indirme fonksiyonunu kullan\u0131n.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"%s dosyas\u0131 web sunucu taraf\u0131ndan yaz\u0131lamaz durumda. Dosya izinlerini tamir edin ya da indirip \"%s\/%s\" yoluna kopyalay\u0131n.","Cannot create MO file":"MO dosyas\u0131 olu\u015fturulam\u0131yor","Cannot overwrite MO file":"MO dosyas\u0131 \u00fczerine yaz\u0131lam\u0131yor","Failed to write MO file":"MO dosyas\u0131 yazmada hata","No strings could be extracted from source files":"Kaynak dosyalar\u0131ndan herhangi c\u00fcmle \u00e7\u0131kart\u0131lamad\u0131","Unknown error":"Bilinmeyen hata","PO file saved":"PO dosyas\u0131 sakland\u0131","and MO file compiled":"ve MO dosyas\u0131 derlendi","Merged from %s":"%s \u00fczerinden birle\u015ftirildi","Merged from source code":"Kaynak kodtan birle\u015ftirildi","Already up to date with %s":"%s ile zaten g\u00fcncel","Already up to date with source code":"Kaynak kod ile zaten g\u00fcncel","1 new string added":{"other":"1 yeni c\u00fcmle eklendi"},"1 obsolete string removed":{"other":"1 kullan\u0131md\u0131\u015f\u0131 c\u00fcmle kald\u0131r\u0131ld\u0131"},"Your changes will be lost if you continue without saving":"Saklamadan devam ederseniz de\u011fi\u015fiklikleriniz kaybolacak","Translation":"\u00c7evri","Packages":"Paketler","File check":"Dosya denetimi","File system permissions for %s":"%s i\u00e7in dosya sistemi izinleri","Back":"Geri","Get help":"Yard\u0131m al","Package details":"Paket detaylar\u0131","Translations (PO)":"\u00c7evriler (PO)","Template (POT)":"\u015eablon (POT)","File permissions":"Dosya izinleri","1 language":{"other":"1 dil"},"Updated":"G\u00fcncel","Powered by":"Destekleyici:","Configure Loco Translate":"Loco Translate'i konfig\u00fcre et","Compiling MO files":"MO dosyalar\u0131 derleme","Use built-in MO compiler.":"Dahili MO derleyici kullan.","Use external command:":"Harici komut kullan:","Enter path to msgfmt on server":"Sunucudaki msgfmt'ye yol gir","Generate hash tables":"Hash tablolar\u0131 \u00fcret","Save settings":"Ayarlar\u0131 sakla","Template file":"\u015eablon dosyas\u0131","Switch to...":"Ge\u00e7:","never":"asla","Save":"Sakla","Download":"\u0130ndir","Sync":"Senkr.","Revert":"S\u0131f\u0131rla","Add":"Ekle","Del":"Sil","Fuzzy":"Bulan\u0131k","Filter translations":"\u00c7evrileri filtrele","Help":"Yard\u0131m","Initialize new translations in %s":"%s i\u00e7in yeni \u00e7evriler ba\u015flat","Select from common languages":"Yayg\u0131n diller aras\u0131ndan se\u00e7","or enter any language code":"veya herhangi dil kodu gir","Start translating":"\u00c7evriye Ba\u015fla","New version available":"Yeni versiyon mevcut","Upgrade to version %s of Loco Translate":"Loco Translate'in %s versiyonuna y\u00fckselt","Select a plugin or theme to translate":"\u00c7evirisini yapmak i\u00e7in bir eklenti ya da tema se\u00e7","Themes":"Temalar","Plugins":"Eklentiler","Core":"\u00c7ekirdek"}
|
33 |
);
|
3 |
* Project: loco.js conversion
|
4 |
* Release: Working copy
|
5 |
* Locale: tr_TR, Turkish
|
6 |
+
* Exported at: Mon, 09 Jun 2014 18:07:31 +0100
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
10 |
+
// named plural forms
|
11 |
var pluralForms = ["other"];
|
12 |
|
13 |
+
// calc numeric index of a plural form (0-0)
|
14 |
function pluralIndex( n ){
|
15 |
+
return Number( 0 );
|
16 |
}
|
17 |
|
18 |
// expose public t() function
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
+
{"Permission denied":"","PO file used as template. This will be renamed to %s on first save":"","Empty or invalid %s file":"","%s file has no header":"","Translation options":"","Loco Translate":"","Folder not found":"","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"","No source files in this package, nothing to sync":"","Source text":"","%s translation":"","Comments":"","Context":"","Loco may not work as expected":"","Backing up PO files":"","Number of backups to keep of each file:":"","Experimental features":"","Enable Wordpress core translations":"","create in <code>%s<\/code>":"","create in global languages directory":"","Error":"Hata","Warning":"Uyar\u0131","OK":"TAMAM","Settings saved":"Ayarlar sakland\u0131","New PO file":"Yeni PO Dosyas\u0131","You must specify a valid locale for a new PO file":"Yeni PO dosyas\u0131 i\u00e7in ge\u00e7erli bir locale de\u011feri belirtmek zorundas\u0131n\u0131z","No translatable strings found":"\u00c7evrilebilir c\u00fcmle bulunamad\u0131","Cannot create a PO file.":"Bir PO dosyas\u0131 olu\u015fturulam\u0131yor.","PO file already exists with locale %s":"PO dosyas\u0131 %s locale de\u011feri ile zaten mevcut","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Dosya otomatik olarak olu\u015fturulam\u0131yor. Dosya izinlerini tamir edin ya da Saklama yerine \u0130ndirin.","%s file is empty":"%s dosyas\u0131 bo\u015f","Run Sync to update from source code":"Kaynak dosyas\u0131ndan g\u00fcncelleme i\u00e7in Senkr. \u00e7al\u0131\u015ft\u0131r","No strings could be extracted from source code":"Kaynak kodundan herhangi c\u00fcmle \u00e7\u0131kar\u0131lamad\u0131","Run Sync to update from %s":"%s \u00fczerinden g\u00fcncelleme i\u00e7in Senkr. \u00e7al\u0131\u015ft\u0131r","Source code has been modified, run Sync to update POT":"Kaynak dosyas\u0131 de\u011fi\u015ftirilmi\u015f, POT g\u00fcncellemesi i\u00e7in Senkr. \u00e7al\u0131\u015ft\u0131r\u0131n","POT has been modified since PO file was saved, run Sync to update":"PO dosyas\u0131 en son sakland\u0131\u011f\u0131ndan beri POT de\u011fi\u015fikli\u011fe u\u011fram\u0131\u015f, g\u00fcncelleme i\u00e7in Senkr. \u00e7al\u0131\u015ft\u0131r\u0131n.","Bad file path":"Uygun olmayan dosya yolu","New template":"Yeni \u015fablon","New language":"Yeni dil","%s%% translated":"%s%% \u00e7evrildi","1 string":{"other":"1 c\u00fcmle"},"%s fuzzy":"%s bulan\u0131k","%s untranslated":"%s \u00e7evrilmemi\u015f","Failed to compile MO file with built-in compiler":"Dahili derleyici ile MO derlemesinde hata","Loco, Translation Management":"Loco, \u00c7evri Y\u00f6netimi","Manage translations":"\u00c7evrileri Y\u00f6net","Settings":"Ayarlar","File download failed":"Dosya indirme hatas\u0131","Unknown language":"Bilinmeyen dil","Some files not writable":"Baz\u0131 dosyalar yaz\u0131labilir de\u011fil","Some files missing":"Baz\u0131 dosyalar eksik","\"%s\" folder not writable":"\"%s\" dizini yaz\u0131labilir de\u011fil","POT file not writable":"POT dosyas\u0131 yaz\u0131labilir de\u011fil","PO file not writable":"PO dosyas\u0131 yaz\u0131labilir de\u011fil","MO file not writable":"MO dosyas\u0131 yaz\u0131labilir de\u011fil","MO file not found":"MO dosyas\u0131 bulunamad\u0131","Folder not writable":"Dizin yaz\u0131labilir de\u011fil","User does not have permission to manage translations":"Kullan\u0131c\u0131 \u00e7evrileri y\u00f6netmeye yetkili de\u011fil","Failed to compile MO file with %s, check your settings":"%s ile MO dosyas\u0131 derlemede hata, ayarlar\u0131n\u0131z\u0131 denetleyin","Invalid data posted to server":"Sunucuya g\u00f6nderili veri ge\u00e7ersiz","Package not found called %s":"%s isimli paket bulunamad\u0131","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Web sunucusu \"%s\" dizini olu\u015fturam\u0131yor \"%s\" i\u00e7inde. Dosya izinlerini tamir edin ya da elle olu\u015fturun.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Web sunucusu \"%s\" dizini i\u00e7inde dosya olu\u015fturam\u0131yor. Dosya izinlerini tamir edin ya da indirme fonksiyonunu kullan\u0131n.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"%s dosyas\u0131 web sunucu taraf\u0131ndan yaz\u0131lamaz durumda. Dosya izinlerini tamir edin ya da indirip \"%s\/%s\" yoluna kopyalay\u0131n.","Cannot create MO file":"MO dosyas\u0131 olu\u015fturulam\u0131yor","Cannot overwrite MO file":"MO dosyas\u0131 \u00fczerine yaz\u0131lam\u0131yor","Failed to write MO file":"MO dosyas\u0131 yazmada hata","No strings could be extracted from source files":"Kaynak dosyalar\u0131ndan herhangi c\u00fcmle \u00e7\u0131kart\u0131lamad\u0131","Unknown error":"Bilinmeyen hata","PO file saved":"PO dosyas\u0131 sakland\u0131","and MO file compiled":"ve MO dosyas\u0131 derlendi","Merged from %s":"%s \u00fczerinden birle\u015ftirildi","Merged from source code":"Kaynak kodtan birle\u015ftirildi","Already up to date with %s":"%s ile zaten g\u00fcncel","Already up to date with source code":"Kaynak kod ile zaten g\u00fcncel","1 new string added":{"other":"1 yeni c\u00fcmle eklendi"},"1 obsolete string removed":{"other":"1 kullan\u0131md\u0131\u015f\u0131 c\u00fcmle kald\u0131r\u0131ld\u0131"},"Your changes will be lost if you continue without saving":"Saklamadan devam ederseniz de\u011fi\u015fiklikleriniz kaybolacak","Translation":"\u00c7evri","Packages":"Paketler","File check":"Dosya denetimi","File system permissions for %s":"%s i\u00e7in dosya sistemi izinleri","Back":"Geri","Get help":"Yard\u0131m al","Package details":"Paket detaylar\u0131","Translations (PO)":"\u00c7evriler (PO)","Template (POT)":"\u015eablon (POT)","File permissions":"Dosya izinleri","1 language":{"other":"1 dil"},"Updated":"G\u00fcncel","Powered by":"Destekleyici:","Configure Loco Translate":"Loco Translate'i konfig\u00fcre et","Compiling MO files":"MO dosyalar\u0131 derleme","Use built-in MO compiler.":"Dahili MO derleyici kullan.","Use external command:":"Harici komut kullan:","Enter path to msgfmt on server":"Sunucudaki msgfmt'ye yol gir","Generate hash tables":"Hash tablolar\u0131 \u00fcret","Save settings":"Ayarlar\u0131 sakla","Template file":"\u015eablon dosyas\u0131","Switch to...":"Ge\u00e7:","never":"asla","Save":"Sakla","Download":"\u0130ndir","Sync":"Senkr.","Revert":"S\u0131f\u0131rla","Add":"Ekle","Del":"Sil","Fuzzy":"Bulan\u0131k","Filter translations":"\u00c7evrileri filtrele","Help":"Yard\u0131m","Initialize new translations in %s":"%s i\u00e7in yeni \u00e7evriler ba\u015flat","Select from common languages":"Yayg\u0131n diller aras\u0131ndan se\u00e7","or enter any language code":"veya herhangi dil kodu gir","Start translating":"\u00c7evriye Ba\u015fla","New version available":"Yeni versiyon mevcut","Upgrade to version %s of Loco Translate":"Loco Translate'in %s versiyonuna y\u00fckselt","Select a plugin or theme to translate":"\u00c7evirisini yapmak i\u00e7in bir eklenti ya da tema se\u00e7","Themes":"Temalar","Plugins":"Eklentiler","Core":"\u00c7ekirdek"}
|
33 |
);
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: timwhitlock
|
3 |
Tags: translation, translators, localization, localisation, l10n, i18n, Gettext, POEdit, productivity
|
4 |
Requires at least: 3.5
|
5 |
-
Tested up to: 3.9
|
6 |
-
Stable tag: 1.4.
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -20,6 +20,8 @@ Features include:
|
|
20 |
* Create and update language files directly in your theme or plugin
|
21 |
* Extraction of translatable strings from your source code
|
22 |
* Native MO file compilation without the need for Gettext on your system
|
|
|
|
|
23 |
|
24 |
Official [Loco](https://localise.biz/) WordPress plugin by <a href="//twitter.com/timwhitlock">@timwhitlock</a> / <a rel="author" href="https://plus.google.com/106703751121449519322">Tim Whitlock</a>
|
25 |
|
@@ -29,19 +31,19 @@ Official [Loco](https://localise.biz/) WordPress plugin by <a href="//twitter.co
|
|
29 |
|
30 |
1. Unzip all files to the `/wp-content/plugins/loco-translate` directory
|
31 |
2. Log into Wordpress admin and activate the 'Loco Translate' plugin through the 'Plugins' menu
|
32 |
-
3. Go to *
|
33 |
|
34 |
|
35 |
If you want to create new translations for a theme or plugin, follow these steps:
|
36 |
|
37 |
1. Create a `languages` directory in your plugin or theme's root directory
|
38 |
2. Make the new directory writable by the web server
|
39 |
-
3. Find the theme or plugin in the list at *
|
40 |
4. Click `+ New language` and follow the on-screen prompts.
|
41 |
|
42 |
A quick guide on using the plugin is [available here](https://localise.biz/help/wordpress/translate-plugin), but make sure you're familiar with the conventions of [Translating Wordpress](http://codex.wordpress.org/Translating_WordPress) before you start.
|
43 |
|
44 |
-
Please note that this plugin doesn’t support Windows servers.
|
45 |
|
46 |
|
47 |
== Frequently Asked Questions ==
|
@@ -57,6 +59,13 @@ The extraction process looks for Wordpress translation functions with string lit
|
|
57 |
|
58 |
Using your own custom functions like `myTranslate('Foo')` won't work. Neither will using variables, such as `__( $foo )`.
|
59 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
|
61 |
= Do I need to create a POT file? =
|
62 |
|
@@ -84,7 +93,8 @@ You can configure the path to the `msgfmt` program in the Settings tab.
|
|
84 |
|
85 |
= Does it support Windows? =
|
86 |
|
87 |
-
|
|
|
88 |
|
89 |
|
90 |
|
@@ -97,6 +107,18 @@ At the user end, yes you can access the interface on Windows using Internet Expl
|
|
97 |
|
98 |
== Changelog ==
|
99 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
= 1.4.4 =
|
101 |
* Fixed bug in prefixing new PO files with text domain based on existing files
|
102 |
* Language file updates
|
@@ -175,7 +197,7 @@ At the user end, yes you can access the interface on Windows using Internet Expl
|
|
175 |
|
176 |
== Upgrade Notice ==
|
177 |
|
178 |
-
= 1.4.
|
179 |
* Bug fixes and improvements.
|
180 |
|
181 |
|
@@ -194,4 +216,6 @@ These features are on our todo list. There's no particular timeframe for any of
|
|
194 |
* Dutch translations courtesy of [Niels Geryl](http://hetwittepaard.be)
|
195 |
* German translations courtesy of [Sebastian König](http://aykutmania.de)
|
196 |
* Turkish translations courtesy of [Abdullah Pazarbaşı](http://abdullahpazarbasi.com)
|
|
|
|
|
197 |
|
2 |
Contributors: timwhitlock
|
3 |
Tags: translation, translators, localization, localisation, l10n, i18n, Gettext, POEdit, productivity
|
4 |
Requires at least: 3.5
|
5 |
+
Tested up to: 3.9.1
|
6 |
+
Stable tag: 1.4.5
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
20 |
* Create and update language files directly in your theme or plugin
|
21 |
* Extraction of translatable strings from your source code
|
22 |
* Native MO file compilation without the need for Gettext on your system
|
23 |
+
* Support for PO features including comments, references and plural forms
|
24 |
+
* Configurable PO file backups
|
25 |
|
26 |
Official [Loco](https://localise.biz/) WordPress plugin by <a href="//twitter.com/timwhitlock">@timwhitlock</a> / <a rel="author" href="https://plus.google.com/106703751121449519322">Tim Whitlock</a>
|
27 |
|
31 |
|
32 |
1. Unzip all files to the `/wp-content/plugins/loco-translate` directory
|
33 |
2. Log into Wordpress admin and activate the 'Loco Translate' plugin through the 'Plugins' menu
|
34 |
+
3. Go to *Loco Translate > Manage Translations* in the left-hand menu to start translating
|
35 |
|
36 |
|
37 |
If you want to create new translations for a theme or plugin, follow these steps:
|
38 |
|
39 |
1. Create a `languages` directory in your plugin or theme's root directory
|
40 |
2. Make the new directory writable by the web server
|
41 |
+
3. Find the theme or plugin in the list at *Loco Translate > Manage Translations*
|
42 |
4. Click `+ New language` and follow the on-screen prompts.
|
43 |
|
44 |
A quick guide on using the plugin is [available here](https://localise.biz/help/wordpress/translate-plugin), but make sure you're familiar with the conventions of [Translating Wordpress](http://codex.wordpress.org/Translating_WordPress) before you start.
|
45 |
|
46 |
+
Please note that this plugin doesn’t support Windows servers and the editor doesn't fully support MSIE<=8.
|
47 |
|
48 |
|
49 |
== Frequently Asked Questions ==
|
59 |
|
60 |
Using your own custom functions like `myTranslate('Foo')` won't work. Neither will using variables, such as `__( $foo )`.
|
61 |
|
62 |
+
= Why can't I see the translations appearing in my theme/plugin? =
|
63 |
+
|
64 |
+
All Loco Translate does is manage your translation process and organize your files. There is more to localizing your theme or plugin than just creating the files.
|
65 |
+
|
66 |
+
Make sure you're familiar with the conventions of [translating Wordpress](http://codex.wordpress.org/Translating_WordPress) and if you think Loco is saving invalid files or putting them in the wrong place, then open a [support ticket](http://wordpress.org/support/plugin/loco-translate).
|
67 |
+
|
68 |
+
|
69 |
|
70 |
= Do I need to create a POT file? =
|
71 |
|
93 |
|
94 |
= Does it support Windows? =
|
95 |
|
96 |
+
You can access the interface on Windows using Internet Explorer, but version 9 or above is recommended.
|
97 |
+
Loco Translate does not support Windows versions of PHP, so if your server running Wordpress has a Windows operating system the back end may not work properly.
|
98 |
|
99 |
|
100 |
|
107 |
|
108 |
== Changelog ==
|
109 |
|
110 |
+
= 1.4.5 =
|
111 |
+
* Support for Domain Path tag
|
112 |
+
* Added choice of location when language and package dirs both writable
|
113 |
+
* Fixed bug extracting domain from file names
|
114 |
+
* Child themes always have their own text domain and don't duplicate parent files
|
115 |
+
* Better plural support in po file editor
|
116 |
+
* Added experimental support for core packages
|
117 |
+
* Tested in WP 3.9.1
|
118 |
+
* Added Swedish translations
|
119 |
+
* Added Russian translations
|
120 |
+
* Added text filter clear button
|
121 |
+
|
122 |
= 1.4.4 =
|
123 |
* Fixed bug in prefixing new PO files with text domain based on existing files
|
124 |
* Language file updates
|
197 |
|
198 |
== Upgrade Notice ==
|
199 |
|
200 |
+
= 1.4.5 =
|
201 |
* Bug fixes and improvements.
|
202 |
|
203 |
|
216 |
* Dutch translations courtesy of [Niels Geryl](http://hetwittepaard.be)
|
217 |
* German translations courtesy of [Sebastian König](http://aykutmania.de)
|
218 |
* Turkish translations courtesy of [Abdullah Pazarbaşı](http://abdullahpazarbasi.com)
|
219 |
+
* Swedish translations courtesy of [Jimmy Malmqvist](http://jimmymalmqvist.com)
|
220 |
+
* Russian translations courtesy of [Alexey Tkachenko](http://atkachenko.ru)
|
221 |
|
tpl/admin-list.tpl.php
CHANGED
@@ -32,7 +32,7 @@
|
|
32 |
<td>
|
33 |
<ul class="loco-details">
|
34 |
<li title="<?php Loco::h($domain)?>">
|
35 |
-
<strong><?php Loco::h($
|
36 |
</li><?php
|
37 |
if( isset($parent) ):?>
|
38 |
<li>
|
@@ -65,7 +65,7 @@
|
|
65 |
?>
|
66 |
<li class="loco-edit-po">
|
67 |
<?php echo LocoAdmin::edit_link( $package, $po_path, $label, $po_locale->icon_class() )?>
|
68 |
-
<small class="loco-progress">
|
69 |
<?php echo $po_stats['p']?>%
|
70 |
</small>
|
71 |
</li><?php
|
@@ -82,12 +82,11 @@
|
|
82 |
<?php echo LocoAdmin::edit_link( $package, $pot_path )?>
|
83 |
</li><?php
|
84 |
endforeach;
|
85 |
-
// else no POT file
|
86 |
else:?>
|
87 |
<li class="loco-add">
|
88 |
<?php echo LocoAdmin::xgettext_link( $package )?>
|
89 |
</li><?php
|
90 |
-
endif
|
91 |
</ul>
|
92 |
</td>
|
93 |
<td>
|
32 |
<td>
|
33 |
<ul class="loco-details">
|
34 |
<li title="<?php Loco::h($domain)?>">
|
35 |
+
<strong><?php Loco::h($package->get_name())?></strong>
|
36 |
</li><?php
|
37 |
if( isset($parent) ):?>
|
38 |
<li>
|
65 |
?>
|
66 |
<li class="loco-edit-po">
|
67 |
<?php echo LocoAdmin::edit_link( $package, $po_path, $label, $po_locale->icon_class() )?>
|
68 |
+
<small class="loco-progress" title="<?php echo $po_stats['p']?>">
|
69 |
<?php echo $po_stats['p']?>%
|
70 |
</small>
|
71 |
</li><?php
|
82 |
<?php echo LocoAdmin::edit_link( $package, $pot_path )?>
|
83 |
</li><?php
|
84 |
endforeach;
|
|
|
85 |
else:?>
|
86 |
<li class="loco-add">
|
87 |
<?php echo LocoAdmin::xgettext_link( $package )?>
|
88 |
</li><?php
|
89 |
+
endif?>
|
90 |
</ul>
|
91 |
</td>
|
92 |
<td>
|
tpl/admin-opts.tpl.php
CHANGED
@@ -73,6 +73,22 @@ $nav = array (
|
|
73 |
</fieldset>
|
74 |
</td>
|
75 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
</tbody>
|
77 |
</table>
|
78 |
<p class="submit">
|
73 |
</fieldset>
|
74 |
</td>
|
75 |
</tr>
|
76 |
+
<tr valign="top">
|
77 |
+
<th scope="row"><?php Loco::h( Loco::__('Experimental features') )?></th>
|
78 |
+
<td>
|
79 |
+
<fieldset>
|
80 |
+
<legend class="screen-reader-text">
|
81 |
+
<span><?php Loco::h( Loco::__('Experimental features') )?></span>
|
82 |
+
</legend>
|
83 |
+
<p>
|
84 |
+
<label for="loco--enable-core">
|
85 |
+
<input type="checkbox" name="loco[enable_core]" value="1" id="loco--enable-core"<?php echo $enable_core ? ' checked' : '';?> />
|
86 |
+
<?php Loco::h( Loco::__('Enable Wordpress core translations') )?>
|
87 |
+
</label>
|
88 |
+
</p>
|
89 |
+
</fieldset>
|
90 |
+
</td>
|
91 |
+
</tr>
|
92 |
</tbody>
|
93 |
</table>
|
94 |
<p class="submit">
|
tpl/admin-poedit.tpl.php
CHANGED
@@ -136,9 +136,11 @@ $modified or $pofiles[] = $path;
|
|
136 |
</button>
|
137 |
</form>
|
138 |
<form action="<?php echo $phpbase?>/loco-fail.php" id="loco-filter">
|
139 |
-
<
|
|
|
|
|
140 |
</form>
|
141 |
-
<form action="http://wordpress.org/support/plugin/<?php echo Loco::NS?>" target="_blank">
|
142 |
<button class="button loco-help" data-loco="help" type="submit">
|
143 |
<span><?php Loco::h( Loco::_x('Help','Editor button') )?></span>
|
144 |
</button>
|
136 |
</button>
|
137 |
</form>
|
138 |
<form action="<?php echo $phpbase?>/loco-fail.php" id="loco-filter">
|
139 |
+
<div class="loco-clearable">
|
140 |
+
<input type="text" maxlength="100" name="q" id="loco-search" placeholder="<?php Loco::h(Loco::__('Filter translations'))?>" autocomplete="off" disabled />
|
141 |
+
</div>
|
142 |
</form>
|
143 |
+
<form action="http://wordpress.org/support/plugin/<?php echo Loco::NS?>" target="_blank" class="loco-right">
|
144 |
<button class="button loco-help" data-loco="help" type="submit">
|
145 |
<span><?php Loco::h( Loco::_x('Help','Editor button') )?></span>
|
146 |
</button>
|
tpl/admin-poinit.tpl.php
CHANGED
@@ -46,7 +46,24 @@ $argpair = $package->get_query();
|
|
46 |
<br />
|
47 |
</label>
|
48 |
<input type="text" maxlength="5" size="5" pattern="^[a-zA-Z]{2}([\-_][a-zA-Z]{2})?$" name="custom-locale" for="f-loco-locale" placeholder="xx_XX" />
|
49 |
-
</p
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
<p class="submit">
|
51 |
<input type="submit" value="<?php Loco::h( Loco::_x('Start translating','Submit button') )?>" class="button button-primary button-large" />
|
52 |
</p>
|
46 |
<br />
|
47 |
</label>
|
48 |
<input type="text" maxlength="5" size="5" pattern="^[a-zA-Z]{2}([\-_][a-zA-Z]{2})?$" name="custom-locale" for="f-loco-locale" placeholder="xx_XX" />
|
49 |
+
</p><?php
|
50 |
+
// provide location choice if package and global dirs are both writable
|
51 |
+
if( is_writeable($pdir) && is_writable($gdir) ):
|
52 |
+
$is_global = $package->is_global_path( $path );
|
53 |
+
$pdir = LocoAdmin::trim_path( $pdir );
|
54 |
+
?>
|
55 |
+
<p>
|
56 |
+
<label>
|
57 |
+
<input type="radio" name="gforce" value="0"<?php print( $is_global ? '' : ' checked') ?> />
|
58 |
+
<?php echo sprintf( Loco::_x('create in <code>%s</code>','Form label' ), $pdir )?>
|
59 |
+
</label>
|
60 |
+
<br />
|
61 |
+
<label>
|
62 |
+
<input type="radio" name="gforce" value="1"<?php print( $is_global ? ' checked' : '') ?> />
|
63 |
+
<?php Loco::h( Loco::_x('create in global languages directory','Form label') )?>
|
64 |
+
</label>
|
65 |
+
</p><?php
|
66 |
+
endif?>
|
67 |
<p class="submit">
|
68 |
<input type="submit" value="<?php Loco::h( Loco::_x('Start translating','Submit button') )?>" class="button button-primary button-large" />
|
69 |
</p>
|
tpl/admin-root.tpl.php
CHANGED
@@ -36,7 +36,7 @@ $nav = array (
|
|
36 |
//
|
37 |
if( $themes ):?>
|
38 |
<div class="icon32 icon-appearance"><br /></div>
|
39 |
-
<h2>
|
40 |
<?php Loco::h( Loco::_x('Themes','Package list header') )?>
|
41 |
</h2>
|
42 |
<div class="loco-list loco-list-themes">
|
@@ -49,7 +49,7 @@ $nav = array (
|
|
49 |
//
|
50 |
if( $plugins ):?>
|
51 |
<div class="icon32 icon-plugins"><br /></div>
|
52 |
-
<h2>
|
53 |
<?php Loco::h( Loco::_x('Plugins','Package list header') )?>
|
54 |
</h2>
|
55 |
<div class="loco-list loco-list-plugins">
|
@@ -62,7 +62,7 @@ $nav = array (
|
|
62 |
//
|
63 |
if( $core ):?>
|
64 |
<div class="icon32 icon-generic"><br /></div>
|
65 |
-
<h2>
|
66 |
<?php Loco::h( Loco::_x('Core','Package list header') )?>
|
67 |
</h2>
|
68 |
<div class="loco-list loco-list-core">
|
36 |
//
|
37 |
if( $themes ):?>
|
38 |
<div class="icon32 icon-appearance"><br /></div>
|
39 |
+
<h2 class="dashicons-admin-appearance">
|
40 |
<?php Loco::h( Loco::_x('Themes','Package list header') )?>
|
41 |
</h2>
|
42 |
<div class="loco-list loco-list-themes">
|
49 |
//
|
50 |
if( $plugins ):?>
|
51 |
<div class="icon32 icon-plugins"><br /></div>
|
52 |
+
<h2 class="dashicons-admin-plugins">
|
53 |
<?php Loco::h( Loco::_x('Plugins','Package list header') )?>
|
54 |
</h2>
|
55 |
<div class="loco-list loco-list-plugins">
|
62 |
//
|
63 |
if( $core ):?>
|
64 |
<div class="icon32 icon-generic"><br /></div>
|
65 |
+
<h2 class="dashicons-wordpress">
|
66 |
<?php Loco::h( Loco::_x('Core','Package list header') )?>
|
67 |
</h2>
|
68 |
<div class="loco-list loco-list-core">
|