aboutsummaryrefslogtreecommitdiff
path: root/cli/manipulate.translation.php
blob: aace5723a200a6dd9c124ae7265dcad49122dd33 (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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php

$options = getopt("h");

if (array_key_exists('h', $options)) {
	help();
}

if (1 === $argc || 4 < $argc) {
	help();
}

require_once __DIR__ . '/i18n/I18nFile.php';

$i18nFile = new I18nFile();
$i18nData = $i18nFile->load();

switch ($argv[1]) {
	case 'add_language' :
		$i18nData->addLanguage($argv[2]);
		break;
	case 'add_key' :
		if (3 === $argc) {
			help();
		}
		$i18nData->addKey($argv[2], $argv[3]);
		break;
	case 'duplicate_key' :
		$i18nData->duplicateKey($argv[2]);
		break;
	case 'delete_key' :
		$i18nData->removeKey($argv[2]);
		break;
	default :
		help();
}

if ($i18nData->hasChanged()) {
	$i18nFile->dump($i18nData);
}

/**
 * Output help message.
 */
function help() {
	$help = <<<HELP
NAME
	%s

SYNOPSIS
	php %s [OPTION] [OPERATION] [KEY] [VALUE]

DESCRIPTION
	Manipulate translation files. Available operations are 
	Check if translation files have missing keys or missing translations.

	-h	display this help and exit.

OPERATION
	add_language
		add a new language by duplicating the referential. This operation
		needs only a KEY.

	add_key	add a new key in the referential. This operation needs a KEY and
		a VALUE.

	duplicate_key
		duplicate a referential key in other languages. This operation
		needs only a KEY.

	delete_key
		delete a referential key from all languages. This operation needs
		only a KEY.

HELP;
	$file = str_replace(__DIR__ . '/', '', __FILE__);
	echo sprintf($help, $file, $file);
	exit;
}