--- doc/loncapafiles/langcheck.piml 2011/11/02 13:16:19 1.1
+++ doc/loncapafiles/langcheck.piml 2023/05/09 00:55:29 1.32
@@ -5,27 +5,111 @@
-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 'sles12' ||
+ '' eq 'suse11.1' || '' eq 'suse11.2' || '' eq 'suse11.3' ||
+ '' eq 'suse11.4' || '' eq 'suse12.1' || '' eq 'suse12.2' ||
+ '' eq 'suse12.3' || '' eq 'suse13.1' || '' eq 'suse13.2') {
+ 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' || '' eq 'ubuntu12' ||
+ '' eq 'ubuntu14' || '' eq 'ubuntu16' || '' eq 'ubuntu18' ||
+ '' eq 'ubuntu20' || '' eq 'ubuntu22') {
+ 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);
+ }
+} elsif ('' eq 'fedora18' || '' eq 'fedora19' || '' eq 'fedora20' ||
+ '' eq 'fedora21' || '' eq 'fedora22' || '' eq 'fedora23' ||
+ '' eq 'fedora24' || '' eq 'fedora25' || '' eq 'fedora26' ||
+ '' eq 'fedora27' || '' eq 'fedora28' || '' eq 'fedora29' ||
+ '' eq 'fedora30' || '' eq 'fedora31' || '' eq 'fedora32' ||
+ '' eq 'fedora33' || '' eq 'fedora34' || '' eq 'fedora35' ||
+ '' eq 'fedora36' || '' eq 'fedora37' || '' eq 'fedora38' ||
+ '' eq 'rhes7' || '' eq 'centos7' || '' eq 'scientific7' ||
+ '' eq 'rhes8' || '' eq 'centos8' || '' eq 'oracle7' ||
+ '' eq 'oracle8' || '' eq 'rocky8' || '' eq 'alma8' ||
+ '' eq 'centos8-stream' || '' eq 'centos9-stream' || '' eq 'rhes9' ||
+ '' eq 'oracle9' || '' eq 'rocky9' || '' eq 'alma9') {
+ if (open(PIPE,"cat /etc/locale.conf |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/locale.conf\n";
+ }
+ close(PIPE);
+ }
+} elsif ('' eq 'sles15') {
+ if (open(PIPE,"cat /etc/locale.conf |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/locale.conf\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
+
+