ChooseTemplateByUserLang
Jump to navigation
Jump to search
Original ML message:
Ok, so what I needed was to use different template depending on the uesr's language. So I modified lib/RT/Action/SendEmail.pm slightly. First it checks the language from user's profile. If, for example, it's Japanese, then it replaces current template with the template which name has " (ja)" at the end. So, instead of, for example, "Autoreply" template, it will try to find template "Autoreply (ja)". --Dimitry Faynerman
Next code is [=RT/Action/SendEmail_Local.pm] which do same in a more clear way:
sub TemplateObj
{
my $self = shift;
my $obj = $self->SUPER::TemplateObj;
return unless( $obj );
# Use lang template (if exists) according to user's language
my $UserObj = RT::User->new( $RT::SystemUser );
$UserObj->Load( $self->TicketObj->Requestors->UserMembersObj->First->Id );
if( $UserObj->Lang && $UserObj->Lang ne 'en' ) {
my $oldTmplId = $obj->Id;
$obj->Load( $obj->Name . " (" . $UserObj->Lang . ")" );
unless( $obj->Id ) {
$obj->Load( $oldTmplId );
}
}
return $obj;
}
1;
Wish, idea and orginal code by DimitryFaynerman. Code refactoring RuslanZakirov.
See also: ForkTemplate and CleanlyCustomizeRT