Мультиязычность (реализация) (Рейтинг: +1)
Добрый день!
Хочу представить Вам свой класс реализации мультиязычности для ваших проектов.
создаем папку language
в которой содаем файл default.ini
который будет отвечать у нас за названия ключей в языковых пакетах (key => value) по умолчанию
содержимое файла default.ini:
затем в той же папке создадим файл EN.ini
который будет отвечать за перевод строки на английский
содержимое файла EN.ini:
Реализация класса:
создаем файл test.php
с содержанием:
затем открываем наш файл в браузере и видим
multilanguage test
Вот впринципе и все
Добавил: KpuTuK
08.07.2013 / 13:46Хочу представить Вам свой класс реализации мультиязычности для ваших проектов.
<?php /** * @author KpuTuK * @link http://kputuk.ru * @version 1.0.1 * @copyright (c) 2013 */ class language { /** * Массив выбранного пакета * @var array $language */ private $language = array(); /** * Загрузка выбранного пакета * @param string $language * @throws InvalidArgumentException */ function __construct($language) { if (is_string($language)) { if (file_exists('/language/'. $language .'.ini')) { $this->language = parse_ini_file('/language/'. $language .'.ini'); } else { $this->language = parse_ini_file('/language/default.ini'); } } else { throw new InvalidArgumentException('Недопустимый тип параметра. Ожидается [string] вместо ['. gettype($language) .'].'); } } /** * Локализация текстовой строки * @param string $text Строка для локализации * @return string Локализированная строка * @throws InvalidArgumentException */ public function replease($text) { if (is_string($text)) { $lang_rus = array_flip(parse_ini_file('/language/default.ini')); $key = $lang_rus[$text]; if (isset($this->language[$key])) { return $this->language[$key]; } else return $text; } else { throw new InvalidArgumentException('Недопустимый тип параметра. Ожидается [string] вместо ['. gettype($text) .'].'); } } } ?>
создаем папку language
в которой содаем файл default.ini
который будет отвечать у нас за названия ключей в языковых пакетах (key => value) по умолчанию
содержимое файла default.ini:
test = тестируем мультиязычность
затем в той же папке создадим файл EN.ini
который будет отвечать за перевод строки на английский
содержимое файла EN.ini:
test = multilanguage test
Реализация класса:
создаем файл test.php
с содержанием:
<?php $lng = new language('EN'); echo $lng->replease('тестируем мультиязычность'); ?>
затем открываем наш файл в браузере и видим
multilanguage test
Вот впринципе и все
Рейтинг:
+1
Просмотры: 1831Комментарии (2) »