summaryrefslogtreecommitdiff
path: root/tools/i18n_compile.php
blob: 548271516bd7918a92b21045f7539da3d0cf3781 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/php
<?php

/*
 *  i18n_compile.php - compiles the i18n
 *
 *  Options:
 *    -l [locale], --locale=[locale]
 *      Compiles [locale] locale.
 *      
 */

require __DIR__ . '/inc/cli.php';

// parse command line
$opts = getopt('l:', ['locale:']);
$options = [];

$options['locale'] = $opts['l'] ?? $opts['locale'] ?? false;

if ($options['locale'])	$locales = [$options['locale']];
else			die("Error: no locales specified; use -l switch, eg. -l pl_PL\n");

foreach ($locales as $loc) {
	if (file_exists ($locdir = "inc/locale/".$loc)) {
		if (!is_dir ($locdir)) {
			continue;
		}
	}
	else {
		die("Error: $locdir does not exist\n");
	}

	// Generate tinyboard.po
	if (file_exists($locdir."/LC_MESSAGES/tinyboard.po"))	$join = "-j";
	else							$join = "";
	passthru("cd $locdir/LC_MESSAGES;
         msgfmt tinyboard.po -o tinyboard.mo");

	// Generate javascript.po
	passthru("cd tools/inc/lib/jsgettext/;
         php po2json.php -i ../../../../$locdir/LC_MESSAGES/javascript.po \
                         -o ../../../../$locdir/LC_MESSAGES/javascript.js");
}