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