[Moscow.pm] utf8 и Template Toolkit

Свистунов Сергей sergei-svistunov на yandex.ru
Пт Авг 8 00:39:24 PDT 2008


Сделать класс

package MyProvider;

use strict;
use utf8;

use base qw(Template::Provider);

sub _load {
    my $self = shift;
    my($data, $error) = $self->SUPER::_load(@_);

    return ($data, $error) unless defined $data;

    unless (utf8::is_utf8($data->{'text'})) {
        utf8::decode($data->{'text'});
    };

    return ($data, $error);
};

1;

Затем

my %options = (
        LOAD_TEMPLATES => [
            MyProvider->new(
                INCLUDE_PATH    => ...,
                DEFAULT         => ...,
                COMPILE_EXT     => ...,
                COMPILE_DIR     => ...,
             ),
        ],
        PRE_CHOMP       => 1,
        POST_CHOMP      => 1,
        INTERPOLATE     => 1,
        EVAL_PERL       => 1,
        PRE_DEFINE      => {},
        PRE_PROCESS     => ...,
        POST_PROCESS    => ...,
        ERROR           => ...,
    );
   
my $tt = Template->new(%options);

Шаблоны должны быть в utf.

Dmitry E. Oboukhov пишет:
> на Yapc помнится кто-то докладывался с тем что для сабжа какой-то хак
> писали чтобы без BOM нормально работало. не осталось ссылки на этот доклад?
>
> сижу вот ковыряюсь и тоже не могу решить что делать
> BOM - неприемлемо, 
> толи наследника написать, толи функцию хакнуть...
>
> --
> ... mpd is off
>
> . ''`. Dmitry E. Oboukhov
> : :’  : unera на debian.org
> `. `~’ GPGKey: 1024D / F8E26537 2006-11-21
>   `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537
>   
> ------------------------------------------------------------------------
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>   

----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20080808/d4a8a776/attachment.html>


Подробная информация о списке рассылки Moscow-pm