#! /usr/bin/perl -w use strict; if (@ARGV != 1) { print STDERR "Usage: $0 localechooser-source-tree\n"; exit 1; } my $localechooser = $ARGV[0]; # hardcoded for now because it's messy to work this out any other way my %langcode_override = ( 'Chinese (Simplified)' => 'zh_CN', 'Chinese (Traditional)' => 'zh_TW', 'Portuguese (Brazil)' => 'pt_BR', 'Portuguese' => 'pt', ); my %langcodes; open LIST, '<:utf8', "$localechooser/languagelist" or die "$0: can't open $localechooser/languagelist: $!"; while () { chomp; next if /^#/ or not /\S/; my @bits = split /;/; next if $bits[0] eq 'C'; my $lang; if (exists $langcode_override{$bits[0]}) { $lang = $langcode_override{$bits[0]}; } else { $lang = $bits[4]; } $langcodes{$bits[0]} = $lang; } close LIST; my %langnames; open L10N, '<:utf8', "$localechooser/languagelist.l10n" or die "$0: can't open $localechooser/languagelist.l10n: $!"; while () { chomp; next if /^#/ or not /\S/; next unless /(.*?): (.*)/; my ($lang_c, $lang_trans) = ($1, $2); next if $lang_c eq 'C'; $langnames{$lang_c} = $lang_trans; } close L10N; binmode STDOUT, ':utf8'; for my $lang_c (sort { $langcodes{$a} cmp $langcodes{$b} } keys %langcodes) { print "$langcodes{$lang_c} "; if (exists $langnames{$lang_c}) { print "$langnames{$lang_c}\n"; } else { print "$lang_c\n"; } }