NAME

P::Core::I18N - P internationalization subsystem.

SYNOPSIS

    GO->I18N->add_location($PROC->{I18N_DIR});
    GO->I18N->locale('ru_RU');

Config strings internationalization

Интернационализация в inline конфиге (конфиге в блоке BEGIN скрипта) не поддерживается.

Для интернационализации строк в остальных конфигах использовать вызов i18n с одним или двумя параметрами:

    {
        string        => i18n('text'),
        plural_string => i18n('text', 'plural form')
    }

Для ресолвинга интернациональных строк в конфиге использовать вызов:

    i18n($PROC->{string});
    i18n($PROC->{plural_string}, $plural_value); $plural_value - числовое значение множественной формы

Template toolkit templates internationalization

Поддерживаемые форматы нитернационализации для использования в шаблонах:

    [% i18n('text') %]
    [% i18n('text', 'plural form', $plural_value) %]

Locale::gettext_xs: timethis 1000000: 10 wallclock secs ( 9,68 usr + 0,03 sys = 9,71 CPU) @ 102986,61/s (n=1000000) P::Core::GO::I18N: timethis 1000000: 10 wallclock secs ( 9,40 usr + 0,01 sys = 9,41 CPU) @ 106269,93/s (n=1000000)

По результатам тестов видно, что производительность сохраняется на уровне XS кода.

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 292:

Non-ASCII character seen before =encoding in 'Интернационализация'. Assuming UTF-8

Around line 314:

Unknown directive: =heads1