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
|
<?php namespace Gettext\Languages\Exporter;
class Json extends Exporter { /** * Return the options for json_encode. * @return int */ protected static function getEncodeOptions() { $result = 0; if (defined('\JSON_UNESCAPED_SLASHES')) { $result |= \JSON_UNESCAPED_SLASHES; } if (defined('\JSON_UNESCAPED_UNICODE')) { $result |= \JSON_UNESCAPED_UNICODE; }
return $result; } /** * @see Exporter::toStringDo */ protected static function toStringDo($languages) { $list = array(); foreach ($languages as $language) { $item = array(); $item['name'] = $language->name; if (isset($language->supersededBy)) { $item['supersededBy'] = $language->supersededBy; } if (isset($language->script)) { $item['script'] = $language->script; } if (isset($language->territory)) { $item['territory'] = $language->territory; } if (isset($language->baseLanguage)) { $item['baseLanguage'] = $language->baseLanguage; } $item['formula'] = $language->formula; $item['plurals'] = count($language->categories); $item['cases'] = array(); $item['examples'] = array(); foreach ($language->categories as $category) { $item['cases'][] = $category->id; $item['examples'][$category->id] = $category->examples; } $list[$language->id] = $item; }
return json_encode($list, static::getEncodeOptions()); } /** * @see Exporter::getDescription */ public static function getDescription() { return 'Build a compressed JSON-encoded file'; } }
|