Localized xml parsing error string.
authorNik Okuntseff <support@anuko.com>
Sat, 10 Nov 2018 12:12:17 +0000 (12:12 +0000)
committerNik Okuntseff <support@anuko.com>
Sat, 10 Nov 2018 12:12:17 +0000 (12:12 +0000)
32 files changed:
WEB-INF/lib/ttOrgImportHelper.class.php
WEB-INF/resources/ca.lang.php
WEB-INF/resources/cs.lang.php
WEB-INF/resources/da.lang.php
WEB-INF/resources/de.lang.php
WEB-INF/resources/en.lang.php
WEB-INF/resources/es.lang.php
WEB-INF/resources/et.lang.php
WEB-INF/resources/fa.lang.php
WEB-INF/resources/fi.lang.php
WEB-INF/resources/fr.lang.php
WEB-INF/resources/gr.lang.php
WEB-INF/resources/he.lang.php
WEB-INF/resources/hu.lang.php
WEB-INF/resources/it.lang.php
WEB-INF/resources/ja.lang.php
WEB-INF/resources/ko.lang.php
WEB-INF/resources/nl.lang.php
WEB-INF/resources/no.lang.php
WEB-INF/resources/pl.lang.php
WEB-INF/resources/pt-br.lang.php
WEB-INF/resources/pt.lang.php
WEB-INF/resources/ro.lang.php
WEB-INF/resources/ru.lang.php
WEB-INF/resources/sk.lang.php
WEB-INF/resources/sl.lang.php
WEB-INF/resources/sr.lang.php
WEB-INF/resources/sv.lang.php
WEB-INF/resources/tr.lang.php
WEB-INF/resources/zh-cn.lang.php
WEB-INF/resources/zh-tw.lang.php
WEB-INF/templates/footer.tpl

index 015579c..57f2210 100644 (file)
@@ -171,9 +171,9 @@ class ttOrgImportHelper {
     $file = fopen($filename, 'r');
     while ($data = fread($file, 4096)) {
       if (!xml_parse($parser, $data, feof($file))) {
-        $this->errors->add(sprintf("XML error: %s at line %d",
-          xml_error_string(xml_get_error_code($parser)),
-          xml_get_current_line_number($parser)));
+        $this->errors->add(sprintf($i18n->get('error.xml'),
+          xml_get_current_line_number($parser),
+          xml_error_string(xml_get_error_code($parser))));
       }
     }
     if ($this->conflicting_entities) {
@@ -199,9 +199,9 @@ class ttOrgImportHelper {
     $file = fopen($filename, 'r');
     while ($data = fread($file, 4096)) {
       if (!xml_parse($parser, $data, feof($file))) {
-        $this->errors->add(sprintf("XML error: %s at line %d",
-          xml_error_string(xml_get_error_code($parser)),
-          xml_get_current_line_number($parser)));
+        $this->errors->add(sprintf($i18n->get('error.xml'),
+          xml_get_current_line_number($parser),
+          xml_error_string(xml_get_error_code($parser))));
       }
     }
     xml_parser_free($parser);
index 2a74077..5bfd796 100644 (file)
@@ -116,6 +116,7 @@ $i18n_key_words = array(
 // 'error.goto_uncompleted' => 'Go to uncompleted entry.',
 // 'error.overlap' => 'Time interval overlaps with existing records.',
 // 'error.future_date' => 'Date is in future.',
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 4d59374..d407dcc 100644 (file)
@@ -118,6 +118,7 @@ $i18n_key_words = array(
 // 'error.goto_uncompleted' => 'Go to uncompleted entry.',
 // 'error.overlap' => 'Time interval overlaps with existing records.',
 // 'error.future_date' => 'Date is in future.',
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 914bba6..f475e06 100644 (file)
@@ -109,6 +109,7 @@ $i18n_key_words = array(
 'error.overlap' => 'Tidsinterval overlapper eksisterende poster.',
 'error.future_date' => 'Datoen er ud i fremtiden.',
 // TODO: translate the following.
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 9e118e4..ea58b9a 100644 (file)
@@ -102,6 +102,7 @@ $i18n_key_words = array(
 'error.overlap' => 'Der Zeitinterval überschneidet sich mit vorhandenen Einträgen.',
 'error.future_date' => 'Datum ist in der Zukunft.',
 // TODO: translate the following.
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 16f61f2..8205905 100644 (file)
@@ -100,6 +100,7 @@ $i18n_key_words = array(
 'error.goto_uncompleted' => 'Go to uncompleted entry.',
 'error.overlap' => 'Time interval overlaps with existing records.',
 'error.future_date' => 'Date is in future.',
+'error.xml' => 'Error in XML file at line %d: %s.',
 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 2ee7de8..740be12 100644 (file)
@@ -114,6 +114,7 @@ $i18n_key_words = array(
 // 'error.goto_uncompleted' => 'Go to uncompleted entry.',
 // 'error.overlap' => 'Time interval overlaps with existing records.',
 // 'error.future_date' => 'Date is in future.',
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 86cde2a..b9f784f 100644 (file)
@@ -119,6 +119,7 @@ $i18n_key_words = array(
 // 'error.overlap' => 'Time interval overlaps with existing records.',
 // 'error.future_date' => 'Date is in future.',
 // TODO: translate the following.
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 55625a8..e6d54ee 100644 (file)
@@ -116,6 +116,7 @@ $i18n_key_words = array(
 'error.overlap' => 'بازه زمانی با سوابق موجود هم پوشانی دارد.',
 // TODO: translate the following.
 // 'error.future_date' => 'Date is in future.',
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 36b4d0b..316b3f8 100644 (file)
@@ -111,6 +111,7 @@ $i18n_key_words = array(
 'error.overlap' => 'Aikavälillä on päällekkäisiä syötteitä.',
 'error.future_date' => 'Aika on tulevaisuudessa.',
 // TODO: translate the following.
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 6290479..529fc2d 100644 (file)
@@ -109,6 +109,7 @@ $i18n_key_words = array(
 'error.overlap' => 'Les heures des projets ne peuvent se chevaucher.',
 'error.future_date' => 'Date ultérieure.',
 // TODO: translate the following.
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index f2de6f5..2b52314 100644 (file)
@@ -103,6 +103,7 @@ $i18n_key_words = array(
 'error.overlap' => 'Το χρονικό διάστημα επικαλύπτει υπάρχουσες καταχωρήσεις.',
 'error.future_date' => 'Η ημερομηνία είναι στο μέλλον.',
 // TODO: translate the following.
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 66cbea7..878e5ba 100644 (file)
@@ -126,6 +126,7 @@ $i18n_key_words = array(
 'error.overlap' => 'טווח הזמן מתנגש עם רישומים קיימים.',
 // TODO: translate the following.
 // 'error.future_date' => 'Date is in future.',
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index b740fe3..f98dffa 100644 (file)
@@ -115,6 +115,7 @@ $i18n_key_words = array(
 // 'error.goto_uncompleted' => 'Go to uncompleted entry.',
 // 'error.overlap' => 'Time interval overlaps with existing records.',
 // 'error.future_date' => 'Date is in future.',
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 5d0600a..07ed67c 100644 (file)
@@ -107,6 +107,7 @@ $i18n_key_words = array(
 'error.overlap' => 'Intervallo temporale sovrapposto a voci esistenti.',
 'error.future_date' => 'La data è nel futuro.',
 // TODO: translate the following.
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 6149e7c..0d07750 100644 (file)
@@ -120,6 +120,7 @@ $i18n_key_words = array(
 // 'error.goto_uncompleted' => 'Go to uncompleted entry.',
 // 'error.overlap' => 'Time interval overlaps with existing records.',
 // 'error.future_date' => 'Date is in future.',
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index fa41f2c..0bc21ee 100644 (file)
@@ -119,6 +119,7 @@ $i18n_key_words = array(
 // 'error.goto_uncompleted' => 'Go to uncompleted entry.',
 // 'error.overlap' => 'Time interval overlaps with existing records.',
 // 'error.future_date' => 'Date is in future.',
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 8c4a524..02e0ab3 100644 (file)
@@ -100,6 +100,7 @@ $i18n_key_words = array(
 'error.overlap' => 'De huidige registratie overlapt een reeds bestaande registratie.',
 'error.future_date' => 'Datum ligt in de toekomst.',
 // TODO: translate the following.
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 044a6f3..c7f0fe2 100644 (file)
@@ -120,6 +120,7 @@ $i18n_key_words = array(
 // TODO: translate the following.
 // 'error.overlap' => 'Time interval overlaps with existing records.',
 // 'error.future_date' => 'Date is in future.',
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index c94ae1c..ffc6d37 100644 (file)
@@ -113,6 +113,7 @@ $i18n_key_words = array(
 'error.overlap' => 'Okres czasowy nakłada się z istniejącymi wpisami.',
 'error.future_date' => 'Data jest w przyszłości.',
 // TODO: translate the following.
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons
index f40b5f0..9b5bf75 100644 (file)
@@ -110,6 +110,7 @@ $i18n_key_words = array(
 'error.overlap' => 'O intervalo se sobrepõe com entradas já existentes.',
 'error.future_date' => 'Data é no futuro.',
 // TODO: translate the following.
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 4f7d748..e2e95a8 100644 (file)
@@ -112,6 +112,7 @@ $i18n_key_words = array(
 // 'error.goto_uncompleted' => 'Go to uncompleted entry.',
 // 'error.overlap' => 'Time interval overlaps with existing records.',
 // 'error.future_date' => 'Date is in future.',
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 82d5d3e..6840977 100644 (file)
@@ -120,6 +120,7 @@ $i18n_key_words = array(
 // 'error.goto_uncompleted' => 'Go to uncompleted entry.',
 // 'error.overlap' => 'Time interval overlaps with existing records.',
 // 'error.future_date' => 'Date is in future.',
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 3974d16..3354eaa 100644 (file)
@@ -99,6 +99,7 @@ $i18n_key_words = array(
 'error.goto_uncompleted' => 'Посмотреть неоконченную запись.',
 'error.overlap' => 'Интервал времени перекрывается с существующими записями.',
 'error.future_date' => 'Дата в будущем.',
+'error.xml' => 'Ошибка в файле XML на строке %d: %s.',
 'error.cannot_import' => 'Невозможно импортировать: %s.',
 
 // Labels for buttons.
index cfca9b0..18fa470 100644 (file)
@@ -115,6 +115,7 @@ $i18n_key_words = array(
 // TODO: translate the following.
 // 'error.overlap' => 'Time interval overlaps with existing records.',
 // 'error.future_date' => 'Date is in future.',
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index e07b208..7f09aac 100644 (file)
@@ -109,6 +109,7 @@ $i18n_key_words = array(
 // 'error.goto_uncompleted' => 'Go to uncompleted entry.',
 // 'error.overlap' => 'Time interval overlaps with existing records.',
 // 'error.future_date' => 'Date is in future.',
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 6bc886a..890b8ee 100644 (file)
@@ -110,6 +110,7 @@ $i18n_key_words = array(
 'error.overlap' => 'Navedeni vremenski interval se podudara sa već unetim vremenom.',
 'error.future_date' => 'Naveli ste budući datum.',
 // TODO: translate the following.
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index a646aab..d2e227d 100644 (file)
@@ -107,6 +107,7 @@ $i18n_key_words = array(
 'error.overlap' => 'Tidsintervallet överlappar med en redan existerande tidsregistrering.',
 'error.future_date' => 'Det går inte att registrera tider framåt i tiden.',
 // TODO: translate the following.
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index eb48875..7f34cb3 100644 (file)
@@ -123,6 +123,7 @@ $i18n_key_words = array(
 // 'error.goto_uncompleted' => 'Go to uncompleted entry.',
 // 'error.overlap' => 'Time interval overlaps with existing records.',
 // 'error.future_date' => 'Date is in future.',
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index e37138b..96e4316 100644 (file)
@@ -112,6 +112,7 @@ $i18n_key_words = array(
 // TODO: translate the following.
 // 'error.overlap' => 'Time interval overlaps with existing records.',
 // 'error.future_date' => 'Date is in future.',
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index f46f456..8664f19 100644 (file)
@@ -117,6 +117,7 @@ $i18n_key_words = array(
 // 'error.goto_uncompleted' => 'Go to uncompleted entry.',
 // 'error.overlap' => 'Time interval overlaps with existing records.',
 // 'error.future_date' => 'Date is in future.',
+// 'error.xml' => 'Error in XML file at line %d: %s.',
 // 'error.cannot_import' => 'Cannot import: %s.',
 
 // Labels for buttons.
index 9e7af7c..3789b25 100644 (file)
@@ -12,7 +12,7 @@
       <br>
       <table cellspacing="0" cellpadding="4" width="100%" border="0">
         <tr>
-          <td align="center">&nbsp;Anuko Time Tracker 1.18.12.4399 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
+          <td align="center">&nbsp;Anuko Time Tracker 1.18.12.4400 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
             <a href="https://www.anuko.com/lp/tt_4.htm" target="_blank">{$i18n.footer.credits}</a> |
             <a href="https://www.anuko.com/lp/tt_5.htm" target="_blank">{$i18n.footer.license}</a> |
             <a href="https://www.anuko.com/lp/tt_7.htm" target="_blank">{$i18n.footer.improve}</a>