Fixed PDF for Russian language
authorNik Okuntseff <support@anuko.com>
Mon, 7 Mar 2016 06:55:30 +0000 (22:55 -0800)
committerNik Okuntseff <support@anuko.com>
Mon, 7 Mar 2016 06:55:42 +0000 (22:55 -0800)
helvetica in TCPDF displays Russian incorrectly, had to use freeserif instead

27 files changed:
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/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/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.lang.php
WEB-INF/resources/ro.lang.php
WEB-INF/resources/sk.lang.php
WEB-INF/resources/sl.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
topdf.php

index 70657b1..17ab223 100644 (file)
@@ -122,6 +122,8 @@ $i18n_key_words = array(
 'label.password' => 'Paraula de pas',
 'label.confirm_password' => 'Confirmar paraula de pas',
 'label.email' => 'e-mail',
+// Translate the following string.
+// 'label.page' => 'Page',
 
 "form.filter.project" => 'Projecte',
 "form.filter.filter" => 'Report favorit',
index 96d7b7d..1acdf16 100644 (file)
@@ -122,6 +122,8 @@ $i18n_key_words = array(
 'label.confirm_password' => 'potvrdit heslo',
 // 'label.email' => 'email',
 'label.total' => 'celkem',
+// Translate the following string.
+// 'label.page' => 'Page',
 
 "form.filter.project" => 'projekt',
 "form.filter.filter" => 'oblíbená sestava',
index c6ddba4..4d4de61 100644 (file)
@@ -123,6 +123,8 @@ $i18n_key_words = array(
 'label.password' => 'adgangskode',
 'label.confirm_password' => 'gentag adgangskode',
 'label.email' => 'email',
+// Translate the following string.
+// 'label.page' => 'Page',
 
 "form.filter.project" => 'projekt',
 "form.filter.filter" => 'favorit rapport',
index ee6901a..fb7cba9 100644 (file)
@@ -182,6 +182,8 @@ $i18n_key_words = array(
 'label.role_manager' => '(Manager)',
 'label.role_comanager' => '(Co-Manager)',
 'label.role_admin' => '(Administrator)',
+// Translate the following string.
+// 'label.page' => 'Page',
 // Labels for plugins (extensions to Time Tracker that provide additional features).
 'label.custom_fields' => 'Benutzerfelder',
 'label.type' => 'Typ',
index e7f8866..32cccd6 100644 (file)
@@ -215,6 +215,8 @@ $i18n_key_words = array(
 'label.role_manager' =>'(manejador)',
 'label.role_comanager' => '(auxiliar del manejador)',
 'label.role_admin' => '(administrador)',
+// Translate the following string.
+// 'label.page' => 'Page',
 // Labels for plugins (extensions to Time Tracker that provide additional features).
 // TODO: translate the following strings.
 // 'label.custom_fields' => 'Custom fields',
index 3d709b2..1f8cdc5 100644 (file)
@@ -122,6 +122,8 @@ $i18n_key_words = array(
 'label.confirm_password' => 'kinnita salasõna',
 // 'label.email' => 'email',
 'label.total' => 'kokku',
+// Translate the following string.
+// 'label.page' => 'Page',
 
 "form.filter.project" => 'projekt',
 "form.filter.filter" => 'lemmikraport',
index 5cbfa9e..c710c22 100644 (file)
@@ -191,6 +191,8 @@ $i18n_key_words = array(
 'label.role_manager' => '(مدیر)',
 'label.role_comanager' => '(دستیار مدیر)',
 'label.role_admin' => '(مدیر ارشد)',
+// Translate the following string.
+// 'label.page' => 'Page',
 // Labels for plugins (extensions to Time Tracker that provide additional features).
 'label.custom_fields' => 'فیلدهای سفارشی',
 'label.type' => 'نوع',
index 9315a54..aebd958 100644 (file)
@@ -182,6 +182,8 @@ $i18n_key_words = array(
 'label.role_manager' => '(esimies)',
 'label.role_comanager' => '(apu-esimies)',
 'label.role_admin' => '(ylläpitäjä)',
+// Translate the following string.
+// 'label.page' => 'Page',
 // Labels for plugins (extensions to Time Tracker that provide additional features).
 'label.custom_fields' => 'Omat kentät',
 'label.type' => 'Tyyppi',
index 09f38aa..06532af 100644 (file)
@@ -193,6 +193,8 @@ $i18n_key_words = array(
 'label.role_manager' => '(responsable)',
 'label.role_comanager' => '(co-responsable)',
 'label.role_admin' => '(administrateur)',
+// Translate the following string.
+// 'label.page' => 'Page',
 
 // Labels for plugins (extensions to Time Tracker that provide additional features).
 'label.custom_fields' => 'Champs personalisés',
index 389ac05..0f8019d 100644 (file)
@@ -194,6 +194,8 @@ $i18n_key_words = array(
 'label.role_manager' => '(מנהל)',
 'label.role_comanager' => '(מנהל משנה)',
 'label.role_admin' => '(מנהל המערכת)',
+// Translate the following string.
+// 'label.page' => 'Page',
 // Labels for plugins (extensions to Time Tracker that provide additional features).
 'label.custom_fields' => 'שדות אישיים',
 'label.type' => 'סוג',
index bc498b8..7874436 100644 (file)
@@ -119,6 +119,8 @@ $i18n_key_words = array(
 'label.confirm_password' => 'jelszó megerősítése',
 // 'label.email' => 'email',
 'label.total' => 'összesen',
+// Translate the following string.
+// 'label.page' => 'Page',
 
 "form.filter.project" => 'projekt',
 "form.filter.filter" => 'előre definiált riport formátum',
index 1e83f63..b1a1aeb 100644 (file)
@@ -121,6 +121,8 @@ $i18n_key_words = array(
 'label.confirm_password' => 'conferma password',
 'label.email' => 'e-mail',
 'label.total' => 'totale',
+// Translate the following string.
+// 'label.page' => 'Page',
 
 "form.filter.project" => 'progetto',
 "form.filter.filter" => 'report preferiti',
index 4334949..5ad5410 100644 (file)
@@ -122,6 +122,8 @@ $i18n_key_words = array(
 'label.confirm_password' => 'パスワードの確認',
 'label.email' => 'Eメール',
 'label.total' => '合計',
+// Translate the following string.
+// 'label.page' => 'Page',
 
 "form.filter.project" => 'プロジェクト',
 "form.filter.filter" => 'お気に入りレポート',
index cc50132..eb8fa82 100644 (file)
@@ -120,6 +120,8 @@ $i18n_key_words = array(
 'label.confirm_password' => '암호 확인',
 'label.email' => '이메일',
 'label.total' => '합계',
+// Translate the following string.
+// 'label.page' => 'Page',
 
 "form.filter.project" => '프로젝트',
 "form.filter.filter" => '좋아하는 보고서',
index e0352a1..21903db 100644 (file)
@@ -182,6 +182,8 @@ $i18n_key_words = array(
 'label.role_manager' => '(manager)',
 'label.role_comanager' => '(co-manager)',
 'label.role_admin' => '(beheerder)',
+// Translate the following string.
+// 'label.page' => 'Page',
 // Labels for plugins (extensions to Time Tracker that provide additional features).
 'label.custom_fields' => 'Eigen velden',
 'label.type' => 'Type',
index ca05af0..a751b58 100644 (file)
@@ -120,6 +120,8 @@ $i18n_key_words = array(
 'label.confirm_password' => 'Bekreft passord',
 // 'label.email' => 'email',
 'label.total' => 'totalt',
+// Translate the following string.
+// 'label.page' => 'Page',
 
 // TODO: Please check the translation against the current English file as many things are being refactored. For example, many labels have been added after label.email.
 
index 141dcae..b4ece7f 100644 (file)
@@ -182,6 +182,8 @@ $i18n_key_words = array(
 'label.role_manager' => '(Manager)',
 'label.role_comanager' => '(Co-manager)',
 'label.role_admin' => '(Administrator)',
+// Translate the following string.
+// 'label.page' => 'Page',
 // Labels for plugins (extensions to Time Tracker that provide additional features).
 'label.custom_fields' => 'Niestandardowe pola',
 'label.type' => 'Rodzaj',
index be9fc01..041b91a 100644 (file)
@@ -117,6 +117,8 @@ $i18n_key_words = array(
 'label.password' => 'senha',
 'label.confirm_password' => 'confirme a senha',
 // 'label.email' => 'email',
+// Translate the following string.
+// 'label.page' => 'Page',
 
 // "form.filter.project" => 'project',
 // "form.filter.filter" => 'favorite report',
index b1671cf..043ccb4 100644 (file)
@@ -122,6 +122,8 @@ $i18n_key_words = array(
 'label.confirm_password' => 'confirma parola',
 // 'label.email' => 'email',
 'label.total' => 'total',
+// Translate the following string.
+// 'label.page' => 'Page',
 
 "form.filter.project" => 'proiect',
 "form.filter.filter" => 'rapoarte favorite',
index 25da529..0ca2a6a 100644 (file)
@@ -191,6 +191,8 @@ $i18n_key_words = array(
 'label.role_manager' => '(manažér)',
 'label.role_comanager' => '(spolu-manažér)',
 'label.role_admin' => '(administrátor)',
+// Translate the following string.
+// 'label.page' => 'Page',
 // Labels for plugins (extensions to Time Tracker that provide additional features).
 'label.custom_fields' => 'Vlastné polia',
 'label.type' => 'Typ',
index 389f817..b44cc64 100644 (file)
@@ -116,6 +116,8 @@ $i18n_key_words = array(
 // 'label.confirm_password' => 'confirm password',
 'label.email' => 'email',
 'label.total' => 'total',
+// Translate the following string.
+// 'label.page' => 'Page',
 
 "form.filter.project" => 'projekt',
 "form.filter.filter" => 'favorite report',
index 18a4f79..a6bfa05 100644 (file)
@@ -122,6 +122,8 @@ $i18n_key_words = array(
 'label.confirm_password' => 'bekräfta lösenord',
 'label.email' => 'e-post',
 'label.total' => 'total',
+// Translate the following string.
+// 'label.page' => 'Page',
 
 "form.filter.project" => 'projekt',
 "form.filter.filter" => 'favorit rapport',
index 5b45df0..b397aab 100644 (file)
@@ -122,6 +122,8 @@ $i18n_key_words = array(
 'label.confirm_password' => 'parolayı tekrala',
 'label.email' => 'e-posta',
 'label.total' => 'toplam',
+// Translate the following string.
+// 'label.page' => 'Page',
 
 "form.filter.project" => 'proje',
 "form.filter.filter" => 'sık kullanılan rapor',
index ae604cb..7eaabc2 100644 (file)
@@ -120,6 +120,8 @@ $i18n_key_words = array(
 'label.confirm_password' => '确认密码',
 'label.email' => '电子邮件',
 'label.total' => '总计',
+// Translate the following string.
+// 'label.page' => 'Page',
 
 "form.filter.project" => '项目',
 "form.filter.filter" => '收藏的报告',
index ddc96d0..6a946dd 100644 (file)
@@ -120,6 +120,8 @@ $i18n_key_words = array(
 'label.confirm_password' => '確認密碼',
 'label.email' => '電子郵件',
 'label.total' => '總計',
+// Translate the following string.
+// 'label.page' => 'Page',
 
 "form.filter.project" => '項目',
 "form.filter.filter" => '收藏的報告',
index b0711e0..68f3af1 100644 (file)
@@ -14,7 +14,7 @@
          <br>
       <table cellspacing="0" cellpadding="4" width="100%" border="0">
         <tr>
-          <td align="center">&nbsp;Anuko Time Tracker 1.9.13.3390 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
+          <td align="center">&nbsp;Anuko Time Tracker 1.9.13.3391 | 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>
           </td>
index 744ef4a..7aed32d 100644 (file)
--- a/topdf.php
+++ b/topdf.php
@@ -354,7 +354,7 @@ class MyyPDF extends TCPDF {
     // Position at 15 mm from bottom.
     $this->SetY(-15);
     // Set font.
-    $this->SetFont('helvetica', 'I', 8);
+    $this->SetFont('freeserif', 'I', 8);
     // Print localized page number.
     $this->Cell(0, 10, $this->page_word.' '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M');
   }
@@ -369,8 +369,6 @@ if (file_exists('images/'.$user->team_id.'.png'))
 
 // Set page word for the footer.
 $pdf->SetPageWord($i18n->getKey('label.page'));
-// TODO: currently, we have problems rendering PDF in some languages such as Russian (headers, page word).
-// Not sure how to fix it... One option is to switch to mPDF - consider.
 
 // Set document information.
 $pdf->SetCreator(PDF_CREATOR);
@@ -393,8 +391,8 @@ $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
 // Add a page.
 $pdf->AddPage();
 
-// Set font.
-$pdf->SetFont('helvetica', '', 10);
+// Set font (freeserif seems to work for all languages).
+$pdf->SetFont('freeserif', '', 10); // helvetica here does not work for Russian.
 
 // Write HTML.
 $pdf->writeHTML($html, true, false, false, false, '');