* added pl.pm
authorcbarratt <cbarratt>
Sat, 22 Sep 2007 18:17:24 +0000 (18:17 +0000)
committercbarratt <cbarratt>
Sat, 22 Sep 2007 18:17:24 +0000 (18:17 +0000)
* added minor fix to BackupPC_nightly

ChangeLog
bin/BackupPC_nightly
conf/config.pl
doc-src/BackupPC.pod
lib/BackupPC/Lang/pl.pm [new file with mode: 0644]
makeDist

index d1777df..e9a2745 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 
 * Applied documentation patches from Frans Pop.
 
+* Added Polish translation from Semper.
+
+* Fixed BackupPC_nightly reporting of repeated pool file hashes,
+  reported by XXX.
+
+* Add run-time check that IO::Dirent is functioning correctly.
+
 #------------------------------------------------------------------------
 # Version 3.1.0beta0, 3 Sep 2007
 #------------------------------------------------------------------------
index 9dbdb2d..7bee23c 100755 (executable)
@@ -297,7 +297,7 @@ sub GetPoolStats
         $fullPath =~ s/_\d+$//;
         $FixList{$fullPath}++;
     } else {
-        if ( /_(\d+)$/ ) {
+        if ( $file =~ /_(\d+)$/ ) {
             $fileRepMax = $1 + 1 if ( $fileRepMax <= $1 );
             $fileCntRep++;
         }
index 461e3f8..7113463 100644 (file)
@@ -1873,8 +1873,8 @@ $Conf{CgiURL} = undef;
 #   
 # Language to use.  See lib/BackupPC/Lang for the list of supported
 # languages, which include English (en), French (fr), Spanish (es),
-# German (de), Italian (it), Dutch (nl), Portuguese Brazillian
-# (pt_br) and Chinese (zh_CH).
+# German (de), Italian (it), Dutch (nl), Polish (pl), Portuguese
+# Brazillian (pt_br) and Chinese (zh_CH).
 #
 # Currently the Language setting applies to the CGI interface and email
 # messages sent to users.  Log files and other text are still in English.
index e027b1b..f3248bd 100644 (file)
@@ -2807,6 +2807,8 @@ new CSS skin for 3.0.0 with several layout improvements.  Sean Cameron
 
 Youlin Feng provided the Chinese translation for 3.1.0.
 
+Semper provided the Polish translation for 3.1.0.
+
 Jeremy Tietsort provided the host summary table sorting feature for 3.1.0.
 
 Many people have reported bugs, made useful suggestions and helped
diff --git a/lib/BackupPC/Lang/pl.pm b/lib/BackupPC/Lang/pl.pm
new file mode 100644 (file)
index 0000000..ac015c7
--- /dev/null
@@ -0,0 +1,1461 @@
+#!/bin/perl
+
+#my %lang;
+#use strict;
+
+# --------------------------------
+
+$Lang{Start_Archive} = "Zacznij Archiwizację";
+$Lang{Stop_Dequeue_Archive} = "Zatrzymaj/Odkolejkuj Archiwizację";
+$Lang{Start_Full_Backup} = "Zacznij Pełną Kopię Bezpieczeństwa";
+$Lang{Start_Incr_Backup} = "Zacznij Inkrementacyjną Kopię Bezpieczeństwa";
+$Lang{Stop_Dequeue_Backup} = "Zatrzymaj/Odkolejkuj Kopię Bezpieczeństwa";
+$Lang{Restore} = "Przywróć";
+
+$Lang{Type_full} = "pełny";
+$Lang{Type_incr} = "inkrementacyjny";
+
+# -----
+
+$Lang{Only_privileged_users_can_view_admin_options} = "Tylko uprzywilejowani użytkownicy mogą oglądać opcje administracyjne";
+$Lang{H_Admin_Options} = "Serwer BackupPC: Opcje Administracyjne";
+$Lang{Admin_Options} = "Opcje Administracyjne";
+$Lang{Admin_Options_Page} = <<EOF;
+\${h1(qq{$Lang{Admin_Options}})}
+<br>
+\${h2("Kontrola Serwera")}
+<form name="ReloadForm" action="\$MyURL" method="get">
+<input type="hidden" name="action" value="">
+<table class="tableStnd">
+  <tr><td>Wczytaj ponownie konfigurację serwera:<td><input type="button" value="Reload"
+     onClick="document.ReloadForm.action.value='Reload';
+              document.ReloadForm.submit();">
+</table>
+</form>
+<!--
+\${h2("Konfiguracja Serwera")}
+<ul>
+  <li><i>Inne opcje mogą być tu ... . tzn,</i>
+  <li>Edytuj Konfigurację Serwera
+</ul>
+-->
+EOF
+$Lang{Unable_to_connect_to_BackupPC_server} = "Nie można połączyć się z serwerem BackupPC",
+            "Ten skrypt CGI (\$MyURL) nie może połączyć się z BackupPC"
+          . " serwer na \$Conf{ServerHost} porcie \$Conf{ServerPort}.  Błąd"
+          . " to: \$err.",
+            "Możliwe ,że serwer BackupPC nie jest uruchomiony albo że występuje "
+          . " błąd w konfiguracji.  Proszę powiadomić o tym swojego Administratora.";
+$Lang{Admin_Start_Server} = <<EOF;
+\${h1(qq{$Lang{Unable_to_connect_to_BackupPC_server}})}
+<form action="\$MyURL" method="get">
+Serwer BackupPC na <tt>\$Conf{ServerHost}</tt> porcie <tt>\$Conf{ServerPort}</tt>
+nie działa (może tylko go wyłączyłeś, albo po prostu nie wlaczyłeś).<br>
+Czy chcesz go włączyć?
+<input type="hidden" name="action" value="startServer">
+<input type="submit" value="Uruchom Serwer" name="ignore">
+</form>
+EOF
+
+# -----
+
+$Lang{H_BackupPC_Server_Status} = "Status Serwera BackupPC";
+
+$Lang{BackupPC_Server_Status_General_Info}= <<EOF;
+\${h2(\"Informacje Ogólne Serwera\")}
+
+<ul>
+<li> PID serwera to \$Info{pid},  na hoście \$Conf{ServerHost},
+     wersja \$Info{Version}, włączony \$serverStartTime.
+<li> WYgenerowanie statusu : \$now.
+<li> Ostatnie ładowanie konfiguracji : \$configLoadTime.
+<li> Następne kolejkowanie : \$nextWakeupTime.
+<li> Inne Informacje:
+    <ul>
+        <li>\$numBgQueue oczekujących żądań kopii bezpieczeństwa od czasu ostatniego zaplanowanego działania,
+        <li>\$numUserQueue oczekujacych żądań kopii bezpieczeństwa od uzytkowników,
+        <li>\$numCmdQueue oczekujących poleceń do wykonania,
+        \$poolInfo
+        <li>Ostatni obszar systemu plików to \$Info{DUlastValue}%
+            (\$DUlastTime), dzisiejsza maksymalna wartość to \$Info{DUDailyMax}% (\$DUmaxTime)
+            a wczorajszy był \$Info{DUDailyMaxPrev}%.
+    </ul>
+</ul>
+EOF
+
+$Lang{BackupPC_Server_Status} = <<EOF;
+\${h1(qq{$Lang{H_BackupPC_Server_Status}})}
+
+<p>
+\$generalInfo
+
+\${h2("Aktualnie Działające Prace")}
+<p>
+<table class="tableStnd" border cellspacing="1" cellpadding="3">
+<tr class="tableheader"><td> Host </td>
+    <td> Typ </td>
+    <td> Użytkownik </td>
+    <td> Początek </td>
+    <td> Polecenie </td>
+    <td align="center"> PID </td>
+    <td align="center"> Xfer PID </td>
+    </tr>
+\$jobStr
+</table>
+<p>
+
+\${h2("Błędy które wymagają uwagi")}
+<p>
+<table class="tableStnd" border cellspacing="1" cellpadding="3">
+<tr class="tableheader"><td align="center"> Host </td>
+    <td align="center"> Typ </td>
+    <td align="center"> Użytkownik </td>
+    <td align="center"> Ostatnia próba </td>
+    <td align="center"> Detale </td>
+    <td align="center"> Czas </td>
+    <td> Ostatni błąd (inny niż brak połączenia(pingu)) </td></tr>
+\$statusStr
+</table>
+EOF
+
+# --------------------------------
+$Lang{BackupPC__Server_Summary} = "BackupPC: Wyciąg Hostow";
+$Lang{BackupPC__Archive} = "BackupPC: Archiwum";
+$Lang{BackupPC_Summary} = <<EOF;
+
+\${h1(qq{$Lang{BackupPC__Server_Summary}})}
+<p>
+<ul>
+<li>Ten status został wygenerowany o \$now.
+<li>Ostatni obszar systemu plików to \$Info{DUlastValue}%
+    (\$DUlastTime), dzisiejsza maksymalna wartość to \$Info{DUDailyMax}% (\$DUmaxTime)
+    a wczorajszy był \$Info{DUDailyMaxPrev}%.
+</ul>
+</p>
+
+\${h2("Hosty z bezbłędnie wykonaną kopią bezpieczeństwa ")}
+<p>
+Jest \$hostCntGood hostów które zostaly zabezpieczone, na całkowita liczbę:
+<ul>
+<li> \$fullTot pełnych kopi bezpieczeństwa na pełną sumę \${fullSizeTot}GB
+     (przed kompresją),
+<li> \$incrTot inkrementalnych kopi bezpieczeństwa na pełną sume \${incrSizeTot}GB
+     (przed kompresją).
+</ul>
+</p>
+<table class="sortable" id="host_summary_backups" border cellpadding="3" cellspacing="1">
+<tr class="tableheader"><td> Host </td>
+    <td align="center"> Użytwkonik </td>
+    <td align="center"> #Pełny </td>
+    <td align="center"> Pełny Wiek (dni) </td>
+    <td align="center"> Pełny Rozmiar (GB) </td>
+    <td align="center"> Prędkość (MB/s) </td>
+    <td align="center"> #Inkr </td>
+    <td align="center"> Wiek Inkr (dni) </td>
+    <td align="center"> Ostatnia kopia bezpieczeństwa (dni) </td>
+    <td align="center"> Status </td>
+    <td align="center"> Ostatnia próba </td></tr>
+\$strGood
+</table>
+<br><br>
+\${h2("Hosty bez wykonanej kopii bezpieczeństwa")}
+<p>
+Jest \$hostCntNone hostów bez kopii bezpieczeństwa.
+<p>
+<table class="sortable" id="host_summary_nobackups" border cellpadding="3" cellspacing="1">
+<tr class="tableheader"><td> Host </td>
+    <td align="center"> Użytkonik </td>
+    <td align="center"> #Pełny </td>
+    <td align="center"> Pełny Wiek (dni </td>
+    <td align="center"> Pełny Rozmiar (GB) </td>
+    <td align="center"> Prędkość (MB/s) </td>
+    <td align="center"> #Inkr </td>
+    <td align="center"> Wiek Inkr (dni) </td>
+    <td align="center"> Ostatnia kopia bezpieczeństwa (dni) </td>
+    <td align="center"> Status </td>
+    <td align="center"> Ostatnia próba </td></tr>
+\$strNone
+</table>
+EOF
+
+$Lang{BackupPC_Archive} = <<EOF;
+\${h1(qq{$Lang{BackupPC__Archive}})}
+<script language="javascript" type="text/javascript">
+<!--
+
+    function checkAll(location)
+    {
+      for (var i=0;i<document.form1.elements.length;i++)
+      {
+        var e = document.form1.elements[i];
+        if ((e.checked || !e.checked) && e.name != \'all\') {
+            if (eval("document.form1."+location+".checked")) {
+                e.checked = true;
+            } else {
+                e.checked = false;
+            }
+        }
+      }
+    }
+
+    function toggleThis(checkbox)
+    {
+       var cb = eval("document.form1."+checkbox);
+       cb.checked = !cb.checked;
+    }
+
+//-->
+</script>
+
+Jest \$hostCntGood hostów które mają kopie bezpieczeństwa na sumę \${fullSizeTot}GB
+<p>
+<form name="form1" method="post" action="\$MyURL">
+<input type="hidden" name="fcbMax" value="\$checkBoxCnt">
+<input type="hidden" name="type" value="1">
+<input type="hidden" name="host" value="\${EscHTML(\$archHost)}">
+<input type="hidden" name="action" value="Archive">
+<table class="tableStnd" border cellpadding="3" cellspacing="1">
+<tr class="tableheader"><td align=center> Host</td>
+    <td align="center"> Uzytkownik </td>
+    <td align="center"> Rozmiar Kopii Bezpieczeństwa </td>
+\$strGood
+\$checkAllHosts
+</table>
+</form>
+<p>
+
+EOF
+
+$Lang{BackupPC_Archive2} = <<EOF;
+\${h1(qq{$Lang{BackupPC__Archive}})}
+Przystępuje do archiwizacji następujących hostów 
+<ul>
+\$HostListStr
+</ul>
+<form action="\$MyURL" method="post">
+\$hiddenStr
+<input type="hidden" name="action" value="Archive">
+<input type="hidden" name="host" value="\${EscHTML(\$archHost)}">
+<input type="hidden" name="type" value="2">
+<input type="hidden" value="0" name="archive_type">
+<table class="tableStnd" border cellspacing="1" cellpadding="3">
+\$paramStr
+<tr>
+    <td colspan=2><input type="submit" value="Start the Archive" name="ignore"></td>
+</tr>
+</form>
+</table>
+EOF
+
+$Lang{BackupPC_Archive2_location} = <<EOF;
+<tr>
+    <td>Lokalizacja Archiwum</td>
+    <td><input type="text" value="\$ArchiveDest" name="archive_device"></td>
+</tr>
+EOF
+
+$Lang{BackupPC_Archive2_compression} = <<EOF;
+<tr>
+    <td>Kompresja</td>
+    <td>
+    <input type="radio" value="0" name="compression" \$ArchiveCompNone>None<br>
+    <input type="radio" value="1" name="compression" \$ArchiveCompGzip>gzip<br>
+    <input type="radio" value="2" name="compression" \$ArchiveCompBzip2>bzip2
+    </td>
+</tr>
+EOF
+
+$Lang{BackupPC_Archive2_parity} = <<EOF;
+<tr>
+    <td>Procent parytetowanych danych (0 = wyłączone, 5 = typowe)</td>
+    <td><input type="numeric" value="\$ArchivePar" name="par"></td>
+</tr>
+EOF
+
+$Lang{BackupPC_Archive2_split} = <<EOF;
+<tr>
+    <td>Rozdziel wyjście na </td>
+    <td><input type="numeric" value="\$ArchiveSplit" name="splitsize">Megabytes</td>
+</tr>
+EOF
+
+# -----------------------------------
+$Lang{Pool_Stat} = <<EOF;
+        <li>Pula to \${poolSize}GB zawiera \$info->{"\${name}FileCnt"} plików
+            oraz \$info->{"\${name}DirCnt"} katalogów (zajęło \$poolTime),
+        <li>Hashowanie puli daje \$info->{"\${name}FileCntRep"} powtarzających się
+            plików z najdłuższym łancuchem \$info->{"\${name}FileRepMax"},
+        <li>Nocne czyszczenie usunęło \$info->{"\${name}FileCntRm"} plików o
+            rozmiarze \${poolRmSize}GB (zajęło \$poolTime),
+EOF
+
+# --------------------------------
+$Lang{BackupPC__Backup_Requested_on__host} = "BackupPC: Kopia rządana na \$host";
+# --------------------------------
+$Lang{REPLY_FROM_SERVER} = <<EOF;
+\${h1(\$str)}
+<p>
+Odpowiedź serwera to : \$reply
+<p>
+Wróć do <a href="\$MyURL?host=\$host">strony domowej \$host</a>.
+EOF
+# --------------------------------
+$Lang{BackupPC__Start_Backup_Confirm_on__host} = "BackupPC: Potwierdzony start kopii na \$host";
+# --------------------------------
+$Lang{Are_you_sure_start} = <<EOF;
+\${h1("Are you sure?")}
+<p>
+Zamierzasz zaczać kopie \$type na \$host.
+
+<form name="Confirm" action="\$MyURL" method="get">
+<input type="hidden" name="host" value="\$host">
+<input type="hidden" name="hostIP" value="\$ipAddr">
+<input type="hidden" name="doit" value="1">
+<input type="hidden" name="action" value="">
+Czy napewno chcesz tego ?
+<input type="button" value="\$buttonText"
+  onClick="document.Confirm.action.value='\$In{action}';
+           document.Confirm.submit();">
+<input type="submit" value="No" name="ignore">
+</form>
+EOF
+# --------------------------------
+$Lang{BackupPC__Stop_Backup_Confirm_on__host} = "BackupPC: Zatrzymaj potwierdzoną kopie na \$host";
+# --------------------------------
+$Lang{Are_you_sure_stop} = <<EOF;
+
+\${h1("Czy jesteś pewien ?")}
+
+<p>
+Zamierzasz zatrzymać wykonywanie kopii na  \$host;
+
+<form name="Confirm" action="\$MyURL" method="get">
+<input type="hidden" name="host"   value="\$host">
+<input type="hidden" name="doit"   value="1">
+<input type="hidden" name="action" value="">
+Prosze nie zaczynac nowej kopii przez
+<input type="text" name="backoff" size="10" value="\$backoff"> godzin.
+<p>
+Czy naprawdę tego chcesz ?
+<input type="button" value="\$buttonText"
+  onClick="document.Confirm.action.value='\$In{action}';
+           document.Confirm.submit();">
+<input type="submit" value="No" name="ignore">
+</form>
+
+EOF
+# --------------------------------
+$Lang{Only_privileged_users_can_view_queues_} = "Tylko uprzywilejowani użytwkonicy mogą przeglądać kolejki";
+# --------------------------------
+$Lang{Only_privileged_users_can_archive} = "ylko uprzywilejowani użytwkonicy mogą archiwizować.";
+# --------------------------------
+$Lang{BackupPC__Queue_Summary} = "BackupPC: Podsumowanie kolejki";
+# --------------------------------
+$Lang{Backup_Queue_Summary} = <<EOF;
+\${h1("Podsumowanie kolejki kopii bezpieczeństwa")}
+<br><br>
+\${h2("Podsumowanie kolejki uzytkownika")}
+<p>
+Następujący użytkonicy są w kolejce:
+</p>
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
+<tr class="tableheader"><td> Host </td>
+    <td> Czas do </td>
+    <td> Użytkownik </td></tr>
+\$strUser
+</table>
+<br><br>
+
+\${h2("Podsumowanie kolejki w tle")}
+<p>
+Następujące kolejki będące w tle czekają na wykonanie :
+</p>
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
+<tr class="tableheader"><td> Host </td>
+    <td> Czas do </td>
+    <td> uzytkownik </td></tr>
+\$strBg
+</table>
+<br><br>
+\${h2("Podsumowanie kolejki poleceń")}
+<p>
+Następujące kolejki poleceń czekają na wykonanie :
+</p>
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
+<tr class="tableheader"><td> Host </td>
+    <td> Czas do </td>
+    <td> Użytkownik </td>
+    <td> Polecenie </td></tr>
+\$strCmd
+</table>
+EOF
+
+# --------------------------------
+$Lang{Backup_PC__Log_File__file} = "BackupPC: Plik \$file";
+$Lang{Log_File__file__comment} = <<EOF;
+\${h1("Plik \$file \$comment")}
+<p>
+EOF
+# --------------------------------
+$Lang{Contents_of_log_file} = <<EOF;
+Komentarze do pliku <tt>\$file</tt>, zmodyfikowne \$mtimeStr \$comment
+EOF
+
+# --------------------------------
+$Lang{skipped__skipped_lines} = "[ pominięto \$skipped linii ]\n";
+# --------------------------------
+$Lang{_pre___Can_t_open_log_file__file} = "<pre>\nNie można otworzyc dziennika \$file\n";
+
+# --------------------------------
+$Lang{BackupPC__Log_File_History} = "BackupPC: Historia Dziennika";
+$Lang{Log_File_History__hdr} = <<EOF;
+\${h1("Histria Dziennika \$hdr")}
+<p>
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
+<tr class="tableheader"><td align="center"> Plik </td>
+    <td align="center"> Rozmiar </td>
+    <td align="center"> Czas Modyfikacji </td></tr>
+\$str
+</table>
+EOF
+
+# -------------------------------
+$Lang{Recent_Email_Summary} = <<EOF;
+\${h1("Podsumowanie Emaili (kojeność odwrotna)")}
+<p>
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
+<tr class="tableheader"><td align="center"> Adresat </td>
+    <td align="center"> Nadawca </td>
+    <td align="center"> Czas </td>
+    <td align="center"> Temat </td></tr>
+\$str
+</table>
+EOF
+
+# ------------------------------
+$Lang{Browse_backup__num_for__host} = "BackupPC: Przeglądaj \$num dla \$host";
+
+# ------------------------------
+$Lang{Restore_Options_for__host} = "BackupPC: Przywróć opcje dla \$host";
+$Lang{Restore_Options_for__host2} = <<EOF;
+\${h1("Przywróć opcje dla \$host")}
+<p>
+Zaznaczyłeś następujące pliki/katalogi z
+udziału \$share, kopia numer #\$num:
+<ul>
+\$fileListStr
+</ul>
+</p><p>
+Masz do wyboru trzy możliwośći przywrócenia tych plików/katalogów.
+Proszę wybrać jedna z nich.
+</p>
+\${h2("Opcja Pierwsza: Bezposrednie przywrócenie")}
+<p>
+EOF
+
+$Lang{Restore_Options_for__host_Option1} = <<EOF;
+Możesz zacząć przywracanie bezpośrednio na 
+\$host.
+</p><p>
+<b>Uwaga:</b> jakikolwiek plik pasujący do tych ktore masz
+zaznaczone będzie nadpisany !
+</p>
+<form action="\$MyURL" method="post" name="direct">
+<input type="hidden" name="host" value="\${EscHTML(\$host)}">
+<input type="hidden" name="num" value="\$num">
+<input type="hidden" name="type" value="3">
+\$hiddenStr
+<input type="hidden" value="\$In{action}" name="action">
+<table class="tableStnd" border="0">
+<tr>
+    <td>Przywrócenie plików na host</td>
+    <td><!--<input type="text" size="40" value="\${EscHTML(\$host)}"
+        name="hostDest">-->
+        <select name="hostDest" onChange="document.direct.shareDest.value=''">
+        \$hostDestSel
+        </select>
+        <script language="Javascript">
+        function myOpen(URL) {
+               window.open(URL,'','width=500,height=400');
+        }
+        </script>
+        <!--<a href="javascript:myOpen('\$MyURL?action=findShares&host='+document.direct.hostDest.options.value)">Szukaj dostępnych udziałów (NIE ZAIMPLEMENTOWANE)</a>--></td>
+</tr><tr>
+    <td>Przywrócenie plików do udziału</td>
+    <td><input type="text" size="40" value="\${EscHTML(\$share)}"
+        name="shareDest"></td>
+</tr><tr>
+    <td>Przywróć pliki poniżej<br>(podobne do udziału)</td>
+    <td valign="top"><input type="text" size="40" maxlength="256"
+       value="\${EscHTML(\$pathHdr)}" name="pathHdr"></td>
+</tr><tr>
+    <td><input type="submit" value="Start Restore" name="ignore"></td>
+</table>
+</form>
+EOF
+
+$Lang{Restore_Options_for__host_Option1_disabled} = <<EOF;
+Bezpośrednie przywrócenie na host zostało wyłączone \${EscHTML(\$hostDest)}.
+Proszę wybrac inna opcję przywracania.
+EOF
+
+# ------------------------------
+$Lang{Option_2__Download_Zip_archive} = <<EOF;
+<p>
+\${h2("Opcja Druga: Ściągnij Archiwum Zip")}
+<p>
+Możesz ściągnąc archiwum Zip zawieające wszystkie pliki/katalogi które
+zaznaczyłeś.  Możesz wtedy użyć lokalnej aplikacji, Takiej jak 7Zip,
+do przeglądania czy wypakowania danych.
+</p><p>
+<b>Uwaga:</b> zależnie od wybranych plików/katalogów ,
+to archiwum może być bardzo duże.  Może zajać dużo czasu do
+stworzenia i przesłania go, także będziesz potrzebował odpowiedniej ilości miejsca na dysku
+do przechowania.
+</p>
+<form action="\$MyURL" method="post">
+<input type="hidden" name="host" value="\${EscHTML(\$host)}">
+<input type="hidden" name="num" value="\$num">
+<input type="hidden" name="type" value="2">
+\$hiddenStr
+<input type="hidden" value="\$In{action}" name="action">
+<input type="checkbox" value="1" name="relative" checked> Stworzyć archiwum powiązane
+z \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)}
+(inaczej bedzie zawierac pełne scieżki do plików).
+<br>
+Kompresja (0=off, 1=fast,...,9=best)
+<input type="text" size="6" value="5" name="compressLevel">
+<br>
+<input type="submit" value="Sciągnij plik Zip" name="ignore">
+</form>
+EOF
+
+# ------------------------------
+
+$Lang{Option_2__Download_Zip_archive2} = <<EOF;
+<p>
+\${h2("Opcja Druga: Ściągnij Archiwum Zip")}
+<p>
+Archive::Zip nie jest zainstalowane więc nie możesz ściągnąć archiwum Zip.
+Proszę poprosić swojego Administratora aby zainstalował Archive::Zip z
+<a href="http://www.cpan.org">www.cpan.org</a>.
+</p>
+EOF
+
+
+# ------------------------------
+$Lang{Option_3__Download_Zip_archive} = <<EOF;
+\${h2("Opcja trzecia : Ściągnij archiwum Tar")}
+<p>
+Możesz ściągnąc archiwum Tar zawieające wszystkie pliki/katalogi które
+zaznaczyłeś.  Możesz wtedy użyć lokalnej aplikacji, Takiej jak 7Zip,
+do przeglądania czy wypakowania danych.
+</p><p>
+<b>Uwaga:</b> zależnie od wybranych plików/katalogów ,
+to archiwum może być bardzo duże.  Może zajać dużo czasu do
+stworzenia i przesłania go, także będziesz potrzebował odpowiedniej ilości miejsca na dysku
+do przechowania.
+</p>
+<form action="\$MyURL" method="post">
+<input type="hidden" name="host" value="\${EscHTML(\$host)}">
+<input type="hidden" name="num" value="\$num">
+<input type="hidden" name="type" value="1">
+\$hiddenStr
+<input type="hidden" value="\$In{action}" name="action">
+<input type="checkbox" value="1" name="relative" checked> Stworzyć archiwum powiązane
+z\${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)}
+(inaczej bedzie zawierac pełne scieżki do plików).
+<br>
+<input type="submit" value="Sciągnij plik Tar" name="ignore">
+</form>
+EOF
+
+
+# ------------------------------
+$Lang{Restore_Confirm_on__host} = "BackupPC: Potwiedź przywrócenie na \$host";
+
+$Lang{Are_you_sure} = <<EOF;
+\${h1("Czy jesteś pewien ?")}
+<p>
+Zaczynasz przywracanie bezpośrednio na maszynę \$In{hostDest}.
+Następujące pliki zostaną przywrócene na udział \$In{shareDest}, z
+kopii numer \$num:
+<p>
+<table class="tableStnd" border>
+<tr class="tableheader"><td>Orginalny plik/katalog</td><td>Będzie przywrócony na</td></tr>
+\$fileListStr
+</table>
+
+<form name="RestoreForm" action="\$MyURL" method="post">
+<input type="hidden" name="host" value="\${EscHTML(\$host)}">
+<input type="hidden" name="hostDest" value="\${EscHTML(\$In{hostDest})}">
+<input type="hidden" name="shareDest" value="\${EscHTML(\$In{shareDest})}">
+<input type="hidden" name="pathHdr" value="\${EscHTML(\$In{pathHdr})}">
+<input type="hidden" name="num" value="\$num">
+<input type="hidden" name="type" value="4">
+<input type="hidden" name="action" value="">
+\$hiddenStr
+Czy napewno chcesz tego ?
+<input type="button" value="\$Lang->{Restore}"
+ onClick="document.RestoreForm.action.value='Restore';
+          document.RestoreForm.submit();">
+<input type="submit" value="No" name="ignore">
+</form>
+EOF
+
+
+# --------------------------
+$Lang{Restore_Requested_on__hostDest} = "BackupPC: Rządanie przywrócenie na \$hostDest";
+$Lang{Reply_from_server_was___reply} = <<EOF;
+\${h1(\$str)}
+<p>
+Odpowiedź serwera : \$reply
+<p>
+Wróć <a href="\$MyURL?host=\$hostDest">stronę domową \$hostDest</a>.
+EOF
+
+$Lang{BackupPC_Archive_Reply_from_server} = <<EOF;
+\${h1(\$str)}
+<p>
+Odpowiedź serwera : \$reply
+EOF
+
+
+# -------------------------
+$Lang{Host__host_Backup_Summary} = "BackupPC: Podsumowanie kopii bezpieczeństwa hosta \$host";
+
+$Lang{Host__host_Backup_Summary2} = <<EOF;
+\${h1("Podsumowanie kopii bezpieczeństwa hosta \$host")}
+<p>
+\$warnStr
+<ul>
+\$statusStr
+</ul>
+</p>
+\${h2("Działania użytwkonika")}
+<p>
+<form name="StartStopForm" action="\$MyURL" method="get">
+<input type="hidden" name="host"   value="\$host">
+<input type="hidden" name="action" value="">
+\$startIncrStr
+<input type="button" value="\$Lang->{Start_Full_Backup}"
+ onClick="document.StartStopForm.action.value='Start_Full_Backup';
+          document.StartStopForm.submit();">
+<input type="button" value="\$Lang->{Stop_Dequeue_Backup}"
+ onClick="document.StartStopForm.action.value='Stop_Dequeue_Backup';
+          document.StartStopForm.submit();">
+</form>
+</p>
+\${h2("Podsumowanie Kopii Bezpieczeństwa")}
+<p>
+Kliknij na numer kopii aby przeglądać i przywracać wybrane pliki/katalogi.
+</p>
+<table class="tableStnd" border cellspacing="1" cellpadding="3">
+<tr class="tableheader"><td align="center"> Backup# </td>
+    <td align="center"> Typ </td>
+    <td align="center"> Wypełniony </td>
+    <td align="center"> Poziom </td>
+    <td align="center"> Początek </td>
+    <td align="center"> Czas trwania w min. </td>
+    <td align="center"> Wiek/dni </td>
+    <td align="center"> Ścieżka serwera kopii </td>
+</tr>
+\$str
+</table>
+<p>
+
+\$restoreStr
+</p>
+<br><br>
+\${h2("Podsumowanie błędów Xfer")}
+<br><br>
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
+<tr class="tableheader"><td align="center"> Backup# </td>
+    <td align="center"> Typ </td>
+    <td align="center"> Widok </td>
+    <td align="center"> #Xfer  błędó</td>
+    <td align="center"> #bad plików </td>
+    <td align="center"> #bad udziałów </td>
+    <td align="center"> #tar błędów </td>
+</tr>
+\$errStr
+</table>
+<br><br>
+
+\${h2("Ilość/wielkość użytych ponownie plików")}
+<p>
+Istniejące pliki to te będące aktualnie w puli; nowe pliki to te dodane
+do puli.
+Puste pliki i błędy SMB nie są liczone.
+</p>
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
+<tr class="tableheader"><td colspan="2" bgcolor="#ffffff"></td>
+    <td align="center" colspan="3"> Łącznie </td>
+    <td align="center" colspan="2"> Istniejących plików </td>
+    <td align="center" colspan="2"> Nowych plików </td>
+</tr>
+<tr class="tableheader">
+    <td align="center"> Kopia nr </td>
+    <td align="center"> Typ </td>
+    <td align="center"> Plików </td>
+    <td align="center"> Rozmiar/MB </td>
+    <td align="center"> MB/sek </td>
+    <td align="center"> Plików </td>
+    <td align="center"> Rozmiar/MB </td>
+    <td align="center"> Plików </td>
+    <td align="center"> Rozmiar/MB </td>
+</tr>
+\$sizeStr
+</table>
+<br><br>
+
+\${h2("Podsumowanie Kompresji")}
+<p>
+Wydajność kompresji dla plików będących w puli oraz tych świeżo skompresowanych.
+</p>
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
+<tr class="tableheader"><td colspan="3" bgcolor="#ffffff"></td>
+    <td align="center" colspan="3"> Istniejące Pliki </td>
+    <td align="center" colspan="3"> Nowe Pliki </td>
+</tr>
+<tr class="tableheader"><td align="center"> Kopia nr </td>
+    <td align="center"> Typ </td>
+    <td align="center"> Poziom Kompresji </td>
+    <td align="center"> Rozmiar/MB </td>
+    <td align="center"> Kompresja/MB </td>
+    <td align="center"> Kompresja </td>
+    <td align="center"> Rozmiar/MB </td>
+    <td align="center"> Kompresja/MB </td>
+    <td align="center"> Kompresja </td>
+</tr>
+\$compStr
+</table>
+<br><br>
+EOF
+
+$Lang{Host__host_Archive_Summary} = "BackupPC: Podsumowanie Archiwizacji hosta \$host";
+$Lang{Host__host_Archive_Summary2} = <<EOF;
+\${h1("Podsumowanie Archiwizacji hosta \$host")}
+<p>
+\$warnStr
+<ul>
+\$statusStr
+</ul>
+
+\${h2("Działania Użytkownika")}
+<p>
+<form name="StartStopForm" action="\$MyURL" method="get">
+<input type="hidden" name="archivehost" value="\$host">
+<input type="hidden" name="host" value="\$host">
+<input type="hidden" name="action" value="">
+<input type="button" value="\$Lang->{Start_Archive}"
+ onClick="document.StartStopForm.action.value='Start_Archive';
+          document.StartStopForm.submit();">
+<input type="button" value="\$Lang->{Stop_Dequeue_Archive}"
+ onClick="document.StartStopForm.action.value='Stop_Dequeue_Archive';
+          document.StartStopForm.submit();">
+</form>
+
+\$ArchiveStr
+
+EOF
+
+# -------------------------
+$Lang{Error} = "BackupPC: Błąd";
+$Lang{Error____head} = <<EOF;
+\${h1("Błąd: \$head")}
+<p>\$mesg</p>
+EOF
+
+# -------------------------
+$Lang{NavSectionTitle_} = "Serwer";
+
+# -------------------------
+$Lang{Backup_browse_for__host} = <<EOF;
+\${h1("Przeglądanie kopii dla \$host")}
+
+<script language="javascript" type="text/javascript">
+<!--
+
+    function checkAll(location)
+    {
+      for (var i=0;i<document.form1.elements.length;i++)
+      {
+        var e = document.form1.elements[i];
+        if ((e.checked || !e.checked) && e.name != \'all\') {
+            if (eval("document.form1."+location+".checked")) {
+               e.checked = true;
+            } else {
+               e.checked = false;
+            }
+        }
+      }
+    }
+    
+    function toggleThis(checkbox)
+    {
+       var cb = eval("document.form1."+checkbox);
+       cb.checked = !cb.checked;       
+    }
+
+//-->
+</script>
+
+<form name="form0" method="post" action="\$MyURL">
+<input type="hidden" name="num" value="\$num">
+<input type="hidden" name="host" value="\$host">
+<input type="hidden" name="share" value="\${EscHTML(\$share)}">
+<input type="hidden" name="action" value="browse">
+<ul>
+<li> Przegladasz kopie nr #\$num, która zaczeła się około \$backupTime
+        (\$backupAge dni temu),
+\$filledBackup
+<li> Wpisz adres: <input type="text" name="dir" size="50" maxlength="4096" value="\${EscHTML(\$dir)}"> <input type="submit" value="\$Lang->{Go}" name="Submit">
+<li> Wpisz adres aby przejść do niego,
+<li> Kliknij plik aby go przywrócić,
+<li> Możesz zobaczyć kopie <a href="\$MyURL?action=dirHistory&host=\${EscURI(\$host)}&share=\$shareURI&dir=\$pathURI">history</a> obecnego adresu.
+</ul>
+</form>
+
+\${h2("Zawartość \${EscHTML(\$dirDisplay)}")}
+<form name="form1" method="post" action="\$MyURL">
+<input type="hidden" name="num" value="\$num">
+<input type="hidden" name="host" value="\$host">
+<input type="hidden" name="share" value="\${EscHTML(\$share)}">
+<input type="hidden" name="fcbMax" value="\$checkBoxCnt">
+<input type="hidden" name="action" value="Restore">
+<br>
+<table width="100%">
+<tr><td valign="top" width="30%">
+    <table align="left" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
+    \$dirStr
+    </table>
+</td><td width="3%">
+</td><td valign="top">
+    <br>
+        <table border width="100%" align="left" cellpadding="3" cellspacing="1">
+        \$fileHeader
+        \$topCheckAll
+        \$fileStr
+        \$checkAll
+        </table>
+    </td></tr></table>
+<br>
+<!--
+This is now in the checkAll row
+<input type="submit" name="Submit" value="Restore selected files">
+-->
+</form>
+EOF
+
+# ------------------------------
+$Lang{DirHistory_backup_for__host} = "BackupPC: Histria kopii dla \$host";
+
+#
+# These two strings are used to build the links for directories and
+# file versions.  Files are appended with a version number.
+#
+$Lang{DirHistory_dirLink}  = "adres";
+$Lang{DirHistory_fileLink} = "v";
+
+$Lang{DirHistory_for__host} = <<EOF;
+\${h1("Histria kopii dla \$host")}
+<p>
+Przedstawienie każdej unikalnej wersji każdego pliku we wszystkich kopiach:
+<ul>
+<li> Kliknij na numerze kopii aby przejść do przegladania tejże kopii,
+<li> KLiknij na adres (\$Lang->{DirHistory_dirLink}) aby przejść do niego,
+<li> Kliknij na wersje pliku (\$Lang->{DirHistory_fileLink}0,
+     \$Lang->{DirHistory_fileLink}1, ...) aby śćiagnać ten plik,
+<li> Pliki z tą samą zawartością pomiędzy różnymi kopiami mają ten sam
+     numer wersji,
+<li> Pliki lub adresy ,które nie są dostępne w określonej kopii
+     nie są zaznaczone.
+<li> Pliki pokazane z tą samą wersją mogą mieć inny atrybut.
+     Wybierz numer kopii aby zobaczyć atrybuty plików.
+</ul>
+
+\${h2("Historia \${EscHTML(\$dirDisplay)}")}
+
+<br>
+<table border cellspacing="2" cellpadding="3">
+<tr class="fviewheader"><td>Numer kopii</td>\$backupNumStr</tr>
+<tr class="fviewheader"><td>Czas trwania kopii</td>\$backupTimeStr</tr>
+\$fileStr
+</table>
+EOF
+
+# ------------------------------
+$Lang{Restore___num_details_for__host} = "BackupPC: Przywróć #\$num detali dla \$host";
+
+$Lang{Restore___num_details_for__host2} = <<EOF;
+\${h1("Przywróć #\$num detali dla \$host")}
+<p>
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="90%">
+<tr><td class="tableheader"> Numer </td><td class="border"> \$Restores[\$i]{num} </td></tr>
+<tr><td class="tableheader"> Żądane przez </td><td class="border"> \$RestoreReq{user} </td></tr>
+<tr><td class="tableheader"> Czas żądania </td><td class="border"> \$reqTime </td></tr>
+<tr><td class="tableheader"> Wynik </td><td class="border"> \$Restores[\$i]{result} </td></tr>
+<tr><td class="tableheader"> Wiadomość błędu </td><td class="border"> \$Restores[\$i]{errorMsg} </td></tr>
+<tr><td class="tableheader"> Host źródłowy </td><td class="border"> \$RestoreReq{hostSrc} </td></tr>
+<tr><td class="tableheader"> Źródło kopii nr </td><td class="border"> \$RestoreReq{num} </td></tr>
+<tr><td class="tableheader"> Źródło udziału </td><td class="border"> \$RestoreReq{shareSrc} </td></tr>
+<tr><td class="tableheader"> Host docelowy </td><td class="border"> \$RestoreReq{hostDest} </td></tr>
+<tr><td class="tableheader"> Udział docelowy </td><td class="border"> \$RestoreReq{shareDest} </td></tr>
+<tr><td class="tableheader"> Czas rozpoczęcia </td><td class="border"> \$startTime </td></tr>
+<tr><td class="tableheader"> Czas trwania </td><td class="border"> \$duration min </td></tr>
+<tr><td class="tableheader"> Ilość plików </td><td class="border"> \$Restores[\$i]{nFiles} </td></tr>
+<tr><td class="tableheader"> Całkowity rozmiar </td><td class="border"> \${MB} MB </td></tr>
+<tr><td class="tableheader"> Szybkość transferu </td><td class="border"> \$MBperSec MB/sec </td></tr>
+<tr><td class="tableheader"> Błędy TarCreate </td><td class="border"> \$Restores[\$i]{tarCreateErrs} </td></tr>
+<tr><td class="tableheader"> Błędy Xfer </td><td class="border"> \$Restores[\$i]{xferErrs} </td></tr>
+<tr><td class="tableheader"> Plik dziennika Xfer </td><td class="border">
+<a href="\$MyURL?action=view&type=RestoreLOG&num=\$Restores[\$i]{num}&host=\$host">Widok</a>,
+<a href="\$MyURL?action=view&type=RestoreErr&num=\$Restores[\$i]{num}&host=\$host">Błędy</a>
+</tr></tr>
+</table>
+</p>
+\${h1("Lista plików/katalogów")}
+<p>
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="100%">
+<tr class="tableheader"><td>Orginalny plik/katalog</td><td>Przywrócony na</td></tr>
+\$fileListStr
+</table>
+EOF
+
+# ------------------------------
+$Lang{Archive___num_details_for__host} = "BackupPC: Detale Archiwum nr #\$num dla \$host";
+
+$Lang{Archive___num_details_for__host2 } = <<EOF;
+\${h1("Detale Archiwum nr #\$num dla \$host")}
+<p>
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
+<tr><td class="tableheader"> Numer </td><td class="border"> \$Archives[\$i]{num} </td></tr>
+<tr><td class="tableheader"> Żądane przez </td><td class="border"> \$ArchiveReq{user} </td></tr>
+<tr><td class="tableheader"> Czas żądania </td><td class="border"> \$reqTime </td></tr>
+<tr><td class="tableheader"> Wynik </td><td class="border"> \$Archives[\$i]{result} </td></tr>
+<tr><td class="tableheader"> Wiadomość błędu </td><td class="border"> \$Archives[\$i]{errorMsg} </td></tr>
+<tr><td class="tableheader"> Czas rozpoczęcia </td><td class="border"> \$startTime </td></tr>
+<tr><td class="tableheader"> Czas trwania </td><td class="border"> \$duration min </td></tr>
+<tr><td class="tableheader"> Plik dziennika Xfer </td><td class="border">
+<a href="\$MyURL?action=view&type=ArchiveLOG&num=\$Archives[\$i]{num}&host=\$host">Widok</a>,
+<a href="\$MyURL?action=view&type=ArchiveErr&num=\$Archives[\$i]{num}&host=\$host">Błędy</a>
+</tr></tr>
+</table>
+<p>
+\${h1("Lista Hostów")}
+<p>
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
+<tr class="tableheader"><td>Host</td><td>Numer Kopii</td></tr>
+\$HostListStr
+</table>
+EOF
+
+# -----------------------------------
+$Lang{Email_Summary} = "BackupPC: Podsumowanie emailów";
+
+# -----------------------------------
+#  !! ERROR messages !!
+# -----------------------------------
+$Lang{BackupPC__Lib__new_failed__check_apache_error_log} = "BackupPC::Lib->new failed: sprawdź apache error_log\n";
+$Lang{Wrong_user__my_userid_is___} =  
+              "Zly użytkownik: mój userid to \$>, a nie \$uid"
+            . "(\$Conf{BackupPCUser})\n";
+# $Lang{Only_privileged_users_can_view_PC_summaries} = "Tylko uprzywilejowani użytkownicy mogą przegladać podsumowania.";
+$Lang{Only_privileged_users_can_stop_or_start_backups} = 
+                  "Tylko uprzywilejowani użytkownicy mogą dokonywać kopii na"
+               . " \${EscHTML(\$host)}.";
+$Lang{Invalid_number__num} = "Zły numer \$num";
+$Lang{Unable_to_open__file__configuration_problem} = "Niemozna otworzyć \$file: problem z konfiguracja ?";
+$Lang{Only_privileged_users_can_view_log_or_config_files} = "Tylko uprzywilejowani użytkownicy mogą przeglądac logi/pliki konf.";
+$Lang{Only_privileged_users_can_view_log_files} = "Tylko uprzywilejowani użytkownicy mogą przeglądać logi.";
+$Lang{Only_privileged_users_can_view_email_summaries} = "Tylko uprzywilejowani użytkownicy mogą przeglądać podsumowania emaili.";
+$Lang{Only_privileged_users_can_browse_backup_files} = "Tylko uprzywilejowani użytkownicy mogą przeglądać pliki kopii"
+                . " for host \${EscHTML(\$In{host})}.";
+$Lang{Empty_host_name} = "Pusta nazwa hosta.";
+$Lang{Directory___EscHTML} = "Adres \${EscHTML(\"\$TopDir/pc/\$host/\$num\")}"
+                   . " jest pusty";
+$Lang{Can_t_browse_bad_directory_name2} = "Nie można przeglądać - zła nazwa"
+                   . " \${EscHTML(\$relDir)}";
+$Lang{Only_privileged_users_can_restore_backup_files} = "Tylko uprzywilejowani użytkownicy mogą przywracać pliki kopii"
+                . " dla hosta \${EscHTML(\$In{host})}.";
+$Lang{Bad_host_name} = "Zła nazwa hosta \${EscHTML(\$host)}";
+$Lang{You_haven_t_selected_any_files__please_go_Back_to} = "Nie zaznaczyłeś zadnych plików; proszę cofnąć sie do"
+                . " zaznaczanych plików.";
+$Lang{You_haven_t_selected_any_hosts} = "Nie zaznaczyłeś zadnego hosta; proszę cofnij sie"
+                . " i zaznacz odpowiednie hosty.";
+$Lang{Nice_try__but_you_can_t_put} = "Nieźle , ale nie możesz umieścic \'..\' w nazwie pliku";
+$Lang{Host__doesn_t_exist} = "Host \${EscHTML(\$In{hostDest})} nie istnieje";
+$Lang{You_don_t_have_permission_to_restore_onto_host} = "Nie masz uprawnień do  przywracania danych na host"
+                   . " \${EscHTML(\$In{hostDest})}";
+$Lang{Can_t_open_create__openPath} = "Nie można otworzyć/stworzyć"
+               . "\${EscHTML(\"\$openPath\")}";
+$Lang{Only_privileged_users_can_restore_backup_files2} = "Tylko uprzywilejowani użytkownicy mogą przywracać pliki kopii"
+                . " dla hosta \${EscHTML(\$host)}.";
+$Lang{Empty_host_name} = "Pusta nazwa hosta";
+$Lang{Unknown_host_or_user} = "Nieznany host albo uzytwkonik \${EscHTML(\$host)}";
+$Lang{Only_privileged_users_can_view_information_about} = "Tylko uprzywilejowani użytkownicy mogą przeglądać informacje o"
+                . " host \${EscHTML(\$host)}." ;
+$Lang{Only_privileged_users_can_view_archive_information} = "Tylko uprzywilejowani użytkownicy mogą przeglądać informacje o archiwum.";
+$Lang{Only_privileged_users_can_view_restore_information} = "Tylko uprzywilejowani użytkownicy mogą przeglądać przywracać informacje.";
+$Lang{Restore_number__num_for_host__does_not_exist} = "Punkt przywracania nr \$num dla hosta \${EscHTML(\$host)} nie"
+               . " istnieje.";
+$Lang{Archive_number__num_for_host__does_not_exist} = "Archiwum numer \$num dla hosta \${EscHTML(\$host)} nie"
+                . " istnieje.";
+$Lang{Can_t_find_IP_address_for} = "Nie moge znaleść adresu IP dla \${EscHTML(\$host)}";
+$Lang{host_is_a_DHCP_host} = <<EOF;
+\$host jest hostem DHCP, i dlatego nie znam jego IP.  Sprawdziłem
+nazwe netbios \$ENV{REMOTE_ADDR}\$tryIP, i znalazlem ze ta maszyna 
+to nie \$host.
+<p>
+Dopuki  \$host jest adresem DHCP, możesz 
+rozpocząć to źądanie bezpośrednio z tejże maszyny.
+EOF
+
+# ------------------------------------
+# !! Server Mesg !!
+# ------------------------------------
+
+$Lang{Backup_requested_on_DHCP__host} = "Kopia zaźądana na hoscie DHCP \$host (\$In{hostIP}) przez"
+                                     . " \$User z \$ENV{REMOTE_ADDR}";
+$Lang{Backup_requested_on__host_by__User} = "Kopia zażądana na  \$host przez \$User";
+$Lang{Backup_stopped_dequeued_on__host_by__User} = "Kopia przerwana na \$host przez \$User";
+$Lang{Restore_requested_to_host__hostDest__backup___num} = "Przywrócenie na host \$hostDest, kopii nr #\$num,"
+            . " przez \$User z \$ENV{REMOTE_ADDR}";
+$Lang{Archive_requested} = "Archiwum żądane przez \$User z \$ENV{REMOTE_ADDR}";
+
+# -------------------------------------------------
+# ------- Stuff that was forgotten ----------------
+# -------------------------------------------------
+
+$Lang{Status} = "Status";
+$Lang{PC_Summary} = "Podsumowanie hostów";
+$Lang{LOG_file} = "Plik Log";
+$Lang{LOG_files} = "Pliki Log";
+$Lang{Old_LOGs} = "Stare Logi";
+$Lang{Email_summary} = "Podsumowanie emaili";
+$Lang{Config_file} = "Plik Konfiguracyjny";
+# $Lang{Hosts_file} = "Plik Hostów";
+$Lang{Current_queues} = "Aktualne kolejki";
+$Lang{Documentation} = "Dokumentacja";
+
+#$Lang{Host_or_User_name} = "<small>Host lub nazwa użytkownika:</small>";
+$Lang{Go} = "Idź";
+$Lang{Hosts} = "Hosty";
+$Lang{Select_a_host} = "Wybierz host...";
+
+$Lang{There_have_been_no_archives} = "<h2> Nie było żadnej archiwizacji </h2>\n";
+$Lang{This_PC_has_never_been_backed_up} = "<h2> Ten PC nie byl nikty backupowany!! </h2>\n";
+$Lang{This_PC_is_used_by} = "<li>Ten PC jest używany przez \${UserLink(\$user)}";
+
+$Lang{Extracting_only_Errors} = "(Błędy wypakowywania)";
+$Lang{XferLOG} = "XferLOG";
+$Lang{Errors}  = "Błędy";
+
+# ------------
+$Lang{Last_email_sent_to__was_at___subject} = <<EOF;
+<li>Ostatni email wysłany do \${UserLink(\$user)} byl o \$mailTime, subject "\$subj".
+EOF
+# ------------
+$Lang{The_command_cmd_is_currently_running_for_started} = <<EOF;
+<li>Polecenie \$cmd jest aktualnie wykonywane dla \$host, rozpoczęte o \$startTime.
+EOF
+
+# -----------
+$Lang{Host_host_is_queued_on_the_background_queue_will_be_backed_up_soon} = <<EOF;
+<li>Host \$host jest zakolejkowany (kopia zostanie wykonana niedługo).
+EOF
+
+# ----------
+$Lang{Host_host_is_queued_on_the_user_queue__will_be_backed_up_soon} = <<EOF;
+<li>Host \$host jest zakolejkowany w kolejce użytkownika (kopia zostanie wykonana niedługo).
+EOF
+
+# ---------
+$Lang{A_command_for_host_is_on_the_command_queue_will_run_soon} = <<EOF;
+<li>Polecenie dla \$host jest w kolejce poleceń (ruszy niedługo).
+EOF
+
+# --------
+$Lang{Last_status_is_state_StatusHost_state_reason_as_of_startTime} = <<EOF;
+<li>Ostatni status \"\$Lang->{\$StatusHost{state}}\"\$reason od \$startTime.
+EOF
+
+# --------
+$Lang{Last_error_is____EscHTML_StatusHost_error} = <<EOF;
+<li>Ostatni błąd to \"\${EscHTML(\$StatusHost{error})}\".
+EOF
+
+# ------
+$Lang{Pings_to_host_have_failed_StatusHost_deadCnt__consecutive_times} = <<EOF;
+<li>Pingowanie \$host niepowidło się \$StatusHost{deadCnt} razy.
+EOF
+
+# -----
+$Lang{Prior_to_that__pings} = "Poprzednio, ";
+
+# -----
+$Lang{priorStr_to_host_have_succeeded_StatusHostaliveCnt_consecutive_times} = <<EOF;
+<li>\$priorStr pingów do \$host zakończyło się sukcesem \$StatusHost{aliveCnt}
+        razy.
+EOF
+
+$Lang{Because__host_has_been_on_the_network_at_least__Conf_BlackoutGoodCnt_consecutive_times___} = <<EOF;
+<li>Ponieważ \$host jest w sieci od co najmniej \$Conf{BlackoutGoodCnt}
+razy, nie zostanie utworzona kopia bezpieczeństwa \$blackoutStr.
+EOF
+
+$Lang{__time0_to__time1_on__days} = "\$t0 to \$t1 on \$days";
+
+$Lang{Backups_are_deferred_for_hours_hours_change_this_number} = <<EOF;
+<li>Kopie zostały odłożone na \$hours godzin
+(<a href=\"\$MyURL?action=Stop_Dequeue_Backup&host=\$host\">zmień ten numer</a>).
+EOF
+
+$Lang{tryIP} = " i \$StatusHost{dhcpHostIP}";
+
+# $Lang{Host_Inhost} = "Host \$In{host}";
+
+$Lang{checkAll} = <<EOF;
+<tr><td class="fviewborder">
+<input type="checkbox" name="allFiles" onClick="return checkAll('allFiles');">&nbsp;Select all
+</td><td colspan="5" align="center" class="fviewborder">
+<input type="submit" name="Submit" value="Restore selected files">
+</td></tr>
+EOF
+
+$Lang{checkAllHosts} = <<EOF;
+<tr><td class="fviewborder">
+<input type="checkbox" name="allFiles" onClick="return checkAll('allFiles');">&nbsp;Select all
+</td><td colspan="2" align="center" class="fviewborder">
+<input type="submit" name="Submit" value="Archive selected hosts">
+</td></tr>
+EOF
+
+$Lang{fileHeader} = <<EOF;
+    <tr class="fviewheader"><td align=center> Nazwa</td>
+       <td align="center"> Typ</td>
+       <td align="center"> Tryb</td>
+       <td align="center"> nr#</td>
+       <td align="center"> Rozmiar</td>
+       <td align="center"> Data modyfikacji</td>
+    </tr>
+EOF
+
+$Lang{Home} = "Dom";
+$Lang{Browse} = "przeglądaj kopie";
+$Lang{Last_bad_XferLOG} = "Ostatni zły XferLOG";
+$Lang{Last_bad_XferLOG_errors_only} = "Ostatni zły XferLOG (tylko błedy)";
+
+$Lang{This_display_is_merged_with_backup} = <<EOF;
+<li> ten display zostal złończony z kopią nr #\$numF.
+EOF
+
+$Lang{Visit_this_directory_in_backup} = <<EOF;
+<li> Wybierz kopię którą chcesz przeglądać: <select onChange="window.location=this.value">\$otherDirs </select>
+EOF
+
+$Lang{Restore_Summary} = <<EOF;
+\${h2("Podsumowanie przywracania")}
+<p>
+Kliknij na numer przywrócenia dla informacji.
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
+<tr class="tableheader"><td align="center"> Nr przywrócenia# </td>
+    <td align="center"> Wynik </td>
+    <td align="right"> Data początku</td>
+    <td align="right"> Trwanie/min</td>
+    <td align="right"> Ilość plików </td>
+    <td align="right"> MB </td>
+    <td align="right"> Ilość błędów tar  </td>
+    <td align="right"> Ilość błędów xferErrs </td>
+</tr>
+\$restoreStr
+</table>
+<p>
+EOF
+
+$Lang{Archive_Summary} = <<EOF;
+\${h2("Podsumowanie archiwum")}
+<p>
+Kliknij na numerze archiwum dla informacji
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
+<tr class="tableheader"><td align="center"> Nr Archiwum </td>
+    <td align="center"> wynik </td>
+    <td align="right"> Data początku</td>
+    <td align="right"> Trwanie/min</td>
+</tr>
+\$ArchiveStr
+</table>
+<p>
+EOF
+
+$Lang{BackupPC__Documentation} = "BackupPC: Dokumentacja";
+
+$Lang{No} = "nie";
+$Lang{Yes} = "tak";
+
+$Lang{The_directory_is_empty} = <<EOF;
+<tr><td bgcolor="#ffffff">Ten katalog jest \${EscHTML(\$dirDisplay)} pusty
+</td></tr>
+EOF
+
+#$Lang{on} = "wł";
+$Lang{off} = "wył";
+
+$Lang{backupType_full}    = "pełen";
+$Lang{backupType_incr}    = "inkr";
+$Lang{backupType_partial} = "cząstwkowy";
+
+$Lang{failed} = "nieudany";
+$Lang{success} = "udany";
+$Lang{and} = "oraz";
+
+# ------
+# Hosts states and reasons
+$Lang{Status_idle} = "bezczynny";
+$Lang{Status_backup_starting} = "kopia w drodze";
+$Lang{Status_backup_in_progress} = "kopia w trakcie tworzenia";
+$Lang{Status_restore_starting} = "przywracanie w drodze";
+$Lang{Status_restore_in_progress} = "przywracanie w trakcie tworzenia";
+$Lang{Status_link_pending} = "link wtrakcie";
+$Lang{Status_link_running} = "link działa";
+
+$Lang{Reason_backup_done}    = "zrobione";
+$Lang{Reason_restore_done}   = "przywracanie zrobione";
+$Lang{Reason_archive_done}   = "archiwum zrobione";
+$Lang{Reason_nothing_to_do}  = "bezczynny";
+$Lang{Reason_backup_failed}  = "kopia nieudana";
+$Lang{Reason_restore_failed} = "przywracanie nieudane";
+$Lang{Reason_archive_failed} = "archiwizacja nieudana";
+$Lang{Reason_no_ping}        = "nie ma pingu";
+$Lang{Reason_backup_canceled_by_user}  = "kopia przerwana przez użytwkonika";
+$Lang{Reason_restore_canceled_by_user} = "przywracanie przerwane przez użytkownika";
+$Lang{Reason_archive_canceled_by_user} = "archiwum przerwane przez użytwkonika";
+$Lang{Disabled_OnlyManualBackups}  = "automat wyłączony";  
+$Lang{Disabled_AllBackupsDisabled} = "wyłączony";                  
+
+
+# ---------
+# Email messages
+
+# No backup ever
+$Lang{EMailNoBackupEverSubj} = "BackupPC: żadna kopia \$host niepowiodła się";
+$Lang{EMailNoBackupEverMesg} = <<'EOF';
+Do: $user$domain
+cc:
+Temat: $subj
+$headers
+Drogi $userName,
+
+Twoj PC ($host) nigdy nie został zabespieczony przez nasz program 
+tworzenia kopii bezpieczeństwa.  Backup powinien nastąpic automatycznie 
+kiedy twoj PC zostanie podłączony do sieci.  Powinieneś skontaktować się
+z pomocą techniczną jeżeli:
+
+  - Twój PC jest cały czas podłączony , co oznacza ze wysteuje problem z konfiguracją 
+    uniemożliwiający tworzenie kopii.
+
+  - Nie chcesz aby kopie były wykonywane i nie chcesz tych wiadomośći.
+
+Inaczej, proszę sprawdzić czy twój PC jest podłączony do sieci
+nastepnym razem kiedy bedziesz przy nim.
+
+Pozdrawiam ,
+Czarodziej BackupPC
+http://backuppc.sourceforge.net
+EOF
+
+# No recent backup
+$Lang{EMailNoBackupRecentSubj} = "BackupPC: żadnych nowych kopii na \$host";
+$Lang{EMailNoBackupRecentMesg} = <<'EOF';
+Do: $user$domain
+cc:
+Temat: $subj
+$headers
+Drogi $userName,
+
+Twój PC ($host) nie był pomyślnie zarchiwizowany przez $days dni.
+Twój PC był poprawnie zarchiwizowany $numBackups razy, od $firstTime do $days
+temu.  Wykonywanie kopii bezpieczeństwa powinno nastąpić automatycznie po 
+podłączeniu do śieci.
+
+Jeżeli twoj PC był podłączony więcej niż kilka godzin do
+sieci w czasie ostatnich $days dni powinieneś skontaktować sie z pomocą
+techniczą czemu twoje kopie nie działają.
+
+Inaczej , jeżeli jestes poza miejscem pracy nie możesz zrobić więcej niz
+skopiować samemu najważniejsze dane na odpowiedni nośnik.
+Musisz wiedzieć ze wszystkie pliki które stworzyłeś lub
+zmieniłeś przez ostatnie $days dni (włącznie z nowymi emailami
+i załącznikami) nie będą przywrócone jeżeli dysk ulegnie awarii.
+
+Pozdrowienia,
+Czarodziej BackupPC
+http://backuppc.sourceforge.net
+EOF
+
+# Old Outlook files
+$Lang{EMailOutlookBackupSubj} = "BackupPC: Outlook files on \$host need to be backed up";
+$Lang{EMailOutlookBackupMesg} = <<'EOF';
+To: $user$domain
+cc:
+Subject: $subj
+$headers
+Dear $userName,
+
+The Outlook files on your PC have $howLong.
+These files contain all your email, attachments, contact and calendar           
+information.  Your PC has been correctly backed up $numBackups times from
+$firstTime to $lastTime days ago.  However, Outlook locks all its files when
+it is running, preventing these files from being backed up.
+
+It is recommended you backup the Outlook files when you are connected
+to the network by exiting Outlook and all other applications, and,
+using just your browser, go to this link:
+
+    $CgiURL?host=$host               
+
+Select "Start Incr Backup" twice to start a new incremental backup.
+You can select "Return to $host page" and then hit "reload" to check
+the status of the backup.  It should take just a few minutes to
+complete.
+
+Regards,
+BackupPC Genie
+http://backuppc.sourceforge.net
+EOF
+
+$Lang{howLong_not_been_backed_up} = "utworzenie kopii nie zostało zakonczone pomyślnie";
+$Lang{howLong_not_been_backed_up_for_days_days} = "Kopia nie była tworzona od \$days dni";
+
+#######################################################################
+# RSS strings
+#######################################################################
+$Lang{RSS_Doc_Title}       = "Serwer BackupPC";
+$Lang{RSS_Doc_Description} = "Kanał RSS dla BackupPC";
+$Lang{RSS_Host_Summary}    = <<EOF;
+Pełna Ilość: \$fullCnt;
+Całkowita liczba/dni: \$fullAge;
+Calkowity rozmiar/GB: \$fullSize;
+Prędkość MB/sek: \$fullRate;
+Ilość Inkr: \$incrCnt;
+Inkr wiek/Dni: \$incrAge;
+Status: \$host_state;
+Ostatnia próba: \$host_last_attempt;
+EOF
+
+#######################################################################
+# Configuration editor strings
+#######################################################################
+
+$Lang{Only_privileged_users_can_edit_config_files} = "Tylko uprzywilejowani uzytwkonicy mogą edytować pliki konfiguracyjne.";
+$Lang{CfgEdit_Edit_Config} = "Edytuj konfigurację";
+$Lang{CfgEdit_Edit_Hosts}  = "Edytuj Hosty";
+
+$Lang{CfgEdit_Title_Server} = "Serwer";
+$Lang{CfgEdit_Title_General_Parameters} = "Parametry Ogólne";
+$Lang{CfgEdit_Title_Wakeup_Schedule} = "Plan pobudek";
+$Lang{CfgEdit_Title_Concurrent_Jobs} = "Prace Równoległe";
+$Lang{CfgEdit_Title_Pool_Filesystem_Limits} = "Limity puli systemu plików";
+$Lang{CfgEdit_Title_Other_Parameters} = "Inne Parametry";
+$Lang{CfgEdit_Title_Remote_Apache_Settings} = "Zdalne ustawienia Apache";
+$Lang{CfgEdit_Title_Program_Paths} = "Ścieżki Programów";
+$Lang{CfgEdit_Title_Install_Paths} = "Ścieżki Instalacji";
+$Lang{CfgEdit_Title_Email} = "Email";
+$Lang{CfgEdit_Title_Email_settings} = "Ustawienia Email";
+$Lang{CfgEdit_Title_Email_User_Messages} = "Wiadomości Email do użytwkoników";
+$Lang{CfgEdit_Title_CGI} = "CGI";
+$Lang{CfgEdit_Title_Admin_Privileges} = "Prawa dostępu Admina";
+$Lang{CfgEdit_Title_Page_Rendering} = "Tworzenie strony";
+$Lang{CfgEdit_Title_Paths} = "Ścieżki";
+$Lang{CfgEdit_Title_User_URLs} = "URLe użytkownika";
+$Lang{CfgEdit_Title_User_Config_Editing} = "Edytowanie konfiguracji użytkownika";
+$Lang{CfgEdit_Title_Xfer} = "Xfer";
+$Lang{CfgEdit_Title_Xfer_Settings} = "Ustawienia Xfer";
+$Lang{CfgEdit_Title_Smb_Settings} = "Ustawienia Smb";
+$Lang{CfgEdit_Title_Tar_Settings} = "Ustawienia Tar";
+$Lang{CfgEdit_Title_Rsync_Settings} = "Ustawienia Rsync";
+$Lang{CfgEdit_Title_Rsyncd_Settings} = "Ustawienia Rsyncd";
+$Lang{CfgEdit_Title_BackupPCd_Settings} = "Ustawienia BackupPCd";
+$Lang{CfgEdit_Title_Archive_Settings} = "Ustawienia Archiwizacji";
+$Lang{CfgEdit_Title_Include_Exclude} = "Dodaj/Usuń";
+$Lang{CfgEdit_Title_Smb_Paths_Commands} = "Ściezki/Polecenia Smb";
+$Lang{CfgEdit_Title_Tar_Paths_Commands} = "Ściezki/Polecenia Tar";
+$Lang{CfgEdit_Title_Rsync_Paths_Commands_Args} = "Ściezki/Polecenia/Argumenty Rsync";
+$Lang{CfgEdit_Title_Rsyncd_Port_Args} = "Porty/Argumenty Rsyncds";
+$Lang{CfgEdit_Title_Archive_Paths_Commands} = "Ściezki/PoleceniaArchive";
+$Lang{CfgEdit_Title_Schedule} = "Harmonogram";
+$Lang{CfgEdit_Title_Full_Backups} = "Pełne Kopie";
+$Lang{CfgEdit_Title_Incremental_Backups} = "Kopie Inkrementalne";
+$Lang{CfgEdit_Title_Blackouts} = "Przeciążenia";
+$Lang{CfgEdit_Title_Other} = "Inne";
+$Lang{CfgEdit_Title_Backup_Settings} = "Ustawienia Kopii";
+$Lang{CfgEdit_Title_Client_Lookup} = "Sprawdzenie klienta";
+$Lang{CfgEdit_Title_Other} = "Inne";
+$Lang{CfgEdit_Title_User_Commands} = "Polecenia dla użytkownika";
+$Lang{CfgEdit_Title_Hosts} = "Hosty";
+
+$Lang{CfgEdit_Hosts_Comment} = <<EOF;
+Aby dodać nowego hosta, zaznacz "Dodaj" i podaj jego nazwę.  Aby
+skopiowac ustawienia z innego hosta, wpisz nazwę hosta jako
+NOWYHOST=KOPIOWANYHOST.  Takie ustawienie spowoduje nadpisanie 
+konfiguracji dla NOWYHOST .  Możesz zrobic to także dla istniejacych
+już hostów.  Aby skasować hosta, po prostu naciśnij "Kasuj".  "Dodaj", "Skasuj",
+oraz kopia konfiguracji, nie zadziała puki nie naciśniesz "Zapisz".
+Także zadna z usuniętych kopii hostów,więc jeżeli przypadkowo skasujesz coś, 
+po prostu znowu ją dodaj.  Aby całkowicie usunąć kopie bezpieczeństwa
+danego hosta, musisz manualnie usunąć pliki z katalogu \$topDir/pc/HOST
+EOF
+
+$Lang{CfgEdit_Header_Main} = <<EOF;
+\${h1("Główny Edytor Konfiguracji")}
+EOF
+
+$Lang{CfgEdit_Header_Host} = <<EOF;
+\${h1("Edytor Konfiguracji Hosta \$host")}
+<p>
+Notka: Sprawdź opcję "Nadpisz" jeżeli chcesz zmienić wartość specificzną dla tego hosta.
+<p>
+EOF
+
+$Lang{CfgEdit_Button_Save}     = "Zapisz";
+$Lang{CfgEdit_Button_Insert}   = "Wstaw";
+$Lang{CfgEdit_Button_Delete}   = "Kasuj";
+$Lang{CfgEdit_Button_Add}      = "Dodaj";
+$Lang{CfgEdit_Button_Override} = "Nadpisz";
+$Lang{CfgEdit_Button_New_Key}  = "Nowy Klucz";
+
+$Lang{CfgEdit_Error_No_Save}
+            = "Błąd: Nie zapisano z powodu błędów";
+$Lang{CfgEdit_Error__must_be_an_integer}
+            = "Błąd: \$var musi być liczbą całkowitą";
+$Lang{CfgEdit_Error__must_be_real_valued_number}
+            = "Błąd: \$var musi być liczbą rzeczywistą";
+$Lang{CfgEdit_Error__entry__must_be_an_integer}
+            = "Błąd: \$var wpis \$k musi być liczbą całkowitą";
+$Lang{CfgEdit_Error__entry__must_be_real_valued_number}
+            = "Błąd: \$var wpis \$k musi być liczbą rzeczywistą";
+$Lang{CfgEdit_Error__must_be_executable_program}
+            = "Błąd: \$var musi być poprawną ścieżką do programu wykonywalnego";
+$Lang{CfgEdit_Error__must_be_valid_option}
+            = "Błąd: \$var musi być poprawną opcją";
+$Lang{CfgEdit_Error_Copy_host_does_not_exist}
+            = "Kopiowany host \$copyHost nie istnieje; tworzę nową nazwę \$fullHost.  Skasuj ją jeżeli to nie to co chciałeś.";
+
+$Lang{CfgEdit_Log_Copy_host_config}
+            = "Skopiowano konfigurację \$User z \$fromHost do \$host\n";
+$Lang{CfgEdit_Log_Delete_param}
+            = "\$User skasowany \$p z \$conf\n";
+$Lang{CfgEdit_Log_Add_param_value}
+            = "\$User dodany \$p do \$conf, ustawiono \$value\n";
+$Lang{CfgEdit_Log_Change_param_value}
+            = "\$User zmieniony \$p w \$conf na \$valueNew z \$valueOld\n";
+$Lang{CfgEdit_Log_Host_Delete}
+            = "\$User skasował host \$host\n";
+$Lang{CfgEdit_Log_Host_Change}
+            = "\$User z hosta \$host zmienił \$key z \$valueOld na \$valueNew\n";
+$Lang{CfgEdit_Log_Host_Add}
+            = "\$User dodał host \$host: \$value\n";
+  
+#end of lang_en.pm
index 65e4607..53c37e8 100755 (executable)
--- a/makeDist
+++ b/makeDist
@@ -113,6 +113,7 @@ my @PerlSrc = qw(
     lib/BackupPC/Lang/fr.pm
     lib/BackupPC/Lang/it.pm
     lib/BackupPC/Lang/nl.pm
+    lib/BackupPC/Lang/pl.pm
     lib/BackupPC/Lang/pt_br.pm
     lib/BackupPC/Lang/zh_CN.pm
     lib/BackupPC/Storage/Text.pm
@@ -561,7 +562,7 @@ sub CheckLangTags
     my($en, $enVars) = LangParse("lib/BackupPC/Lang/en.pm");
     my($errors);
 
-    foreach my $lang ( qw(fr.pm de.pm es.pm it.pm nl.pm pt_br.pm zh_CN.pm) ) {
+    foreach my $lang ( qw(fr.pm de.pm es.pm it.pm nl.pm pl.pm pt_br.pm zh_CN.pm) ) {
        my($d, $dVars) = LangParse("lib/BackupPC/Lang/$lang");
        foreach my $v1 ( @$en ) {
            my $v2 = shift(@$d);