From 017c6c24ec3afaf9860d053c2943cd0d9aa107f1 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 22 Dec 2017 15:04:06 +0100 Subject: [PATCH] added multilanguage support for Projektliste and CSV Export --- cis/private/tools/zeitaufzeichnung.php | 17 ++-- .../tools/zeitaufzeichnung_projektliste.php | 80 +++++++++++-------- locale/de-AT/zeitaufzeichnung.php | 17 +++- locale/en-US/zeitaufzeichnung.php | 17 +++- 4 files changed, 85 insertions(+), 46 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 8b145092e..636c368ff 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -45,6 +45,9 @@ require_once('../../../include/benutzerberechtigung.class.php'); $sprache = getSprache(); $p=new phrasen($sprache); +$sprache_obj = new sprache(); +$sprache_obj->load($sprache); +$sprache_index=$sprache_obj->index; if (!$db = new basis_db()) die($p->t("global/fehlerBeimOeffnenDerDatenbankverbindung")); @@ -726,7 +729,7 @@ if($projekt->getProjekteMitarbeiter($user, true)) CSV Export"; if($anzprojekte > 0) - echo " | Projektexport"; + echo " | ".$p->t("zeitaufzeichnung/projektexport").""; echo " "; if ($p->t("dms_link/handbuchZeitaufzeichnung")!='') @@ -753,15 +756,15 @@ if($projekt->getProjekteMitarbeiter($user, true)) $jahreanz = 3; echo '
'; echo '
'; - echo 'Projektexport'; - echo 'Monat: '; for($i=1;$i<13;$i++) { $selected = ($i == $aktmonat)?'selected = "selected"':''; - echo ''; + echo ''; } echo ''; - echo 'Jahr: '; for(;$jahreanz>0;$jahreanz--) { echo ''; @@ -795,8 +798,8 @@ if($projekt->getProjekteMitarbeiter($user, true)) echo ''; echo '
'; echo 'CSV-Export'; - echo 'Startdatum: '; - echo 'Enddatum: '; + echo ''.$p->t('zeitaufzeichnung/startdatum').' '; + echo ''.$p->t('zeitaufzeichnung/enddatum').' '; echo ''; echo ''; echo '
'; diff --git a/cis/private/tools/zeitaufzeichnung_projektliste.php b/cis/private/tools/zeitaufzeichnung_projektliste.php index ef272fedf..391167186 100644 --- a/cis/private/tools/zeitaufzeichnung_projektliste.php +++ b/cis/private/tools/zeitaufzeichnung_projektliste.php @@ -38,6 +38,12 @@ if (!isset($_GET['projexpmonat'])) if (!isset($_GET['projexpjahr'])) die("Parameter jahr fehlt"); +$sprache = getSprache(); +$p = new phrasen($sprache); +$sprache_obj = new sprache(); +$sprache_obj->load($sprache); +$sprache_index = $sprache_obj->index; + $uid = get_uid(); $benutzer = new benutzer(); if (!$benutzer->load($uid)) @@ -46,7 +52,7 @@ if (!$benutzer->load($uid)) $month = $_GET['projexpmonat']; $year = $_GET['projexpjahr']; -$monthtext = $monatsname[1][$month - 1]; +$monthtext = $monatsname[$sprache_index][$month - 1]; $username = $benutzer->vorname." ".$benutzer->nachname; $mitarbeiter = new mitarbeiter(); $mitarbeiter->load($uid); @@ -288,10 +294,10 @@ $workbook = new Spreadsheet_Excel_Writer(); $workbook->setVersion(8); // sending HTTP headers -$workbook->send("Projektliste_".$month."_".$year.".xls"); +$workbook->send('Projektliste_'.$month.'_'.$year.'.xls'); // Creating a worksheet -$worksheet =& $workbook->addWorksheet("Projektliste"); +$worksheet =& $workbook->addWorksheet($p->t('zeitaufzeichnung/projektliste')); $worksheet->setInputEncoding('utf-8'); // Define formats @@ -397,7 +403,7 @@ $format_cell_centered_alllines->setVAlign('vcenter'); //define column widths $nrProjects = count($projectnames); $daywidth = 4; -$totalworktimewidth = 10; +$totalworktimewidth = 13; $worktimewidth = 8; $worksheet->setColumn(0, 1, $daywidth); $worksheet->setColumn(2, 2, $totalworktimewidth); @@ -425,44 +431,48 @@ foreach ($projectcolumnwidths as $projectname => $width) //calculating spaces for centering global header texts $numberspaces = ($maxwidthprojects - 10 - strlen($username)); -$spacesstringFirst = ""; +$spacesstringFirst = ''; while ($numberspaces > 0) { - $spacesstringFirst .= " "; + $spacesstringFirst .= ' '; $numberspaces--; } $numberspaces = ($maxwidthprojects - 14 - strlen($persnr)); -$spacesstringSecond = ""; +$spacesstringSecond = ''; while ($numberspaces > 0) { - $spacesstringSecond .= " "; + $spacesstringSecond .= ' '; $numberspaces--; } $spalte = $zeile = 0; +//set language options +$decpoint = $sprache_index === '2' ? '.' : ','; +$thousandsep = $sprache_index === '2' ? ',' : '.'; + //write global header $lastspalte = ($nrProjects > 0) ? 2 + count($projectnames) * 2 : 14; $worksheet->setMerge($zeile, $spalte, $zeile + 1, $spalte + 2); -$worksheet->write($zeile, $spalte, $monthtext." ".$year, $format_heading_left); -$worksheet->write($zeile + 1, $spalte, $monthtext." ".$year, $format_heading_left); +$worksheet->write($zeile, $spalte, $monthtext.' '.$year, $format_heading_left); +$worksheet->write($zeile + 1, $spalte, $monthtext.' '.$year, $format_heading_left); for ($i = 1; $i < 3; $i++) { - $worksheet->write($zeile, $spalte+$i, "", $format_heading_topline); - $worksheet->write($zeile + 1, $spalte+$i, "", $format_heading_bottomline); + $worksheet->write($zeile, $spalte + $i, '', $format_heading_topline); + $worksheet->write($zeile + 1, $spalte + $i, '', $format_heading_bottomline); } $worksheet->setMerge($zeile, $spalte + 3, $zeile, $lastspalte); $worksheet->setMerge($zeile + 1, $spalte + 3, $zeile + 1, $lastspalte); -$worksheet->write($zeile, $spalte + 3, "Projektliste gedruckt am:".$spacesstringFirst.$username, $format_heading_right); +$worksheet->write($zeile, $spalte + 3, $p->t('zeitaufzeichnung/projektlistegedruckt').$spacesstringFirst.$username, $format_heading_right); for ($i = 4; $i < $lastspalte; $i++) { - $worksheet->write($zeile, $i, "", $format_heading_topline); - $worksheet->write($zeile + 1, $i, "", $format_heading_bottomline); + $worksheet->write($zeile, $i, '', $format_heading_topline); + $worksheet->write($zeile + 1, $i, '', $format_heading_bottomline); } $worksheet->write($zeile, $lastspalte, '', $format_heading_right); -$worksheet->write($zeile + 1, $spalte + 3, date('d.m.Y H:i').$spacesstringSecond.'Personal-Nr.:'.$persnr, $format_heading_right_bottomline); +$worksheet->write($zeile + 1, $spalte + 3, date('d.m.Y H:i').$spacesstringSecond.$p->t('zeitaufzeichnung/personalnr').$persnr, $format_heading_right_bottomline); $worksheet->write($zeile + 1, $lastspalte, '', $format_heading_right_bottomline); $zeile += 3; @@ -473,22 +483,22 @@ $worksheet->hideScreenGridlines(); //write table header $worksheet->setMerge($zeile, $spalte, $zeile + 1, $spalte + 1); -$worksheet->write($zeile, $spalte, "Tag", $format_bold_centered_alllines); -$worksheet->write($zeile + 1, $spalte, "", $format_bold_centered_alllines); -$worksheet->write($zeile, $spalte + 1, "Tag", $format_bold_centered_alllines); -$worksheet->write($zeile + 1, ++$spalte, "", $format_bold_centered_alllines); +$worksheet->write($zeile, $spalte, $p->t('zeitaufzeichnung/tag'), $format_bold_centered_alllines); +$worksheet->write($zeile + 1, $spalte, '', $format_bold_centered_alllines); +$worksheet->write($zeile, $spalte + 1, $p->t('zeitaufzeichnung/tag'), $format_bold_centered_alllines); +$worksheet->write($zeile + 1, ++$spalte, '', $format_bold_centered_alllines); $worksheet->setMerge($zeile, ++$spalte, $zeile + 1, $spalte); -$worksheet->write($zeile, $spalte, "Arbeitszeit", $format_bold_centered_alllines); -$worksheet->write($zeile + 1, $spalte, "", $format_bold_centered_alllines); +$worksheet->write($zeile, $spalte, $p->t('zeitaufzeichnung/arbeitszeit'), $format_bold_centered_alllines); +$worksheet->write($zeile + 1, $spalte, '', $format_bold_centered_alllines); $spalte++; foreach ($projectnames as $project) { $worksheet->setMerge($zeile, $spalte, $zeile, $spalte + 1); $worksheet->write($zeile, $spalte, $project, $format_bold_centered_toprightline); - $worksheet->write($zeile, $spalte + 1, "", $format_bold_centered_toprightline); - $worksheet->write($zeile + 1, $spalte, "Stunden", $format_bold_centered_bottomline); - $worksheet->write($zeile + 1, $spalte + 1, "Tätigkeit", $format_bold_centered_bottomrightline); + $worksheet->write($zeile, $spalte + 1, '', $format_bold_centered_toprightline); + $worksheet->write($zeile + 1, $spalte, $p->t('zeitaufzeichnung/stunden'), $format_bold_centered_bottomline); + $worksheet->write($zeile + 1, $spalte + 1, $p->t('zeitaufzeichnung/taetigkeit'), $format_bold_centered_bottomrightline); $spalte += 2; } $zeile += 2; @@ -501,14 +511,14 @@ for ($daysnmbr = 1; $daysnmbr <= $daysinmonth; $daysnmbr++) $monthstr = ($month < 10) ? '0'.$month : $month; $daystr = ($daysnmbr < 10) ? '0'.$daysnmbr : $daysnmbr; $datestring = $year.'-'.$monthstr.'-'.$daystr; - $weekday = substr($tagbez[1][$date->formatDatum($datestring, 'N')], 0, 2); + $weekday = substr($tagbez[$sprache_index][$date->formatDatum($datestring, 'N')], 0, 2); $worksheet->write($zeile, $spalte++, $weekday, $format_cell_centered_leftline); $worksheet->write($zeile, $spalte++, $daysnmbr, $format_cell_centered_rightline); if (array_key_exists($daysnmbr, $projectlines)) { //write worktime - $worksheet->write($zeile, $spalte++, number_format($projectlines[$daysnmbr]->arbeitszeit, 2, ",", "."), $format_cell_centered_rightline); + $worksheet->writeString($zeile, $spalte++, number_format($projectlines[$daysnmbr]->arbeitszeit, 2, $decpoint, $thousandsep), $format_cell_centered_rightline); $spaltetemp = $spalte; //write projects foreach ($projectnames as $project) @@ -516,7 +526,7 @@ for ($daysnmbr = 1; $daysnmbr <= $daysinmonth; $daysnmbr++) if (array_key_exists($project, $projectlines[$daysnmbr]->projekte)) { $worksheet->setColumn($spalte, $spalte, $worktimewidth); - $worksheet->write($zeile, $spalte++, number_format($projectlines[$daysnmbr]->projekte[$project]->stunden, 2, ",", "."), $format_cell_centered_leftline); + $worksheet->writeString($zeile, $spalte++, number_format($projectlines[$daysnmbr]->projekte[$project]->stunden, 2, $decpoint, $thousandsep), $format_cell_centered_leftline); $worksheet->setColumn($spalte, $spalte, $projectcolumnwidths[$project]); $worksheet->write($zeile, $spalte++, $projectlines[$daysnmbr]->projekte[$project]->beschreibung, $format_cell_rightline); } @@ -530,7 +540,7 @@ for ($daysnmbr = 1; $daysnmbr <= $daysinmonth; $daysnmbr++) else { //write empty cells until end of table - $worksheet->write($zeile, $spalte, '0,00', $format_cell_centered_leftline); + $worksheet->writeString($zeile, $spalte, number_format(0, 2, $decpoint, $thousandsep), $format_cell_centered_leftline); $toskip = count($projectnames) * 2; for ($i = 0; $i <= $toskip; $i++) { @@ -548,21 +558,21 @@ if ($nrProjects < 1) //no projects - merge all cells and write notice { $worksheet->setMerge(3, 3, 4 + $daysinmonth, $lastspalte); - $worksheet->write(3, 3, "keine Projekte vorhanden", $format_bold_centered_alllines); - $worksheet->write(3, $lastspalte, "", $format_bold_centered_alllines); + $worksheet->write(3, 3, $p->t('zeitaufzeichnung/keineprojekte'), $format_bold_centered_alllines); + $worksheet->write(3, $lastspalte, '', $format_bold_centered_alllines); } //write monthly sums $spalte = 0; $worksheet->setMerge($zeile, $spalte, $zeile, $spalte + 1); -$worksheet->write($zeile, $spalte, 'Summe:', $format_bold_centered_alllines); +$worksheet->write($zeile, $spalte, $p->t('zeitaufzeichnung/summe'), $format_bold_centered_alllines); $worksheet->write($zeile, $spalte + 1, '', $format_bold_centered_alllines); $spalte += 2; -$worksheet->write($zeile, $spalte++, number_format($monthsums[0], 2, ",", "."), $format_cell_centered_alllines); +$worksheet->writeString($zeile, $spalte++, number_format($monthsums[0], 2, $decpoint, $thousandsep), $format_cell_centered_alllines); foreach ($projectnames as $project) { - $worksheet->write($zeile, $spalte++, number_format($monthsums[$project], 2, ",", "."), $format_cell_centered_topbottomleftline); - $worksheet->write($zeile, $spalte++, "", $format_cell_centered_topbottomrightline); + $worksheet->writeString($zeile, $spalte++, number_format($monthsums[$project], 2, $decpoint, $thousandsep), $format_cell_centered_topbottomleftline); + $worksheet->write($zeile, $spalte++, '', $format_cell_centered_topbottomrightline); } $worksheet->fitToPages(1, 1); $workbook->close(); diff --git a/locale/de-AT/zeitaufzeichnung.php b/locale/de-AT/zeitaufzeichnung.php index 30ca703e9..a1f247827 100644 --- a/locale/de-AT/zeitaufzeichnung.php +++ b/locale/de-AT/zeitaufzeichnung.php @@ -41,7 +41,20 @@ $this->phrasen['zeitaufzeichnung/alleEintraege']='Alle Einträge'; $this->phrasen['zeitaufzeichnung/summeEintraege']='Summe Einträge'; $this->phrasen['zeitaufzeichnung/arbeitszeit']='Arbeitszeit'; $this->phrasen['zeitaufzeichnung/pause']='Pausen';'inkl. 30 min. Pflichtpause'; -$this->phrasen['zeitaufzeichnung/inklusivePflichtpause']='inkl. 30 min. Pflichtpause'; -$this->phrasen['zeitaufzeichnung/handbuchZeitaufzeichnung']='Arbeitszeitaufzeichnung Leitfaden'; +$this->phrasen['zeitaufzeichnung/inklusivePflichtpause']='inkl. 30 min. Pflichtpause'; +$this->phrasen['zeitaufzeichnung/handbuchZeitaufzeichnung']='Arbeitszeitaufzeichnung Leitfaden'; $this->phrasen['zeitaufzeichnung/fiktiveNormalarbeitszeit']='Vereinbarung der fiktiven Normalarbeitszeit'; +$this->phrasen['zeitaufzeichnung/projektexport']='Projektexport'; +$this->phrasen['zeitaufzeichnung/projektliste']='Projektliste'; +$this->phrasen['zeitaufzeichnung/projektlistegedruckt']='Projektliste gedruckt am:'; +$this->phrasen['zeitaufzeichnung/personalnr']='Personal-Nr.:'; +$this->phrasen['zeitaufzeichnung/jahr']='Jahr:'; +$this->phrasen['zeitaufzeichnung/monat']='Monat:'; +$this->phrasen['zeitaufzeichnung/tag']='Tag'; +$this->phrasen['zeitaufzeichnung/startdatum']='Startdatum:'; +$this->phrasen['zeitaufzeichnung/enddatum']='Enddatum:'; +$this->phrasen['zeitaufzeichnung/stunden']='Stunden'; +$this->phrasen['zeitaufzeichnung/taetigkeit']='Tätigkeit'; +$this->phrasen['zeitaufzeichnung/keineprojekte']='keine Projekte vorhanden'; +$this->phrasen['zeitaufzeichnung/summe']='Summe:'; ?> diff --git a/locale/en-US/zeitaufzeichnung.php b/locale/en-US/zeitaufzeichnung.php index 576657e8f..e7e92fa11 100644 --- a/locale/en-US/zeitaufzeichnung.php +++ b/locale/en-US/zeitaufzeichnung.php @@ -41,7 +41,20 @@ $this->phrasen['zeitaufzeichnung/alleEintraege']='All entries'; $this->phrasen['zeitaufzeichnung/summeEintraege']='Total'; $this->phrasen['zeitaufzeichnung/arbeitszeit']='Working time'; $this->phrasen['zeitaufzeichnung/pause']='Breaks'; -$this->phrasen['zeitaufzeichnung/inklusicePlichtpause']='incl. 30 min. lunch break'; -$this->phrasen['zeitaufzeichnung/handbuchZeitaufzeichnung']='Timesheet howto'; +$this->phrasen['zeitaufzeichnung/inklusicePlichtpause']='incl. 30 min. lunch break'; +$this->phrasen['zeitaufzeichnung/handbuchZeitaufzeichnung']='Timesheet howto'; $this->phrasen['zeitaufzeichnung/fiktiveNormalarbeitszeit']='Vereinbarung der fiktiven Normalarbeitszeit'; +$this->phrasen['zeitaufzeichnung/projektexport']='Projectexport'; +$this->phrasen['zeitaufzeichnung/projektliste']='Projectlist'; +$this->phrasen['zeitaufzeichnung/projektlistegedruckt']='Projectlist printed on:'; +$this->phrasen['zeitaufzeichnung/personalnr']='staff number '; +$this->phrasen['zeitaufzeichnung/jahr']='Year:'; +$this->phrasen['zeitaufzeichnung/monat']='Month:'; +$this->phrasen['zeitaufzeichnung/tag']='Day'; +$this->phrasen['zeitaufzeichnung/startdatum']='Startdate:'; +$this->phrasen['zeitaufzeichnung/enddatum']='Enddate:'; +$this->phrasen['zeitaufzeichnung/stunden']='Hours'; +$this->phrasen['zeitaufzeichnung/taetigkeit']='Activity'; +$this->phrasen['zeitaufzeichnung/keineprojekte']='no projects exist'; +$this->phrasen['zeitaufzeichnung/summe']='Sum:'; ?> \ No newline at end of file