Locale: zusätzliche Locales parsen
authorSven Schöling <s.schoeling@linet-services.de>
Fri, 17 Jul 2015 12:46:39 +0000 (14:46 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Mon, 20 Jul 2015 14:37:27 +0000 (16:37 +0200)
SL/Locale.pm

index 8495553..4198a33 100644 (file)
@@ -80,11 +80,27 @@ sub _init {
   $self->{countrycode} = $country;
 
   if ($country && -d "locale/$country") {
-    local *IN;
-    if (open(IN, "<", "locale/$country/all")) {
-      my $code = join("", <IN>);
+    if (open my $in, "<", "locale/$country/all") {
+      local $/ = undef;
+      my $code = <$in>;
       eval($code);
-      close(IN);
+      close($in);
+    }
+
+    if (-d "locale/$country/more") {
+      opendir my $dh, "locale/$country/more" or die "can't open locale/$country/more: $!";
+      my @files = sort grep -f "locale/$country/more/$_", readdir $dh;
+      close $dh;
+
+      for my $file (@files) {
+        if (open my $in, "<", "locale/$country/more/$file") {
+          local $/ = undef;
+          my $code = <$file>;
+          eval($code);
+          close($in);
+          $self->{texts}{$_} = $self->{more_texts}{$_} for keys %{ $self->{more_texts} };
+        }
+      }
     }
   }