Work in progress integrating Estonian translation as per PR#71.
authorNik Okuntseff <support@anuko.com>
Thu, 24 Jan 2019 17:08:13 +0000 (17:08 +0000)
committerNik Okuntseff <support@anuko.com>
Thu, 24 Jan 2019 17:08:13 +0000 (17:08 +0000)
WEB-INF/resources/et.lang.php
WEB-INF/templates/footer.tpl

index 1387bea..38d2e3a 100644 (file)
@@ -36,226 +36,212 @@ $i18n_months = array('Jaanuar', 'Veebruar', 'Märts', 'Aprill', 'Mai', 'Juuni',
 $i18n_weekdays = array('Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev');
 $i18n_weekdays_short = array('P', 'E', 'T', 'K', 'N', 'R', 'L');
 // format mm/dd
-$i18n_holidays = array('01/01', '02/24', '04/10', '04/12', '05/01', '05/31', '06/23', '06/24', '08/20', '12/24', '12/25', '12/26');
+$i18n_holidays = array('01/01', '02/24', '04/19', '04/21', '05/01', '06/09', '06/23', '06/24', '08/20', '12/24', '12/25', '12/26');
 
 $i18n_key_words = array(
 
 // Menus - short selection strings that are displayed on top of application web pages.
 // Example: https://timetracker.anuko.com (black menu on top).
-'menu.login' => 'Login',
-'menu.logout' => 'Logout',
-// TODO: translate the following.
-// 'menu.forum' => 'Forum',
+'menu.login' => 'Sisene',
+'menu.logout' => 'Välju',
+'menu.forum' => 'Foorum',
 'menu.help' => 'Abiinfo',
-// TODO: translate the following.
-// 'menu.create_group' => 'Create Group',
-'menu.profile' => 'Profiili',
-// TODO: translate the following.
-// 'menu.group' => 'Group',
-// 'menu.plugins' => 'Plugins',
-'menu.time' => 'Aeg',
-// TODO: translate the following.
-// 'menu.expenses' => 'Expenses',
+'menu.create_group' => 'Loo grupp',
+'menu.profile' => 'Profiil',
+'menu.group' => 'Grupp',
+'menu.plugins' => 'Lisad',
+'menu.time' => 'Ajaarvestus',
+'menu.expenses' => 'Kulud',
 'menu.reports' => 'Raportid',
-// TODO: translate the following.
-// 'menu.charts' => 'Charts',
+'menu.charts' => 'Diagrammid',
 'menu.projects' => 'Projektid',
-// TODO: translate the following.
-// 'menu.tasks' => 'Tasks',
+'menu.tasks' => 'Tööülesanded',
 'menu.users' => 'Kasutajad',
-// TODO: translate the following.
-// 'menu.groups' => 'Groups',
-// 'menu.subgroups' => 'Subgroups',
-// 'menu.export' => 'Export',
+'menu.groups' => 'Grupid',
+'menu.subgroups' => 'Alamgrupid',
+'menu.export' => 'Eksport', // TODO: is this a correct term as an opposite of "Import"?
 'menu.clients' => 'Kliendid',
 'menu.options' => 'Suvandid',
 
 // Footer - strings on the bottom of most pages.
-// TODO: translate the following.
-// 'footer.contribute_msg' => 'You can contribute to Time Tracker in different ways.',
-// 'footer.credits' => 'Credits',
-// 'footer.license' => 'License',
-// 'footer.improve' => 'Contribute', // Translators: this could mean "Improve", if it makes better sense in your language.
-                                     // This is a link to a webpage that describes how to contribute to the project.
+'footer.contribute_msg' => 'Sul on võimalik mitmeti panustada Time Tracker\\\'i arendamisse.',
+'footer.credits' => 'Tunnustused',
+'footer.license' => 'Litsents',
+'footer.improve' => 'Panusta',
 
 // Error messages.
-// TODO: translate the following.
-// 'error.access_denied' => 'Access denied.',
-// 'error.sys' => 'System error.',
+'error.access_denied' => 'Puudub ligipääs.',
+'error.sys' => 'Rakenduse viga.',
 'error.db' => 'Andmebaasi viga.',
-// TODO: translate the following.
-// 'error.feature_disabled' => 'Feature is disabled.',
-'error.field' => 'Valed "{0}" andmed.',
+'error.feature_disabled' => 'Rakenduse funktsionaalsus on välja lülitatud.',
+'error.field' => 'Välja "{0}" andmed ei vasta nõutele.',
 'error.empty' => 'Väli "{0}" on tühi.',
 'error.not_equal' => 'Väli "{0}" ei ole väljaga "{1}" võrdne.',
-// TODO: translate the following.
-// 'error.interval' => 'Field "{0}" must be greater than "{1}".',
+'error.interval' => 'Välja "{0}" väärtus peab olema suurem kui välja "{1}" väärtus.',
 'error.project' => 'Vali projekt.',
-// TODO: translate the following.
-// 'error.task' => 'Select task.',
+'error.task' => 'Vali tööülesanne.',
 'error.client' => 'Vali klient.',
-// TODO: translate the following.
-// 'error.report' => 'Select report.',
-// 'error.record' => 'Select record.',
-'error.auth' => 'Vale login või salasõna.',
-// TODO: translate the following.
-// 'error.user_exists' => 'User with this login already exists.',
-// 'error.object_exists' => 'Object with this name already exists.',
-// 'error.invoice_exists' => 'Invoice with this number already exists.',
+'error.report' => 'Vali raport.',
+'error.record' => 'Vali kirje.',
+'error.auth' => 'Autentimine ebaõnnestus.',
+'error.user_exists' => 'Selle nimega kasutaja on juba kasutusel.',
+'error.object_exists' => 'Sellise nimega objekt on juba olemas.',
+'error.invoice_exists' => 'Arve number on juba kasutusel.',
+
+// TODO: Improve translation of error.role_exists.
 // 'error.role_exists' => 'Role with this rank already exists.',
+// It is displayed when user tries to add a role with an already existing RANK.
+// There is no indication of RANK collision in this translation.
+// 'error.role_exists' => 'Kasutaja roll on juba kasutusel.',
+
+// TODO: Improve translation of error.no_invoiceable_items.
 // 'error.no_invoiceable_items' => 'There are no invoiceable items.',
-// 'error.no_login' => 'No user with this login.',
-'error.no_groups' => 'Sinu andmebaas on tühi. Logi adminina sisse ja loo uus meeskond.',  // TODO: replace "team" with "group".
+// This error shows up when user tries to ctreate a new invoice,
+// but there are no billable records such time or expenses to include.
+// Google auto-translates below as "No billable invoices found." which seems wrong.
+// 'error.no_invoiceable_items' => 'Arveldatavaid arveid ei leitud.',
+
+'error.no_login' => 'Sellise tunnusega kasutajat ei ole.',
+
+// TODO: Improve translation of error.no_groups. Replace meeskond with grupp?
+// Why? Before supporting subgroups, Time Tracker organized users in "teams".
+// Now we have "groups" with "subgroups", renamed from original "team".
+// Meeskond below is a glimpse from earlier versions, before renaming occurred.
+'error.no_groups' => 'Sinu andmebaas on tühi. Logi administraatorina sisse ja loo uus meeskond.',
+
 'error.upload' => 'Viga faili vastuvõtmisel.',
-// TODO: translate the following.
-// 'error.range_locked' => 'Date range is locked.',
-// 'error.mail_send' => 'Error sending mail. Use MAIL_SMTP_DEBUG for diagnostics.',
-// 'error.no_email' => 'No email associated with this login.',
-// 'error.uncompleted_exists' => 'Uncompleted entry already exists. Close or delete it.',
-// 'error.goto_uncompleted' => 'Go to uncompleted entry.',
-// '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.',
-// 'error.format' => 'Invalid file format.',
-// 'error.user_count' => 'Limit on user count.',
-// 'error.expired' => 'Expiration date reached.',
+'error.range_locked' => 'Kuupäevavahemik on lukus.',
+'error.mail_send' => 'E-posti saatmisel tekkis viga. Vea tuvastamiseks kasuta MAIL_SMTP_DEBUG muutujat.',
+'error.no_email' => 'Kasutajaga pole ühtegi e-posti seotud.',
+'error.uncompleted_exists' => 'Leiti varasemalt lõpetamata kirje. Sulge või kustuta see.',
+'error.goto_uncompleted' => 'Ava lõpetamata kirje.',
+'error.overlap' => 'Ajavahemik kattub varasema kirjega.',
+'error.future_date' => 'Kuupäev on tulevikus.',
+'error.xml' => 'Viga XML failis, real %d: %s.',
+'error.cannot_import' => 'Ebaõnnestunud import: %s.',
+'error.format' => 'Faili formaat on vale.',
+'error.user_count' => 'Kasutajate arvu piirang.',
+'error.expired' => 'Kehtivusaeg on lõppenud.',
 
 // Warning messages.
-// TODO: translate the following.
-// 'warn.sure' => 'Are you sure?',
-// 'warn.confirm_save' => 'Date has changed. Confirm saving, not copying this item.',
+'warn.sure' => 'Oled kindel?',
+'warn.confirm_save' => 'Kuupäeva on muudetud. Muudatuse kinnitamisel ei varundata esialgset kirjet, vaid muudetakse seda. Kinnitad muudatuse?',
 
 // Success messages.
-// TODO: translate the following.
-// 'msg.success' => 'Operation completed successfully.',
+'msg.success' => 'Tegevus oli edukas.',
 
 // Labels for buttons.
-'button.login' => 'Login',
-'button.now' => 'Kohe',
+'button.login' => 'Sisene',
+'button.now' => 'Nüüd',
 'button.save' => 'Salvesta',
-// TODO: translate the following.
-// 'button.copy' => 'Copy',
+'button.copy' => 'Kopeeri',
 'button.cancel' => 'Tühista',
 'button.submit' => 'Postita',
 'button.add' => 'Lisa',
 'button.delete' => 'Kustuta',
 'button.generate' => 'Loo',
-'button.reset_password' => 'Tühjenda salasõna',
+'button.reset_password' => 'Lähtesta salasõna',
 'button.send' => 'Saada',
-'button.send_by_email' => 'Saada e-mailiga',
-'button.create_group' => 'Loo meeskond', // TODO: replace "team" with "group".
-'button.export' => 'Ekspordi meeskond', // TODO: replace "team" with "group".
-'button.import' => 'Impordi meeskond', // TODO: replace "team" with "group".
-// TODO: translate the following.
-// 'button.close' => 'Close',
-// 'button.stop' => 'Stop',
+'button.send_by_email' => 'Saada e-postiga',
+'button.create_group' => 'Loo grupp',
+'button.export' => 'Ekspordi grupp',
+'button.import' => 'Impordi grupp',
+'button.close' => 'Sulge',
+'button.stop' => 'Stopp',
 
 // Labels for controls on forms. Labels in this section are used on multiple forms.
-// TODO: translate the following.
-// 'label.group_name' => 'Group name',
-// 'label.address' => 'Address',
+'label.group_name' => 'Grupi nimi',
+'label.address' => 'Aadress',
 'label.currency' => 'Valuuta',
-// TODO: translate the following.
-// 'label.manager_name' => 'Manager name',
-// 'label.manager_login' => 'Manager login',
+'label.manager_name' => 'Halduri nimi',
+'label.manager_login' => 'Halduri sisenemine',
 'label.person_name' => 'Nimi',
 'label.thing_name' => 'Nimi',
-'label.login' => 'Login',
+'label.login' => 'Kasutajanimi',
 'label.password' => 'Salasõna',
 'label.confirm_password' => 'Kinnita salasõna',
-// TODO: translate the following.
-// 'label.email' => 'Email',
+'label.email' => 'E-post',
 'label.cc' => 'Cc',
-// TODO: translate the following.
-// 'label.bcc' => 'Bcc',
+'label.bcc' => 'Bcc',
 'label.subject' => 'Teema',
 'label.date' => 'Kuupäev',
-'label.start_date' => 'Algab kuupäevast',
-'label.end_date' => 'Lõpeb kuupäeval',
+'label.start_date' => 'Algus kuupäev',
+'label.end_date' => 'Lõpu kuupäev',
 'label.user' => 'Kasutaja',
 'label.users' => 'Kasutajad',
-// TODO: translate the following.
-// 'label.group' => 'Group',
-// 'label.subgroups' => 'Subgroups',
-// 'label.roles' => 'Roles',
+'label.group' => 'Grupp',
+'label.subgroups' => 'Alamgrupid',
+'label.roles' => 'Rollid',
 'label.client' => 'Klient',
 'label.clients' => 'Kliendid',
-// TODO: translate the following.
-// 'label.option' => 'Option',
+'label.option' => 'Valik',
 'label.invoice' => 'Arve',
 'label.project' => 'Projekt',
 'label.projects' => 'Projektid',
-// TODO: translate the following.
-// 'label.task' => 'Task',
-// 'label.tasks' => 'Tasks',
-// 'label.description' => 'Description',
+'label.task' => 'Tööülesanne',
+'label.tasks' => 'Tööülesanded',
+'label.description' => 'Kirjeldus',
 'label.start' => 'Algus',
 'label.finish' => 'Lõpp',
 'label.duration' => 'Kestus',
 'label.note' => 'Märkus',
 'label.notes' => 'Märkused',
-// TODO: translate the following.
-// 'label.item' => 'Item',
-// 'label.cost' => 'Cost',
-// 'label.ip' => 'IP',
-// 'label.day_total' => 'Day total',
-'label.week_total' => 'Nädalane summa',
-// TODO: translate the following.
-// 'label.month_total' => 'Month total',
+'label.item' => 'Ese',
+'label.cost' => 'Hind',
+'label.ip' => 'IP',
+'label.day_total' => 'Päeva summa',
+'label.week_total' => 'Nädala summa',
+'label.month_total' => 'Kuu summa',
 'label.today' => 'Täna',
-// TODO: translate the following.
-// 'label.view' => 'View',
+'label.view' => 'Vaata',
 'label.edit' => 'Muuda',
 'label.delete' => 'Kustuta',
-'label.configure' => 'Konfigureeri',
+'label.configure' => 'Seadista',
 'label.select_all' => 'Vali kõik',
 'label.select_none' => 'Märgi kõik mittevalituks',
-// TODO: translate the following.
-// 'label.day_view' => 'Day view',
-// 'label.week_view' => 'Week view',
+'label.day_view' => 'Päeva vaade',
+'label.week_view' => 'Nädala vaade',
 'label.id' => 'ID',
-// TODO: translate the following.
-// 'label.language' => 'Language',
-// 'label.decimal_mark' => 'Decimal mark',
-// 'label.date_format' => 'Date format',
-// 'label.time_format' => 'Time format',
-// 'label.week_start' => 'First day of week',
+'label.language' => 'Keel',
+'label.decimal_mark' => 'Koma märk',
+'label.date_format' => 'Kuupäeva formaat',
+'label.time_format' => 'Kella formaat',
+'label.week_start' => 'Nädala alguspäev',
 'label.comment' => 'Kommentaar',
 'label.status' => 'Seisund',
-'label.tax' => 'Maks',
+'label.tax' => 'Maksud',
 'label.subtotal' => 'Vahesumma',
 'label.total' => 'Kokku',
-// TODO: translate the following.
-// 'label.client_name' => 'Client name',
-// 'label.client_address' => 'Client address',
+'label.client_name' => 'Kliendi nimi',
+'label.client_address' => 'Kliendi aadress',
 'label.or' => 'või',
-// TODO: translate the following.
-// 'label.error' => 'Error',
-// 'label.ldap_hint' => 'Type your <b>Windows login</b> and <b>password</b> in the fields below.',
+'label.error' => 'Viga',
+'label.ldap_hint' => 'Kasuta allolevas tabelis oma Windows\\\'i kasutajatunnuseid.',
 'label.required_fields' => '* nõutud väljad',
-// TODO: translate the following.
+// TODO: Translate label.on_behalf, perhaps trying as "instead of".
 // 'label.on_behalf' => 'on behalf of',
 'label.role_manager' => '(haldur)',
 'label.role_comanager' => '(kaashaldur)',
 'label.role_admin' => '(administraator)',
-// TODO: translate the following.
-// 'label.page' => 'Page',
-// 'label.condition' => 'Condition',
-// 'label.yes' => 'yes',
-// 'label.no' => 'no',
+'label.page' => 'Lehekülg',
+'label.condition' => 'Tingimus',
+'label.yes' => 'jah',
+'label.no' => 'ei',
 // Labels for plugins (extensions to Time Tracker that provide additional features).
-// TODO: translate the following.
-// 'label.custom_fields' => 'Custom fields',
-// 'label.monthly_quotas' => 'Monthly quotas',
-// 'label.type' => 'Type',
-// 'label.type_dropdown' => 'dropdown',
-// 'label.type_text' => 'text',
-// 'label.required' => 'Required',
+'label.custom_fields' => 'Eriväljad',
+'label.monthly_quotas' => 'Kuu kvoot',
+'label.type' => 'Tüüp',
+'label.type_dropdown' => 'rippmenüü',
+'label.type_text' => 'tekst',
+'label.required' => 'Kohustuslik',
 'label.fav_report' => 'Lemmikraport',
-// TODO: translate the following.
+
+// TODO: translate label.schedule.
+// The meaning of this is "cron schedule" - or a spec for Unix "cron" program.
+// See config pages for Locking and Notifications plugin, where it is used.
 // 'label.schedule' => 'Schedule',
+
+// TODO: translate the following.
 // 'label.what_is_it' => 'What is it?',
 // 'label.expense' => 'Expense',
 // 'label.quantity' => 'Quantity',
index 01e40bc..090111b 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.36.4709 | 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.36.4710 | 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>