Kernel::Language - global language interface
All language functions.
create a language object. Do not use it directly, instead use:
use Kernel::System::ObjectManager; local $Kernel::OM = Kernel::System::ObjectManager->new( 'Kernel::Language' => { UserLanguage => 'de', }, ); my $LanguageObject = $Kernel::OM->Get('Kernel::Language');
this is a no-op to mark a text as translatable in the Perl code.
translate a text with placeholders.
my $Text = $LanguageObject->Translate('Hello %s!', 'world');
formats a timestamp according to the specified date format for the current language (locale).
my $Date = $LanguageObject->FormatTimeString( '2009-12-12 12:12:12', # timestamp 'DateFormat', # which date format to use, e. g. DateFormatLong 0, # optional, hides the seconds from the time output );
Please note that the TimeZone will not be applied in the case of DateFormatShort (date only) to avoid switching to another date.
If you only pass an ISO date ('2009-12-12'), it will be returned unchanged. Invalid strings will also be returned with an error logged.
DEPRECATED. Don't use this function any more, 'utf-8' is always the internal charset.
Returns the recommended charset for frontend (based on translation file or utf-8).
my $Charset = $LanguageObject->GetRecommendedCharset().
Returns an array of possible charsets (based on translation file).
my @Charsets = $LanguageObject->GetPossibleCharsets().
Returns a time string in language format (based on translation file).
$Time = $LanguageObject->Time( Action => 'GET', Format => 'DateFormat', ); $TimeLong = $LanguageObject->Time( Action => 'GET', Format => 'DateFormatLong', ); $TimeLong = $LanguageObject->Time( Action => 'RETURN', Format => 'DateFormatLong', Year => 1977, Month => 10, Day => 27, Hour => 20, Minute => 10, Second => 05, );
These tags are supported: %A=WeekDay;%B=LongMonth;%T=Time;%D=Day;%M=Month;%Y=Year;
Note that %A only works correctly with Action GET, it might be dropped otherwise.
Also note that it is also possible to pass HTML strings for date input:
$TimeLong = $LanguageObject->Time( Action => 'RETURN', Format => 'DateInputFormatLong', Mode => 'NotNumeric', Year => '<input value="2014"/>', Month => '<input value="1"/>', Day => '<input value="10"/>', Hour => '<input value="11"/>', Minute => '<input value="12"/>', Second => '<input value="13"/>', );
Note that %B may not work in NonNumeric mode.
This function returns an MD5 sum that is generated from all loaded language files and their modification timestamps. Whenever a file is changed, added or removed, this checksum will change.
This software is part of the OTRS project (https://otrs.org/).
This software comes with ABSOLUTELY NO WARRANTY. For details, see the enclosed file COPYING for license information (GPL). If you did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.