2 // +----------------------------------------------------------------------+
3 // | Anuko Time Tracker
4 // +----------------------------------------------------------------------+
5 // | Copyright (c) Anuko International Ltd. (https://www.anuko.com)
6 // +----------------------------------------------------------------------+
7 // | LIBERAL FREEWARE LICENSE: This source code document may be used
8 // | by anyone for any purpose, and freely redistributed alone or in
9 // | combination with other software, provided that the license is obeyed.
11 // | There are only two ways to violate the license:
13 // | 1. To redistribute this code in source form, with the copyright
14 // | notice or license removed or altered. (Distributing in compiled
15 // | forms without embedded copyright notices is permitted).
17 // | 2. To redistribute modified versions of this code in *any* form
18 // | that bears insufficient indications that the modifications are
19 // | not the work of the original author(s).
21 // | This license applies to this document only, not any other software
22 // | that it may be combined with.
24 // +----------------------------------------------------------------------+
26 // | https://www.anuko.com/time_tracker/credits.htm
27 // +----------------------------------------------------------------------+
29 $i18n_language = 'Suomi';
30 $i18n_months = array('Tammikuu', 'Helmikuu', 'Maaliskuu', 'Huhtikuu', 'Toukokuu', 'Kesäkuu', 'Heinäkuu', 'Elokuu', 'Syyskuu', 'Lokakuu', 'Marraskuu', 'Joulukuu');
31 $i18n_weekdays = array('Sunnuntai', 'Maanantai', 'Tiistai', 'Keskiviikko', 'Torstai', 'Perjantai', 'Lauantai');
32 $i18n_weekdays_short = array('su', 'ma', 'ti', 'ke', 'to', 'pe', 'la');
34 $i18n_holidays = array('01/01', '01/06', '05/01', '06/24', '12/06', '12/25', '12/26');
36 $i18n_key_words = array(
38 // Menus - short selection strings that are displayed on the top of application web pages.
39 // Example: https://timetracker.anuko.com (black menu on top).
40 'menu.login' => 'Kirjaudu',
41 'menu.logout' => 'Kirjaudu ulos',
42 'menu.forum' => 'Keskustelupalsta',
43 'menu.help' => 'Apua',
44 'menu.create_team' => 'Luo tiimi',
45 'menu.profile' => 'Profiili',
46 'menu.time' => 'Tunnit',
47 'menu.expenses' => 'Kulut',
48 'menu.reports' => 'Raportit',
49 'menu.charts' => 'Kaaviot',
50 'menu.projects' => 'Projektit',
51 'menu.tasks' => 'Tehtävät',
52 'menu.users' => 'Käyttäjät',
53 'menu.teams' => 'Tiimit',
54 'menu.export' => 'Vie',
55 'menu.clients' => 'Asiakkaat',
56 'menu.options' => 'Optiot',
58 // Footer - strings on the bottom of most pages.
59 'footer.contribute_msg' => 'Voit osallistua Time Tracker -sovelluksen tuotekehitykseen monin tavoin.',
60 // 'Credits' is a bit difficult to translate, the exact literal term might be 'Ansiot' or 'Antaa tunnustus' but that's not widely used in this meaning.
61 // The term that is used is something like 'We are thanking' ('Kiitämme') but that does not sound good, either. So I just let it be as it was for time being as everybody (?) understands the meaning anyway.
62 'footer.credits' => 'Credits',
63 'footer.license' => 'Lisenssi',
64 'footer.improve' => 'Osallistu kehitystyöhön',
67 'error.access_denied' => 'Pääsy estetty.',
68 'error.sys' => 'Järjestelmävirhe.',
69 'error.db' => 'Tietokantavirhe.',
70 'error.field' => 'Virheellinen "{0}" tieto.',
71 'error.empty' => 'Kenttä "{0}" on tyhjä.',
72 'error.not_equal' => 'Kentät "{0}" ja "{1}" eivät ole samat.',
73 'error.interval' => 'Kentän "{0}" arvon tulee olla suurempi kuin kentän "{1}".',
74 'error.project' => 'Valitse projekti.',
75 'error.task' => 'Valitse tehtävä.',
76 'error.client' => 'Valitse asiakas.',
77 'error.report' => 'Valitse raportti.',
78 'error.auth' => 'Virheellinen käyttäjänimi tai salasana.',
79 'error.user_exists' => 'Tämä käyttäjänimi on jo olemassa.',
80 'error.project_exists' => 'Tämän niminen projekti on jo olemassa.',
81 'error.task_exists' => 'Tämän niminen tehtävä on jo olemassa.',
82 'error.client_exists' => 'Tämän niminen asiakas on jo olemassa.',
83 'error.invoice_exists' => 'Tällä numerolla oleva lasku on jo olemassa.',
84 'error.no_invoiceable_items' => 'Ei laskutettavia syötteitä.',
85 'error.no_login' => 'Tuntematon käyttäjänimi.',
86 'error.no_teams' => 'Tietokanta on tyhjä. Kirjaudu ylläpitäjänä ja luo uusi tiimi.',
87 'error.upload' => 'Virhe tiedoston lataus.',
88 'error.range_locked' => 'Aikaväli on lukittu.',
89 'error.mail_send' => 'Virhe postinlähetyksessä.',
90 'error.no_email' => 'Käyttäjätunnukseen ei ole liitetty sähköpostiosoitetta.',
91 'error.uncompleted_exists' => 'Kesken oleva syötetieto on jo olemassa. Sulje tai poista se.',
92 'error.goto_uncompleted' => 'Siirry kesken olevaan syötteeseen.',
93 'error.overlap' => 'Aikavälillä on päällekkäisiä syötteitä.',
94 'error.future_date' => 'Aika on tulevaisuudessa.',
96 // Labels for buttons.
97 'button.login' => 'Kirjaudu',
98 'button.now' => 'Nyt',
99 'button.save' => 'Tallenna',
100 'button.copy' => 'Kopioi',
101 'button.cancel' => 'Keskeytä',
102 'button.submit' => 'Hyväksy',
103 'button.add_user' => 'Lisää käyttäjä',
104 'button.add_project' => 'Lisää projekti',
105 'button.add_task' => 'Lisää tehtävä',
106 'button.add_client' => 'Lisää asiakas',
107 'button.add_invoice' => 'Lisää lasku',
108 'button.add_option' => 'Lisää optio',
109 'button.add' => 'Lisää',
110 'button.generate' => 'Luo',
111 'button.reset_password' => 'Nollaa salasana',
112 'button.send' => 'Lähetä',
113 'button.send_by_email' => 'Lähetä sähköpostilla',
114 'button.create_team' => 'Luo tiimi',
115 'button.export' => 'Vie tiimi',
116 'button.import' => 'Tuo tiimi',
117 'button.close' => 'Sulje',
118 'button.stop' => 'Lopeta',
120 // Labels for controls on forms. Labels in this section are used on multiple forms.
121 'label.team_name' => 'Tiimin nimi',
122 'label.address' => 'Osoite',
123 'label.currency' => 'Valuutta',
124 'label.manager_name' => 'Esimies',
125 'label.manager_login' => 'Esimiehen käyttäjätunnus',
126 'label.person_name' => 'Nimi',
127 'label.thing_name' => 'Nimi',
128 'label.login' => 'Käyttäjätunnus',
129 'label.password' => 'Salasana',
130 'label.confirm_password' => 'Vahvista salasana',
131 'label.email' => 'Sähköposti',
132 // TODO: translate the following.
133 // 'label.bcc' => 'Bcc',
134 'label.date' => 'Päiväys',
135 'label.start_date' => 'Aloituspäivä',
136 'label.end_date' => 'Päättymispäivä',
137 'label.user' => 'Käyttäjä',
138 'label.users' => 'Käyttäjät',
139 'label.client' => 'Asiakas',
140 'label.clients' => 'Asiakkaat',
141 'label.option' => 'Optio',
142 'label.invoice' => 'Lasku',
143 'label.project' => 'Projekti',
144 'label.projects' => 'Projektit',
145 'label.task' => 'Tehtävä',
146 'label.tasks' => 'Tehtävät',
147 'label.description' => 'Kuvaus',
148 'label.start' => 'Aloitus',
149 'label.finish' => 'Lopetus',
150 'label.duration' => 'Kesto',
151 'label.note' => 'Huom',
152 'label.item' => 'Syöte',
153 'label.cost' => 'Hinta',
154 'label.day_total' => 'Päivä yhteensä',
155 'label.week_total' => 'Viikko yhteensä',
156 // TODO: translate the following.
157 // 'label.month_total' => 'Month total',
158 'label.today' => 'Tänään',
159 'label.total_hours' => 'Tunnit yhteensä',
160 'label.total_cost' => 'Hinta yhteensä',
161 'label.view' => 'Näytä',
162 'label.edit' => 'Muokkaa',
163 'label.delete' => 'Poista',
164 'label.configure' => 'Aseta',
165 'label.select_all' => 'Valitse kaikki',
166 'label.select_none' => 'Poista kaikki valinnat',
168 'label.language' => 'Kieli',
169 'label.decimal_mark' => 'Desimaalierotin',
170 'label.date_format' => 'Päiväyksen muoto',
171 'label.time_format' => 'Kellonajan muoto',
172 'label.week_start' => 'Viikon 1. päivä',
173 'label.comment' => 'Kommentti',
174 'label.status' => 'Tila',
175 'label.tax' => 'Vero',
176 'label.subtotal' => 'Välisumma',
177 'label.total' => 'Yhteensä',
178 'label.client_name' => 'Asiakkaan nimi',
179 'label.client_address' => 'Asiakkaan osoite',
181 'label.error' => 'Virhe',
182 'label.ldap_hint' => 'Syötä <b>Windows-käyttäjätunnuksesi</b> ja <b>salasanasi</b> ao. kenttiin.',
183 'label.required_fields' => '* - pakolliset kentät',
184 'label.on_behalf' => 'puolesta',
185 'label.role_manager' => '(esimies)',
186 'label.role_comanager' => '(apu-esimies)',
187 'label.role_admin' => '(ylläpitäjä)',
188 'label.page' => 'Sivu',
189 // TODO: translate the following.
190 // 'label.condition' => 'Condition',
191 // Labels for plugins (extensions to Time Tracker that provide additional features).
192 'label.custom_fields' => 'Omat kentät',
193 // Translate the following.
194 // 'label.monthly_quotas' => 'Monthly quotas',
195 'label.type' => 'Tyyppi',
196 'label.type_dropdown' => 'pudotusvalikko',
197 'label.type_text' => 'teksti',
198 'label.required' => 'Pakollinen',
199 'label.fav_report' => 'Raporttipohja',
200 'label.cron_schedule' => 'Cron-ajoitus',
201 'label.what_is_it' => 'Mikä se on?',
204 'title.login' => 'Kirjautuminen',
205 'title.teams' => 'Tiimit',
206 'title.create_team' => 'Tiimin luonti',
207 'title.edit_team' => 'Tiimin muokkaus',
208 'title.delete_team' => 'Tiimin poisto',
209 'title.reset_password' => 'Salasanan nollaus',
210 'title.change_password' => 'Salasanan vaihto',
211 'title.time' => 'Tuntien kirjaus',
212 'title.edit_time_record' => 'Tuntikirjausten muokkaus',
213 'title.delete_time_record' => 'Tuntikirjausten poisto',
214 'title.expenses' => 'Kulut',
215 'title.edit_expense' => 'Kulutietojen muokkaus',
216 'title.delete_expense' => 'Kulutiedon poisto',
217 'title.reports' => 'Raportit',
218 'title.report' => 'Raportti',
219 'title.send_report' => 'Raportin lähetys',
220 'title.invoice' => 'Lasku',
221 'title.send_invoice' => 'Laskun lähetys',
222 'title.charts' => 'Kaaviot',
223 'title.projects' => 'Projektit',
224 'title.add_project' => 'Projektin lisäys',
225 'title.edit_project' => 'Projektin muokkaus',
226 'title.delete_project' => 'Projektin poisto',
227 'title.tasks' => 'Tehtävät',
228 'title.add_task' => 'Tehtävän lisäys',
229 'title.edit_task' => 'Tehtävän muokkaus',
230 'title.delete_task' => 'Tehtävän poisto',
231 'title.users' => 'Käyttäjät',
232 'title.add_user' => 'Käyttäjän lisäys',
233 'title.edit_user' => 'Käyttäjän muokkaus',
234 'title.delete_user' => 'Käyttäjän poisto',
235 'title.clients' => 'Asiakkaat',
236 'title.add_client' => 'Asiakkaan lisäys',
237 'title.edit_client' => 'Asiakkaan muokkaus',
238 'title.delete_client' => 'Asiakkaan poisto',
239 'title.invoices' => 'Laskut',
240 'title.add_invoice' => 'Laskun lisäys',
241 'title.view_invoice' => 'Laskun tarkastelu',
242 'title.delete_invoice' => 'Laskun poisto',
243 'title.notifications' => 'Ilmoitukset',
244 'title.add_notification' => 'Ilmoituksen lisäys',
245 'title.edit_notification' => 'Ilmoituksen muokkaus',
246 'title.delete_notification' => 'Ilmoituksen poisto',
247 // 'title.monthly_quotas' => 'Monthly Quotas',
248 'title.export' => 'Tiimitietojen vienti',
249 'title.import' => 'Tiimitietojen tunti',
250 'title.options' => 'Optiot',
251 'title.profile' => 'Profiili',
252 'title.cf_custom_fields' => 'Omat kentät',
253 'title.cf_add_custom_field' => 'Oman kentän lisäys',
254 'title.cf_edit_custom_field' => 'Oman kentän muokkaus',
255 'title.cf_delete_custom_field' => 'Oman kentän poisto',
256 'title.cf_dropdown_options' => 'Pudotusvalikon vaihtoehdot',
257 'title.cf_add_dropdown_option' => 'Vaihtoehdon lisäys',
258 'title.cf_edit_dropdown_option' => 'Vaihtoehdon muokkaus',
259 'title.cf_delete_dropdown_option' => 'Vaihtoehdon poisto',
260 'title.locking' => 'Lukitus',
262 // Section for common strings inside combo boxes on forms. Strings shared between forms shall be placed here.
263 // Strings that are used in a single form must go to the specific form section.
264 'dropdown.all' => '--- kaikki ---',
265 'dropdown.no' => '--- ei ---',
266 'dropdown.this_day' => 'tämä päivä',
267 'dropdown.this_week' => 'tämä viikko',
268 'dropdown.last_week' => 'viime viikko',
269 'dropdown.this_month' => 'tämä kuu',
270 'dropdown.last_month' => 'viime kuu',
271 'dropdown.this_year' => 'tämä vuosi',
272 'dropdown.all_time' => 'kaikki tunnit',
273 'dropdown.projects' => 'projektit',
274 'dropdown.tasks' => 'tehtävät',
275 'dropdown.clients' => 'asiakkaat',
276 'dropdown.select' => '--- valitse ---',
277 'dropdown.select_invoice' => '--- valitse lasku ---',
278 'dropdown.status_active' => 'aktiivinen',
279 'dropdown.status_inactive' => 'inaktiivinen',
280 'dropdown.delete'=>'poista',
281 'dropdown.do_not_delete'=>'älä poista',
283 // Below is a section for strings that are used on individual forms. When a string is used only on one form it should be placed here.
284 // One exception is for closely related forms such as "Time" and "Editing Time Record" with similar controls. In such cases
285 // a string can be defined on the main form and used on related forms. The reasoning for this is to make translation effort easier.
286 // Strings that are used on multiple unrelated forms should be placed in shared sections such as label.<stringname>, etc.
288 // Login form. See example at https://timetracker.anuko.com/login.php.
289 'form.login.forgot_password' => 'Salasana unohtunut?',
290 'form.login.about' =>'Anuko <a href="https://www.anuko.com/lp/tt_2.htm" target="_blank">Time Tracker</a> on yksinkertainen ja helppokäyttöinen vapaan koodin tuntiseurantaohjelmisto.',
292 // Resetting Password form. See example at https://timetracker.anuko.com/password_reset.php.
293 'form.reset_password.message' => 'Salasanan nollauspyyntöviesti lähetetty.',
294 'form.reset_password.email_subject' => 'Anuko Time Tracker -salasanan nollauspyyntö',
295 'form.reset_password.email_body' => "Hyvä käyttäjä,\n\nJoku, mahdollisesti sinä itse, on pyytänyt nollaamaan Anuko Time Tracker -ohjelman salasanasi. Jos haluat nollata salasanasi, käy sivulla \n\n%s\n\nAnuko Time Tracker on yksinkertainen ja helppokäyttöinen vapaan koodin tuntiseurantaohjelmisto. Lisätietoja sivulla https://www.anuko.com.\n\n",
297 // Changing Password form. See example at https://timetracker.anuko.com/password_change.php?ref=1.
298 'form.change_password.tip' => 'Syötä uusi salasana ja osoita Tallenna.',
300 // Time form. See example at https://timetracker.anuko.com/time.php.
301 'form.time.duration_format' => '(hh:mm tai 0.0h)',
302 'form.time.billable' => 'Laskutettava',
303 'form.time.uncompleted' => 'Keskeneräinen',
304 // TODO: translate the following.
305 // 'form.time.remaining_quota' => 'Remaining quota',
306 // 'form.time.over_quota' => 'Over quota',
308 // Editing Time Record form. See example at https://timetracker.anuko.com/time_edit.php (get there by editing an uncompleted time record).
309 'form.time_edit.uncompleted' => 'Vain aloitusaika tallennettiin tietueeseen. Kyseessä ei ole virhe.',
311 // Reports form. See example at https://timetracker.anuko.com/reports.php
312 'form.reports.save_as_favorite' => 'Tallenna raporttipohjaksi',
313 'form.reports.confirm_delete' => 'Haluatko varmasti poistaa tämän raporttipohjan?',
314 'form.reports.include_records' => 'Sisällytä tietueet',
315 'form.reports.include_billable' => 'laskutettavat',
316 'form.reports.include_not_billable' => 'ei-laskutettavat',
317 'form.reports.include_invoiced' => 'laskutettu',
318 'form.reports.include_not_invoiced' => 'laskuttamatta',
319 'form.reports.select_period' => 'Valitse ajanjakso',
320 'form.reports.set_period' => 'tai aseta päivät',
321 'form.reports.show_fields' => 'Näytä kentät',
322 'form.reports.group_by' => 'Ryhmittelyperuste',
323 'form.reports.group_by_no' => '--- ei ryhmitystä ---',
324 'form.reports.group_by_date' => 'päivä',
325 'form.reports.group_by_user' => 'käyttäjä',
326 'form.reports.group_by_client' => 'asiakas',
327 'form.reports.group_by_project' => 'projekti',
328 'form.reports.group_by_task' => 'tehtävä',
329 'form.reports.totals_only' => 'Vain yhteissummat',
331 // Report form. See example at https://timetracker.anuko.com/report.php
332 // (after generating a report at https://timetracker.anuko.com/reports.php).
333 'form.report.export' => 'Vie',
335 // Invoice form. See example at https://timetracker.anuko.com/invoice.php
336 // (you can get to this form after generating a report).
337 'form.invoice.number' => 'Laskun numero',
338 'form.invoice.person' => 'Henkilö',
339 'form.invoice.invoice_to_delete' => 'Poistettava lasku',
340 'form.invoice.invoice_entries' => 'Laskurivit',
342 // Charts form. See example at https://timetracker.anuko.com/charts.php
343 'form.charts.interval' => 'Ajalta',
344 'form.charts.chart' => 'Kaavio',
346 // Projects form. See example at https://timetracker.anuko.com/projects.php
347 'form.projects.active_projects' => 'Aktiiviset projektit',
348 'form.projects.inactive_projects' => 'Ei-aktiiviset projektit',
350 // Tasks form. See example at https://timetracker.anuko.com/tasks.php
351 'form.tasks.active_tasks' => 'Aktiiviset tehtävät',
352 'form.tasks.inactive_tasks' => 'Ei-aktiiviset tehtävät',
354 // Users form. See example at https://timetracker.anuko.com/users.php
355 'form.users.active_users' => 'Aktiiviset käyttäjät',
356 'form.users.inactive_users' => 'Ei-aktiiviset käyttäjät',
357 // TODO: translate the following.
358 // 'form.users.uncompleted_entry' => 'User has an uncompleted time entry',
359 'form.users.role' => 'Rooli',
360 'form.users.manager' => 'Esimies',
361 'form.users.comanager' => 'Apuesimies',
362 'form.users.rate' => 'Taksa',
363 'form.users.default_rate' => 'Oletustuntitaksa',
365 // Client delete form. See example at https://timetracker.anuko.com/client_delete.php
366 'form.client.client_to_delete' => 'Poistettava asiakas',
367 'form.client.client_entries' => 'Asiakassyötteet',
369 // Clients form. See example at https://timetracker.anuko.com/clients.php
370 'form.clients.active_clients' => 'Aktiiviset asiakkaat',
371 'form.clients.inactive_clients' => 'Ei-aktiiviset asiakkaat',
373 // Strings for Exporting Team Data form. See example at https://timetracker.anuko.com/export.php
374 'form.export.hint' => 'Voit viedä tiimin tiedot xml-tiedostoksi, mikä voi helpottaa tietojen siirtoa omalle palvelimelle.',
375 'form.export.compression' => 'Pakkaus',
376 'form.export.compression_none' => 'ei pakata',
377 'form.export.compression_bzip' => 'bzip',
379 // Strings for Importing Team Data form. See example at https://timetracker.anuko.com/imort.php (login as admin first).
380 'form.import.hint' => 'Tuo tiimitiedot xml-tiedostosta.',
381 'form.import.file' => 'Valitse tiedosto',
382 'form.import.success' => 'Tietojen tuonti onnistui.',
384 // Teams form. See example at https://timetracker.anuko.com/admin_teams.php (login as admin first).
385 'form.teams.hint' => 'Luo uusi tiimi luomalla ensin tiimin esimiehen käyttäjätili.<br>Tiimin tiedot voi myös tuoda toiselta Anuko Time Tracker -palvelimelta xml-muodossa (käyttäjänimien oltava uusia).',
387 // Profile form. See example at https://timetracker.anuko.com/profile_edit.php.
388 'form.profile.12_hours' => '12-tuntinen',
389 'form.profile.24_hours' => '24-tuntinen',
390 'form.profile.tracking_mode' => 'Seurantamuoto',
391 'form.profile.mode_time' => 'aika',
392 'form.profile.mode_projects' => 'projektit',
393 'form.profile.mode_projects_and_tasks' => 'projektit ja tehtävät',
394 'form.profile.record_type' => 'Tietueen tyyppi',
395 'form.profile.type_all' => 'kaikki',
396 'form.profile.type_start_finish' => 'aloitus ja lopetus',
397 'form.profile.type_duration' => 'kesto',
398 'form.profile.plugins' => 'Lisäosat',
400 // Mail form. See example at https://timetracker.anuko.com/report_send.php when emailing a report.
401 'form.mail.from' => 'Lähettäjä',
402 'form.mail.to' => 'Vastaanottaja',
403 'form.mail.cc' => 'Kopio',
404 'form.mail.subject' => 'Aihe',
405 'form.mail.report_subject' => 'Time Tracker -raportti',
406 'form.mail.footer' => 'Anuko Time Tracker on yksinkertainen ja helppokäyttöinen vapaan koodin tuntiseurantaohjelmisto. Lisätietoja sivulla <a href="https://www.anuko.com">www.anuko.com</a>.',
407 'form.mail.report_sent' => 'Raportti lähetetty.',
408 'form.mail.invoice_sent' => 'Lasku lähetetty.',
410 // Quotas configuration form.
411 // TODO: translate the following.
412 // 'form.quota.year' => 'Year',
413 // 'form.quota.month' => 'Month',
414 // 'form.quota.quota' => 'Quota',
415 // 'form.quota.workday_hours' => 'Hours in a work day',
416 // 'form.quota.hint' => 'If values are empty, quotas are calculated automatically based on workday hours and holidays.',