1 | <?php |
||
21 | class SamsonLocale |
||
22 | { |
||
23 | /** Локализация по умолчанию */ |
||
24 | const DEF = DEFAULT_LOCALE; |
||
25 | /** Украинская локализация */ |
||
26 | const UA = 'ua'; |
||
27 | /** Английская локализация */ |
||
28 | const EN = 'en'; |
||
29 | /** Русская локализация */ |
||
30 | const RU = 'ru'; |
||
31 | /** Румынская локализация */ |
||
32 | const RO = 'ro'; |
||
33 | /** Китайская локализация */ |
||
34 | const CH = 'ch'; |
||
35 | /** Французская локализация */ |
||
36 | const FR = 'fr'; |
||
37 | /** Корейская локализация */ |
||
38 | const KO = 'ko'; |
||
39 | /** Немецкая локализация */ |
||
40 | const DE = 'de'; |
||
41 | /** Испанская локализация */ |
||
42 | const ES = 'es'; |
||
43 | |||
44 | /** |
||
45 | * Коллекция поддерживаемых локализаций |
||
46 | * Используется для дополнительного контроля за локализациями |
||
47 | * @var array |
||
48 | */ |
||
49 | private static $supported = array( |
||
50 | SamsonLocale::DEF, |
||
51 | SamsonLocale::EN, |
||
52 | SamsonLocale::UA, |
||
53 | SamsonLocale::RO, |
||
54 | SamsonLocale::CH, |
||
55 | SamsonLocale::RU, |
||
56 | SamsonLocale::FR, |
||
57 | SamsonLocale::KO, |
||
58 | SamsonLocale::DE, |
||
59 | SamsonLocale::ES, |
||
60 | ); |
||
61 | |||
62 | /** |
||
63 | * Alias for binding default web-application locale |
||
64 | * @var string |
||
65 | */ |
||
66 | public static $defaultLocale = DEFAULT_LOCALE; |
||
67 | |||
68 | /** |
||
69 | * Текущая локализация веб-приложения |
||
70 | * @var string |
||
71 | */ |
||
72 | public static $current_locale = ''; |
||
73 | |||
74 | /** |
||
75 | * Коллекция подключенных локализаций для текущего веб-приложения |
||
76 | * Локаль по умолчанию RU, имеет представление пустышку - '' |
||
77 | * @var array |
||
78 | */ |
||
79 | public static $locales = array(); |
||
80 | |||
81 | /** @var bool Flag for leaving default locale as path placeholder */ |
||
82 | public static $leaveDefaultLocale = true; |
||
83 | |||
84 | /** |
||
85 | * Проверить текущей значение установленной локали, и если выставлена |
||
86 | * не поддерживаемая локаль - установим локаль по умолчанию |
||
87 | */ |
||
88 | public static function check() |
||
94 | |||
95 | /** |
||
96 | * Установить все доступные локализации для текущего веб-приложения. |
||
97 | * Локализацию по умолчанию, передавать не нужно, т.к. она уже включена в список |
||
98 | * и описана в <code>SamsonLocale::DEF</code> |
||
99 | * |
||
100 | * Функция автоматически проверяет уже выставленное значение локализации веб-приложения |
||
101 | * и вслучаи его отсутствия, выставляет локализацию по умолчанию |
||
102 | * |
||
103 | * @param array $available_locales Коллекция с доступными локализациями веб-приложения |
||
104 | */ |
||
105 | public static function set(array $available_locales) |
||
125 | |||
126 | /** |
||
127 | * Получить все доступные локализации для текущего веб-приложения |
||
128 | */ |
||
129 | public static function get() |
||
133 | |||
134 | 2 | /** |
|
135 | * Установить/Получить текущую локализацию веб-приложения |
||
136 | * @param string $locale Значение локализации веб-приложения для установки |
||
137 | 2 | * @return string Возвращается значение текущей локализации веб-приложения до момента |
|
138 | * вызова данного метода |
||
139 | */ |
||
140 | 2 | public static function current($locale = null) |
|
160 | |||
161 | /** |
||
162 | * Parse URL arguments |
||
163 | * @param array $args Collection of URL arguments |
||
164 | * @param bool $leaveDefaultLocale Leave default locale placeholder |
||
165 | * @return boolean True if current locale has been changed |
||
166 | */ |
||
167 | public static function parseURL(array &$args, $leaveDefaultLocale = true) |
||
196 | } |
||
197 |
Adding braces to control structures avoids accidental mistakes as your code changes: