summaryrefslogtreecommitdiff
path: root/rt/html/Elements/SelectLang
blob: cc2c357e0147b8cf29344fe61773e4c907bb1413 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
%# BEGIN LICENSE BLOCK
%# 
%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
%# 
%# (Except where explictly superceded by other copyright notices)
%# 
%# This work is made available to you under the terms of Version 2 of
%# the GNU General Public License. A copy of that license should have
%# been provided with this software, but in any event can be snarfed
%# from www.gnu.org.
%# 
%# This work is distributed in the hope that it will be useful, but
%# WITHOUT ANY WARRANTY; without even the implied warranty of
%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
%# General Public License for more details.
%# 
%# Unless otherwise specified, all modifications, corrections or
%# extensions to this work which alter its source code become the
%# property of Best Practical Solutions, LLC when submitted for
%# inclusion in the work.
%# 
%# 
%# END LICENSE BLOCK
<SELECT NAME ="<%$Name%>">
% if ($ShowNullOption) {
<OPTION VALUE="">-</OPTION>
% }
% foreach my $lang (@lang) {
<OPTION VALUE="<%$lang%>" <%($Default && ($lang eq $Default)) && 'SELECTED'%>><% $lang_to_desc{$lang} %>
%   if (($Verbose) and (my $description = I18N::LangTags::List::native_name($lang)) ){
(<%$description%>)
%  }
</OPTION>
% }
</SELECT>
<%ARGS>
$ShowNullOption => 1
$ShowAllQueues => 1
$Name => undef
$Verbose => undef
$Default => 0
$Lite => 0
</%ARGS>

<%ONCE>
use I18N::LangTags::List;
my (@lang, %lang_to_desc);
foreach my $lang (map { s/:://; s/_/-/g; $_ } grep { /^\w+::$/ } keys %RT::I18N::) {
    next if $lang =~ /i-default|en-us/;
    my $desc = I18N::LangTags::List::name($lang);
    next unless ($desc);
    $desc =~ s/(.*) (.*)/$2 ($1)/;
    $lang_to_desc{$lang} = $desc;
}
@lang = sort { $lang_to_desc{$a} cmp $lang_to_desc{$b} } keys %lang_to_desc;
</%ONCE>