1 | <?php |
||
10 | class LanguageSwitcher extends Component implements BootstrapInterface |
||
11 | { |
||
12 | /** |
||
13 | * @var string Name of the cookie. |
||
14 | */ |
||
15 | public $cookieName = 'language'; |
||
16 | |||
17 | /** |
||
18 | * @var array list of available language codes. More specific patterns should come first, e.g. 'en_us' before 'en'. |
||
19 | * Key is a language code, value is a name of language. For example: |
||
20 | * |
||
21 | * ```php |
||
22 | * [ |
||
23 | * 'ru' => 'Русский', |
||
24 | * 'en' => 'English', |
||
25 | * ] |
||
26 | * ``` |
||
27 | * |
||
28 | */ |
||
29 | public $languages = []; |
||
30 | |||
31 | /** |
||
32 | * @var integer expiration date of the cookie storing the language of the site. |
||
33 | */ |
||
34 | public $expireDays = 30; |
||
35 | |||
36 | public function bootstrap($app) |
||
40 | |||
41 | /** |
||
42 | * Saving language into cookie and database. |
||
43 | * @param string $language - The language to save. |
||
44 | * @return static |
||
45 | */ |
||
46 | public function saveLanguage($language) |
||
51 | |||
52 | private function initLanguage() |
||
64 | |||
65 | /** |
||
66 | * Determine language based on UserAgent. |
||
67 | */ |
||
68 | public function detectLanguage() |
||
87 | |||
88 | /** |
||
89 | * Save language into cookie. |
||
90 | * @param string $language |
||
91 | */ |
||
92 | private function saveLanguageIntoCookie($language) |
||
101 | |||
102 | /** |
||
103 | * Determines whether the language received as a parameter can be processed. |
||
104 | * @param string $language |
||
105 | * @return boolean |
||
106 | */ |
||
107 | public function isValidLanguage($language) |
||
111 | |||
112 | /** |
||
113 | * @param $language |
||
114 | * @return bool whether the language is correct and saved |
||
115 | */ |
||
116 | public function setLanguage($language) |
||
125 | |||
126 | /** |
||
127 | * @param string $language |
||
128 | */ |
||
129 | private function applyLanguage($language) |
||
134 | } |
||
135 |