--- doc/loncapafiles/langcheck.piml 2011/11/02 13:16:19 1.1
+++ doc/loncapafiles/langcheck.piml 2011/11/08 07:33:08 1.2
@@ -5,27 +5,75 @@
-print "Checking root bash language";
-my $lang = `locale`;
-if ($lang =~ "LANG=en") {
- print "... OK\n";
-} else {
- print "\n**** WARNING: You seem to have a non-english root bash. This can cause incorrect error messages.\n".
- " It is recommended to set your bash language to English.\n";
+if (open(PIPE,"locale |")) {
+ my @lines = <PIPE>;
+ close(PIPE);
+ print "Checking root bash language";
+ my ($is_english,$is_posix);
+ foreach my $line (@lines) {
+ if ($line =~ /^LANG=en/) {
+ $is_english = 1;
+ print "... OK\n";
+ last;
+ } elsif ($line =~ /^LANG=POSIX/) {
+ $is_posix = 1;
+ }
+ if ($is_posix) {
+ if ($line =~ /^LC_CTYPE=en/) {
+ $is_english = 1;
+ print "... OK\n";
+ last;
+ }
+ }
+ }
+ if (!$is_english) {
+ print "\n**** WARNING: You seem to have a non-English root bash. This can cause incorrect error messages.\n".
+ " It is recommended that you set your bash language to English by setting LANG=en_US.UTF-8 in /root/.bashrc\n";
+ }
}
-my $file = "/etc/sysconfig/i18n";
-if (open(my $IN,'<'.$file)) {
- print "Checking OS language";
- if (<$IN> =~ "LANG=\"en") {
- print "... OK\n";
- } else {
- print "\n**** WARNING: You seem to have a non-english operating system. ".
- "It is recommended to set the language in /etc/sysconfig/i18n to English.\n";
+my $osmsg = "\n**** WARNING: You seem to have a non-English operating system.\n";
+
+if ('' eq 'sles9' || '' eq 'sles10' || '' eq 'sles11' ||
+ '' eq 'suse11.1' || '' eq 'suse11.2' || '' eq 'suse11.3' ||
+ '' eq 'suse11.4' || '' eq '12.1') {
+ if (open(PIPE,"cat /etc/sysconfig/language |grep '^RC_LANG' |")) {
+ print "Checking OS language";
+ if (<PIPE> =~ /^RC_LANG="en/) {
+ print "... OK\n";
+ } else {
+ print $osmsg.
+ "It is recommended that you set LANG=\"en_US.UTF-8\" in /etc/sysconfig/language\n";
+ }
+ close(PIPE);
+ }
+} elsif ('' eq 'debian5' || '' eq 'debian6' || '' eq 'ubuntu6' ||
+ '' eq 'ubuntu8' || '' eq 'ubuntu10') {
+ if (open(PIPE,"cat /etc/default/locale |grep '^LANG' |")) {
+ print "Checking OS language";
+ if (<PIPE> =~ /^LANG="en/) {
+ print "... OK\n";
+ } else {
+ print $osmsg.
+ "It is recommended that you set LANG=\"en_US.UTF-8\" in /etc/default/locale\n";
+ }
+ close(PIPE);
+ }
+} else {
+ if (open(PIPE,"cat /etc/sysconfig/i18n |grep '^LANG' |")) {
+ print "Checking OS language";
+ if (<PIPE> =~ /^LANG="en/) {
+ print "... OK\n";
+ } else {
+ print $osmsg.
+ "It is recommended that you set LANG=\"en_US.UTF-8\" in /etc/sysconfig/i18n.\n";
+ }
+ close(PIPE);
}
}
-
\ No newline at end of file
+
+