Bitrix-D7  20.0.0
Класс Loc

Открытые статические члены

static getMessage ($code, $replace=null, $language=null)
 Returns translation by message code. Подробнее...
 
static loadMessages ($file)
 Loads language messages for specified file in a lazy way. Подробнее...
 
static getCurrentLang ()
 
static setCurrentLang ($language)
 
static loadLanguageFile ($file, $language=null, $normalize=true)
 Loads language messages for specified file. Подробнее...
 
static loadCustomMessages ($file, $language=null)
 Loads custom messages from the file to overwrite messages by their IDs. Подробнее...
 
static getDefaultLang ($lang)
 Returns default language for specified language. Подробнее...
 
static getIncludedFiles ()
 Returns previously included lang files. Подробнее...
 

Подробное описание

См. определение в файле loc.php строка 10

Методы

◆ getCurrentLang()

static getCurrentLang ( )
static
Возвращает
string

См. определение в файле loc.php строка 81

82  {
83  if(self::$currentLang === null)
84  {
85  $context = Context::getCurrent();
86  if($context !== null)
87  {
88  $language = $context->getLanguage();
89  if($language !== null)
90  {
91  self::$currentLang = $language;
92  }
93  }
94  }
95  return (self::$currentLang !== null? self::$currentLang : 'en');
96  }

◆ getDefaultLang()

static getDefaultLang (   $lang)
static

Returns default language for specified language.

Default language is used when translation is not found.

Аргументы
string$lang
Возвращает
string

См. определение в файле loc.php строка 412

413  {
414  static $subst = array('ua'=>'ru', 'kz'=>'ru', 'by'=>'ru', 'ru'=>'ru', 'en'=>'en', 'de'=>'en');
415  if(isset($subst[$lang]))
416  {
417  return $subst[$lang];
418  }
419 
420  $options = Configuration::getValue("default_language");
421  if(isset($options[$lang]))
422  {
423  return $options[$lang];
424  }
425 
426  return 'en';
427  }

◆ getIncludedFiles()

static getIncludedFiles ( )
static

Returns previously included lang files.

Возвращает
array

См. определение в файле loc.php строка 433

434  {
435  return self::$includedFiles;
436  }

◆ getMessage()

static getMessage (   $code,
  $replace = null,
  $language = null 
)
static

Returns translation by message code.

Loc::loadMessages(FILE) should be called first once per php file

Аргументы
string$code
array$replacee.g. array("#NUM#"=>5)
string$language
Возвращает
string

См. определение в файле loc.php строка 29

30  {
31  if($language === null)
32  {
33  //function call optimization
34  if(self::$currentLang === null)
35  {
36  $language = self::getCurrentLang();
37  }
38  else
39  {
40  $language = self::$currentLang;
41  }
42  }
43 
44  if(!isset(self::$messages[$language][$code]))
45  {
46  self::loadLazy($code, $language);
47  }
48 
49  $s = self::$messages[$language][$code];
50 
51  if($replace !== null && is_array($replace))
52  {
53  foreach($replace as $search => $repl)
54  {
55  $s = str_replace($search, $repl, $s);
56  }
57  }
58 
59  return $s;
60  }

◆ loadCustomMessages()

static loadCustomMessages (   $file,
  $language = null 
)
static

Loads custom messages from the file to overwrite messages by their IDs.

Аргументы
string$file
string | null$language

См. определение в файле loc.php строка 241

242  {
243  if($language === null)
244  {
245  $language = self::getCurrentLang();
246  }
247 
248  if(!isset(self::$customMessages[$language]))
249  {
250  self::$customMessages[$language] = array();
251  }
252 
253  //let's find language folder and include lang files
254  $mess = self::includeLangFiles(Path::normalize($file), $language, $langFile);
255 
256  if (!empty($mess))
257  {
258  list($convertEncoding, $targetEncoding, $sourceEncoding) = Translation::getEncodings($language, $langFile);
259 
260  foreach ($mess as $key => $val)
261  {
262  if ($convertEncoding)
263  {
264  $val = $mess[$key] = Encoding::convertEncoding($val, $sourceEncoding, $targetEncoding);
265  }
266 
267  self::$customMessages[$language][$key] = $val;
268  }
269  }
270  }

◆ loadLanguageFile()

static loadLanguageFile (   $file,
  $language = null,
  $normalize = true 
)
static

Loads language messages for specified file.

Аргументы
string$file
string$language
bool$normalize
Возвращает
array

См. определение в файле loc.php строка 183

184  {
185  if($language === null)
186  {
187  $language = self::getCurrentLang();
188  }
189 
190  if($normalize)
191  {
192  $file = Path::normalize($file);
193  }
194 
195  if(!isset(self::$messages[$language]))
196  {
197  self::$messages[$language] = array();
198  }
199 
200  //first time call only for lang
201  if(!isset(self::$userMessages[$language]))
202  {
203  self::$userMessages[$language] = self::loadUserMessages($language);
204  }
205 
206  //let's find language folder and include lang files
207  $mess = self::includeLangFiles($file, $language, $langFile);
208 
209  if (!empty($mess))
210  {
211  list($convertEncoding, $targetEncoding, $sourceEncoding) = Translation::getEncodings($language, $langFile);
212 
213  foreach ($mess as $key => $val)
214  {
215  if (isset(self::$customMessages[$language][$key]))
216  {
217  self::$messages[$language][$key] = $mess[$key] = self::$customMessages[$language][$key];
218  }
219  else
220  {
221  if ($convertEncoding)
222  {
223  $val = Encoding::convertEncoding($val, $sourceEncoding, $targetEncoding);
224  $mess[$key] = $val;
225  }
226 
227  self::$messages[$language][$key] = $val;
228  }
229  }
230  }
231 
232  return $mess;
233  }

◆ loadMessages()

static loadMessages (   $file)
static

Loads language messages for specified file in a lazy way.

Аргументы
string$file

См. определение в файле loc.php строка 67

68  {
69  if(($realPath = realpath($file)) !== false)
70  {
71  $file = $realPath;
72  }
73  $file = Path::normalize($file);
74 
75  self::$lazyLoadFiles[$file] = $file;
76  }

◆ setCurrentLang()

static setCurrentLang (   $language)
static

См. определение в файле loc.php строка 98

99  {
100  self::$currentLang = $language;
101  }

Объявления и описания членов класса находятся в файле:
Bitrix\Main\IO\Path\normalize
static normalize($path)
Definition: main/lib/io/path.php:26
Bitrix\Main\Localization\Loc\getCurrentLang
static getCurrentLang()
Definition: loc.php:81
Bitrix\Main\Localization\Translation\getEncodings
static getEncodings($language, $langFile)
Definition: main/lib/localization/translation.php:595
Bitrix\Main\Text\Encoding\convertEncoding
static convertEncoding($data, $charsetFrom, $charsetTo, &$errorMessage="")
Converts data from a source encoding to a target encoding.
Definition: encoding.php:53
Bitrix\Main\Context\getCurrent
static getCurrent()
Static method returns current instance of context.
Definition: main/lib/context.php:194