ChooseTemplateByUserLang
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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