summaryrefslogtreecommitdiffstats
path: root/perl-install/lang.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/lang.pm')
-rw-r--r--perl-install/lang.pm58
1 files changed, 30 insertions, 28 deletions
diff --git a/perl-install/lang.pm b/perl-install/lang.pm
index b8cd625ec..8f7bc41c1 100644
--- a/perl-install/lang.pm
+++ b/perl-install/lang.pm
@@ -532,12 +532,9 @@ my @IM_i18n_fields = (
#- XIM server; or a Qt plugin if exists)
);
-my @sessions = any::sessions();
-my $is_kde3 = member('KDE', @sessions);
-my $is_kde4 = member('KDE', @sessions);
-my $is_gtk = any { !/KDE/i } @sessions;
+my ($is_kde3, $is_kde4, $_is_gtk);
-my @scim_bridges_qt_packages = (if_($is_kde3, 'scim-bridge-qt3'), if_($is_kde4, 'scim-bridge-qt4'));
+my @scim_bridges_qt_packages;
# keep the 'packages' field in sync with share/rpmsrate:
my %IM_config =
@@ -563,7 +560,7 @@ my %IM_config =
'zh_HK' => 'chinput -big5',
'zh_TW' => 'chinput -big5',
},
- packages => { generic => [ 'miniChinput' ] },
+ packages => { generic => sub { 'miniChinput' } },
},
fcitx => {
GTK_IM_MODULE => 'xim',
@@ -593,7 +590,7 @@ my %IM_config =
XIM => 'kinput2',
XIM_PROGRAM => 'kinput2',
XMODIFIERS => '@im=kinput2',
- packages => { generic => [ 'kinput2-wnn' ] },
+ packages => { generic => sub { 'kinput2-wnn' } },
},
nabi => {
GTK_IM_MODULE => 'xim',
@@ -609,7 +606,7 @@ my %IM_config =
XIM => 'oxim',
XIM_PROGRAM => 'oxim',
XMODIFIERS => '@im=oxim', # '@im=SCIM' is broken for now
- packages => { generic => [ 'oxim' ] },
+ packages => { generic => sub { 'oxim' } },
},
'scim' => {
GTK_IM_MODULE => 'scim',
@@ -618,12 +615,12 @@ my %IM_config =
XMODIFIERS => '@im=SCIM',
default_for_lang => 'am ja ko vi zh_CN zh_TW',
packages => {
- generic => [ qw(scim scim-m17n scim-tables), if_($is_kde3, 'scim-qtimm') ],
- am => [ qw(scim scim-tables ), if_($is_kde3, 'scim-qtimm') ],
- ja => [ qw(scim-anthy scim-input-pad scim-tomoe), if_($is_kde3, 'scim-qtimm') ],
- ko => [ 'scim-hangul', if_($is_kde3, 'scim-qtimm') ],
- vi => [ 'scim-m17n', if_($is_kde3, 'scim-qtimm') ],
- zh => [ qw(scim-pinyin scim-tables scim-chewing), if_($is_kde3, 'scim-qtimm') ],
+ generic => sub { qw(scim scim-m17n scim-tables), if_($is_kde3, 'scim-qtimm') },
+ am => sub { qw(scim scim-tables ), if_($is_kde3, 'scim-qtimm') },
+ ja => sub { qw(scim-anthy scim-input-pad scim-tomoe), if_($is_kde3, 'scim-qtimm') },
+ ko => sub { 'scim-hangul', if_($is_kde3, 'scim-qtimm') },
+ vi => sub { 'scim-m17n', if_($is_kde3, 'scim-qtimm') },
+ zh => sub { qw(scim-pinyin scim-tables scim-chewing), if_($is_kde3, 'scim-qtimm') },
},
},
@@ -634,12 +631,12 @@ my %IM_config =
XMODIFIERS => '@im=SCIM',
default_for_lang => 'am ja ko vi zh_CN zh_TW',
packages => {
- generic => [ qw(scim-m17n scim-tables), @scim_bridges_qt_packages ],
- am => [ 'scim-tables', @scim_bridges_qt_packages ],
- ja => [ qw(scim-anthy scim-input-pad scim-tomoe), @scim_bridges_qt_packages ],
- ko => [ 'scim-hangul', @scim_bridges_qt_packages ],
- vi => [ 'scim-m17n', @scim_bridges_qt_packages ],
- zh => [ qw(scim-pinyin scim-tables scim-chewing), @scim_bridges_qt_packages ],
+ generic => sub { qw(scim-m17n scim-tables), @scim_bridges_qt_packages },
+ am => sub { 'scim-tables', @scim_bridges_qt_packages },
+ ja => sub { qw(scim-anthy scim-input-pad scim-tomoe), @scim_bridges_qt_packages },
+ ko => sub { 'scim-hangul', @scim_bridges_qt_packages },
+ vi => sub { 'scim-m17n', @scim_bridges_qt_packages },
+ zh => sub { qw(scim-pinyin scim-tables scim-chewing), @scim_bridges_qt_packages },
},
},
skim => {
@@ -649,12 +646,12 @@ my %IM_config =
XMODIFIERS => '@im=SCIM',
default_for_lang => 'am ja ko vi zh_CN zh_TW',
packages => {
- generic => [ qw(scim-tables-skim scim-m17n), if_($is_kde3, 'scim-qtimm') ],
- am => [ 'scim-tables-skim', if_($is_kde3, 'scim-qtimm') ],
- ja => [ qw(skim-scim-anthy scim-input-pad scim-tomoe), if_($is_kde3, 'scim-qtimm') ],
- ko => [ 'scim-hangul-skim', if_($is_kde3, 'scim-qtimm') ],
- vi => [ qw(skim scim-m17n), if_($is_kde3, 'scim-qtimm') ],
- zh => [ qw(skim-scim-pinyin scim-tables-skim scim-chewing), if_($is_kde3, 'scim-qtimm') ],
+ generic => sub { qw(scim-tables-skim scim-m17n), if_($is_kde3, 'scim-qtimm') },
+ am => sub { 'scim-tables-skim', if_($is_kde3, 'scim-qtimm') },
+ ja => sub { qw(skim-scim-anthy scim-input-pad scim-tomoe), if_($is_kde3, 'scim-qtimm') },
+ ko => sub { 'scim-hangul-skim', if_($is_kde3, 'scim-qtimm') },
+ vi => sub { qw(skim scim-m17n), if_($is_kde3, 'scim-qtimm') },
+ zh => sub { qw(skim-scim-pinyin scim-tables-skim scim-chewing), if_($is_kde3, 'scim-qtimm') },
},
},
uim => {
@@ -663,7 +660,7 @@ my %IM_config =
XIM => 'uim',
XIM_PROGRAM => 'uim-xim',
XMODIFIERS => '@im=uim',
- packages => { generic => [ qw(uim-gtk uim) ] },
+ packages => { generic => sub { qw(uim-gtk uim) } },
},
xcin => {
XIM => 'xcin',
@@ -719,10 +716,15 @@ sub get_default_im {
sub IM2packages {
my ($locale) = @_;
if ($locale->{IM}) {
+ my @sessions = any::sessions();
+ $is_kde3 = member('KDE', @sessions);
+ $is_kde4 = member('KDE', @sessions);
+ $_is_gtk = any { !/KDE/i } @sessions;
+ @scim_bridges_qt_packages = (if_($is_kde3, 'scim-bridge-qt3'), if_($is_kde4, 'scim-bridge-qt4'));
my $per_lang = $IM_config{$locale->{IM}}{packages} || {};
my $lang = analyse_locale_name($locale->{lang})->{main};
my $packages = $per_lang->{$lang} || $per_lang->{generic};
- $packages ? @$packages : $locale->{IM};
+ $packages ? $packages->() : $locale->{IM};
} else { () }
}