]> Frank Brehm's Git Trees - scripts/solaris.git/commitdiff
Locales mit eingebracht
authorFrank Brehm <frank@brehm-online.com>
Thu, 28 Dec 2006 14:01:06 +0000 (14:01 +0000)
committerFrank Brehm <frank@brehm-online.com>
Thu, 28 Dec 2006 14:01:06 +0000 (14:01 +0000)
locale/de.UTF-8 [new symlink]
locale/de/LC_MESSAGES/sicher.mo [new file with mode: 0644]
locale/de_DE.UTF-8 [new symlink]
po/Makefile [new file with mode: 0644]
po/sicher.de.po [new file with mode: 0644]
sicher.pl

diff --git a/locale/de.UTF-8 b/locale/de.UTF-8
new file mode 120000 (symlink)
index 0000000..c42e816
--- /dev/null
@@ -0,0 +1 @@
+de
\ No newline at end of file
diff --git a/locale/de/LC_MESSAGES/sicher.mo b/locale/de/LC_MESSAGES/sicher.mo
new file mode 100644 (file)
index 0000000..b505aae
Binary files /dev/null and b/locale/de/LC_MESSAGES/sicher.mo differ
diff --git a/locale/de_DE.UTF-8 b/locale/de_DE.UTF-8
new file mode 120000 (symlink)
index 0000000..c42e816
--- /dev/null
@@ -0,0 +1 @@
+de
\ No newline at end of file
diff --git a/po/Makefile b/po/Makefile
new file mode 100644 (file)
index 0000000..b332fe9
--- /dev/null
@@ -0,0 +1,12 @@
+# Makefile zur Erstellung der kompilierten deutschen Sprachdatei
+
+# $Id$
+# $URL$
+
+
+all:    Makefile sicher.de.po.time
+
+sicher.de.po.time: sicher.de.po
+       LC_ALL=de_DE.utf8 msgfmt -o ../locale/de/LC_MESSAGES/sicher.mo sicher.de.po
+       touch sicher.de.po.time
+
diff --git a/po/sicher.de.po b/po/sicher.de.po
new file mode 100644 (file)
index 0000000..92d4d84
--- /dev/null
@@ -0,0 +1,51 @@
+# Template-File for Translations
+# Copyright (C) 2006 Frank Brehm
+# This file is distributed under the same license as the test-gettext package.
+# Frank Brehm <brehm@strato.de>, 2006.
+#
+# $Id$
+# $URL$
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Datei-Sicherungs-Script 1.1\n"
+"Report-Msgid-Bugs-To: <brehm@strato.de>\n"
+"POT-Creation-Date: 2006-12-28 15:00+0100\n"
+"PO-Revision-Date: 2006-12-28 15:00+0100\n"
+"Last-Translator: Frank Brehm <brehm@strato>\n"
+"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+# #: test-gettext.pl:29
+# #, perl-format
+# msgid "Current location of localisation files: '%s'\n"
+# msgstr "Aktuelle Lage der Lokalisierungs-Dateien: '%s'\n"
+
+# #: test-gettext.pl:31
+# msgid "Welcome to my program."
+# msgstr "Willkommen zu meinem Programm."
+
+# #: test-gettext.pl:33
+# #, perl-format
+# msgid "Today: UNIX-Timestamp %d, local time: %s\n"
+# msgstr "Lokale Uhrzeit: %2$s, Heute: UNIX-Timestamp %1$d\n"
+
+# #: test-gettext.pl:36
+# #, perl-format
+# msgid "I've count one man\n"
+# msgid_plural "I've count %d men\n"
+# msgstr[0] "Ich habe einen Mann gezählt.\n"
+# msgstr[1] "Ich habe %d Männer gezählt.\n"
+
+# Die Sprachbezeichnungen
+msgid "german"
+msgstr "deutsch"
+
+# Die Sprachbezeichnungen
+msgid "english"
+msgstr "englisch"
+
+
index 5cd24e215a2c6937f998b552801d4245c0976ba6..6268fef4dae70dcb0587245b5b856db3cb4b7376 100755 (executable)
--- a/sicher.pl
+++ b/sicher.pl
@@ -13,7 +13,7 @@ Script zum rekursiven Erstellen von Sicherheitskopien von Dateien (mit Zeitstemp
 
 =head1 SYNOPSIS
 
-    sicher.pl [-c <configfile>] [-t] [-v[ -v...]] [-D <debuglevel>] [<Datei1> [Datei2] usw.]
+    sicher.pl [-t] [-v[ -v...]] [-D <debuglevel>] [-o <oldirname>] [<Datei1> [Datei2] usw.]
     sicher.pl -h
     sicher.pl -V
 
@@ -21,14 +21,6 @@ Script zum rekursiven Erstellen von Sicherheitskopien von Dateien (mit Zeitstemp
 
 =over 4
 
-=item B<--configfile I<configfile>>
-
-=item B<--conf I<configfile>>
-
-=item B<-c I<configfile>> - Konfigurationsdatei
-
-Wenn nicht angegeben, wird C</etc/sicher.conf> bzw., wenn vorhanden, die Datei C<$HOME/.sicher.conf> verwendet.
-
 =item B<--verbose>
 
 =item B<-v> - Verbose-Level (Debug-Level)
@@ -48,6 +40,16 @@ I<Hinweise>:
 Die Parameter C<-v> und C<-D> wirken sich gleich aus.
 Wenn beide angegeben werden, wird der hoehere von beiden verwendet.
 
+=item B<--olddir oldirname>
+
+=item B<--old oldirname>
+
+=item B<-o olddirname>
+
+Gibt den Namen des Verzeichnisses an, in dem Sicherheitskopien abgelegt werden.
+
+Wenn nicht angegeben, wird C<.old> verwendet.
+
 =item B<--test>
 
 =item B<-t> - Testmodus
@@ -70,6 +72,19 @@ Gibt die Versionsnummer dieses Programms aus und beendet sich.
 
 =back
 
+=head1 ENVIRONMENT
+
+=over 4
+
+=item B<OLDDIR>
+
+Gibt den Namen des Verzeichnisses an, in dem Sicherheitskopien abgelegt werden. Wird
+von der Kommandozeilenoption C<-o> overruled.
+
+Wenn nicht angegeben, wird C<.old> verwendet.
+
+=back
+
 =cut
 
 
@@ -80,7 +95,11 @@ use warnings;
 use Data::Dumper;
 use Getopt::Long;
 use Pod::Usage;
-use Time::HiRes qw( gettimeofday tv_interval );
+# use Time::HiRes qw( gettimeofday tv_interval );
+use File::Basename;
+use File::Spec::Functions;
+use Locale::gettext;
+use POSIX qw(setlocale LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME);
 
 $| = 1;
 
@@ -94,11 +113,11 @@ ENDE
 $Revis =~ s/^.*:\s*(\S+)\s*\$.*/$1/s;
 our $VERSION = "1." . $Revis;
 
-my ( $cfgfile, $test_mode, $help, $cmdline_verbose, $show_version, $DebugLevel );
+my ( $olddir, $test_mode, $help, $cmdline_verbose, $show_version, $DebugLevel );
 
 unless (
     GetOptions(
-        "configfile|conf|c=s"  => \$cfgfile,
+        "olddir|old|o=s"       => \$olddir,
         "test|t"               => \$test_mode,
         "help|h|?"             => \$help,
         "verbose|v+"           => \$cmdline_verbose,
@@ -125,6 +144,163 @@ if ($show_version) {
     exit 0;
 }
 
+$olddir ||= $ENV{'OLDDIR'} || '.old';
+
+print "OldDir-Name:   '" . $olddir . "'\n" if $verbose;
+print "Test-Modus:    " . ( $test_mode ? "ON" : "OFF" ) . "\n" if $verbose or $test_mode;
+if ($verbose) {
+    print "Verbose-Level: " . $verbose . "\n";
+}
+
+print "\nInitialisiere Locales ....\n" if $verbose > 1;
+my $l = Locale::gettext->domain_raw('sicher');
+unless ( $l ) {
+    die "Konnte Locale::gettext nicht initialisieren.\n";
+}
+$l->codeset('utf-8');
+
+my $locale_dir = catdir( dirname($0), "locale" );
+$l->dir($locale_dir);
+_debug( 5, "Locale-Objekt: ", $l );
+_debug( 2, "Locale-Verzeichnis: ", $locale_dir );
+
+
+exit 0;
+
+
+#################################################################################################################
+
+=head1 Funktionen
+
+die halt mal so begraucht werden...
+
+#---------------------------------------------------------------------------
+
+=head2 _debug( $debug_level, @messages )
+
+Logroutine fuer Debug-Logging ...
+
+=cut
+
+sub _debug {
+
+    my $debug_level = shift;
+
+    # Debug-Level richtig setzen
+    $debug_level = to_int($debug_level);
+    $debug_level = 1 unless defined $debug_level;
+
+    return undef if $debug_level > $verbose;
+
+    # Zuerst die Messages zurechtstutzen...
+    my @Out = ();
+
+    for (@_) {
+        my $msg = defined $_ ? $_ : "";
+        chomp $msg;
+        $msg = Dumper($msg) if ref($msg);
+        push @Out, $msg;
+    }
+
+    my $out = join( " ", @Out );
+    @Out = ();
+
+    # Datum zu Meldung dazu ...
+    $out = "[" . localtime() . "] debug-" . $debug_level . ": " . $out . "\n";
+
+    # Ausgabe auf Stdout
+    print $out;
+
+    return 1;
+
+}
+
+#---------------------------------------------------------------------------
+
+=head2 _error( $error_level, @messages )
+
+Fehler-Ausgabefunktion
+
+=cut
+
+sub _error {
+
+    my $error_level = shift;
+
+    # Zuerst die Messages zurechtstutzen...
+    my @Out = ();
+
+    for (@_) {
+        my $msg = defined $_ ? $_ : "";
+        chomp $msg;
+        $msg = Dumper($msg) if ref($msg);
+        push @Out, $msg;
+    }
+
+    my $out = join( " ", @Out );
+    @Out = ();
+
+    $error_level = 'notice' unless defined $error_level;
+    if ( $error_level =~ /^\s*(emerg|alert|crit|err|warning|notice|info)\s*$/i ) {
+        $error_level = lc($1);
+    }
+    elsif ( $error_level =~ /^\s*error\s*$/i ) {
+        $error_level = 'err';
+    }
+    elsif ( $error_level =~ /^\s*warn\s*$/i ) {
+        $error_level = 'warning';
+    }
+    else {
+        $error_level = 'notice';
+    }
+
+    # Datum + Error-level zu Meldung dazu ...
+    $out = "[" . localtime() . "] " . $error_level . ": " . $out . "\n";
+    warn $out;
+
+    return 1;
+
+}
+
+#------------------------------------------------------------------------------------------
+
+=head2 to_int( $wert, $signed )
+
+Wandelt den uebergebenen Wert sicher in eine Integer-Zahl um.
+
+Dabei legt der optionale logische Parameter $signed fest, ob auch
+vorzeichenbehaftete Werte zulaessig sind.
+
+Wenn keine gueltige Zahl uebergeben wird, wird undef zurueckgegeben.
+
+=cut
+
+sub to_int {
+
+    my $val    = shift;
+    my $signed = shift;
+
+    return undef unless defined $val;
+    unless ( $val =~ /\d/ ) {
+        return undef;
+    }
+
+    if ($signed) {
+        $val =~ /^[^\d-]*(?:(-)\s*)?(\d+)/;
+        $val = ( defined $1 ? $1 : '' ) . $2;
+    }
+    else {
+        $val =~ /^\D*(\d+)/;
+        $val = $1;
+    }
+
+    return $val + 0;
+
+} ## end sub to_int
+
+#------------------------------------------------------------------------------
+
+__END__