-
Notifications
You must be signed in to change notification settings - Fork 39
Translator
На данном этапе, Translate являет собой лишь оболочкой для настройки gettext
, хотя использования адаптеров типа array и(или) Db я не исключаю, но пока это лишь в планах.
В фреймворке используются функции _n()
и __()
как враперы для Translate, хотя как бы в фреймворке появлений функций не комильфо - но кто нам тут указ - создать функцию в NS можно, но использовать неудобно, проще статический класс с набором функций, но тоже много буков, так что встречайте +2 функции в глобальной области видимости:
-
__($text[, $params])
- обёртка над функцией gettext + sprintf -
_n($text1, $text2, int $n [, $params])
- обёртка над функцией ngettext + sprintf
// config file translator.php
return array(
// call inside:
// setlocale(LC_MESSAGES, $locale)
// putenv('LC_ALL=' . $locale);
// putenv('LANG=' . $locale);
// putenv('LANGUAGE=' . $locale);
"locale" => "ru_RU",
// call inside:
// bindtextdomain($locale, $path)
// textdomain($locale)
// bind_textdomain_codeset($this->domain, 'UTF-8');
"domain" => "messages",
"path" => PATH_DATA .'/locale'
)
Если ваша локаль не подтягивается - убедитесь, что она доступна в вашей системе с использованием команды
locale -a
. Для установки локали на ubuntu:
sudo locale-gen ru_RU
sudo locale-gen ru_RU.UTF-8
sudo locale-gen uk_UA
sudo locale-gen uk_UA.UTF-8
sudo update-locale
# and restart web server
sudo service apache2 restart
Функция-враппер для gettext
:
// simple
// equal to gettext('Message')
__('Message');
// simple replace of one or more argument(s)
// equal to sprintf(gettext('Message to %s'), 'Username')
__('Message to %s', 'Username');
Ну и для ngettext
:
// plural form + sprintf
// equal to sprintf(ngettext('%d comment', '%d comments', 4), 4)
_n('%d comment', '%d comments', 4, 4)
// plural form + sprintf
// equal to sprintf(ngettext('%d comment', '%d comments', 4), 4, 'Topic')
_n('%d comment to %s', '%d comments to %s', 4, 4, 'Topic')
Acl
Application
Auth
Cache
Common
— Exception
— Collection
— Container
— Helper
— Options
— Singleton
Config
Controller
— Data
— Mapper
—— Crud
—— Rest
— Reflection
Crud
— Crud Table
Db
— Row
— Table
— Relations
— Query
Debug
EventManager
Grid
Http
Layout
Logger
Mailer
Messages
Nil
Proxy
Registry
Request
Response
Router
Session
Translator
Validator
View