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 // Note: escape apostrophes with THREE backslashes, like here: choisir l\\\'option.
30 // Other characters (such as double-quotes in http links, etc.) do not have to be escaped.
32 $i18n_language = 'Norsk';
33 $i18n_months = array('Januar', 'Februar', 'Mars', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Desember');
34 $i18n_weekdays = array('Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag');
35 // TODO: check translation of $i18n_weekdays_short.
36 $i18n_weekdays_short = array('Sø', 'Ma', 'Ti', 'On', 'To', 'Fr', 'Lø');
38 $i18n_holidays = array('01/01', '04/05', '04/09', '04/10', '04/12', '04/13', '05/01', '05/17', '05/21', '05/31', '06/01', '12/25', '12/26');
40 $i18n_key_words = array(
42 // Menus - short selection strings that are displayed on top of application web pages.
43 // Example: https://timetracker.anuko.com (black menu on top).
44 'menu.login' => 'Innlogging',
45 'menu.logout' => 'Logg ut',
46 // TODO: translate the following.
47 // 'menu.forum' => 'Forum',
48 'menu.help' => 'Hjelp',
49 // TODO: translate the following.
50 // 'menu.create_team' => 'Create Team',
51 'menu.profile' => 'Profil',
53 // TODO: translate the following.
54 // 'menu.expenses' => 'Expenses',
55 'menu.reports' => 'Rapporter',
56 'menu.charts' => 'Diagrammer',
57 'menu.projects' => 'Prosjekter',
58 // TODO: translate the following.
59 // 'menu.tasks' => 'Tasks',
60 // 'menu.users' => 'Users',
61 // 'menu.teams' => 'Teams',
62 'menu.export' => 'Eksport',
63 'menu.clients' => 'Klienter',
64 'menu.options' => 'Opsjoner',
66 // Footer - strings on the bottom of most pages.
67 // TODO: translate the following.
68 // 'footer.contribute_msg' => 'You can contribute to Time Tracker in different ways.',
69 // 'footer.credits' => 'Credits',
70 // 'footer.license' => 'License',
71 // 'footer.improve' => 'Contribute', // Translators: this could mean "Improve", if it makes better sense in your language.
72 // This is a link to a webpage that describes how to contribute to the project.
75 // TODO: translate the following.
76 // 'error.access_denied' => 'Access denied.',
77 // 'error.sys' => 'System error.',
78 'error.db' => 'Databasefeil.',
79 'error.field' => 'Feil "{0}" data.',
80 'error.empty' => 'Feltet "{0}" er tomt.',
81 'error.not_equal' => 'Feltet "{0}" stemmer ikke med "{1}".',
82 // TODO: translate the following.
83 // 'error.interval' => 'Field "{0}" must be greater than "{1}".',
84 'error.project' => 'Velg prosjekt.',
85 // TODO: translate the following.
86 // 'error.task' => 'Select task.',
87 // 'error.client' => 'Select client.',
88 // 'error.report' => 'Select report.',
89 // 'error.record' => 'Select record.',
90 'error.auth' => 'Feil brukernavn eller passord.',
91 'error.user_exists' => 'Bruker med et slikt brukernavn eksisterer allerede.',
92 'error.project_exists' => 'Et prosjekt med dette navnet er allerede opprettet.',
93 // TODO: translate the following.
94 // 'error.task_exists' => 'Task with this name already exists.',
95 'error.client_exists' => 'En klient med dette navnet er allerede opprettet.',
96 // TODO: translate the following.
97 // 'error.invoice_exists' => 'Invoice with this number already exists.',
98 // 'error.no_invoiceable_items' => 'There are no invoiceable items.',
99 'error.no_login' => 'Det er ingen bruker med dette brukernavnet.',
100 // TODO: translate the following.
101 // 'error.no_teams' => 'Your database is empty. Login as admin and create a new team.',
102 'error.upload' => 'Feil med lasting av fil.',
103 // TODO: translate the following.
104 // 'error.range_locked' => 'Date range is locked.',
105 'error.mail_send' => 'Feil ved sending av e-post.',
106 'error.no_email' => 'Det er ingen e-post knyttet til dette brukernavnet.',
107 'error.uncompleted_exists' => 'Ufullført registrering finnes allerede. Lukk eller slett den.',
108 'error.goto_uncompleted' => 'Gå til ufullført registrering.',
109 // TODO: translate the following.
110 // 'error.overlap' => 'Time interval overlaps with existing records.',
111 // 'error.future_date' => 'Date is in future.',
113 // Labels for buttons.
114 'button.login' => 'Innlogging',
115 'button.now' => 'Nå',
116 'button.save' => 'Lagre',
117 // TODO: translate the following.
118 // 'button.copy' => 'Copy',
119 'button.cancel' => 'Avbryt',
120 // TODO: translate the following.
121 // 'button.submit' => 'Submit',
122 'button.add_user' => 'Legg til bruker',
123 'button.add_project' => 'Legg til prosjekt',
124 // TODO: translate the following.
125 // 'button.add_task' => 'Add task',
126 'button.add_client' => 'Legg til klient',
127 // TODO: translate the following.
128 // 'button.add_invoice' => 'Add invoice',
129 // 'button.add_option' => 'Add option',
130 'button.add' => 'Legg til',
131 'button.generate' => 'Generer',
132 'button.reset_password' => 'Resett passord',
133 'button.send' => 'Send',
134 'button.send_by_email' => 'Send som e-post',
135 'button.create_team' => 'Opprett team',
136 'button.export' => 'Eksport team',
137 'button.import' => 'Importer team',
138 // TODO: translate the following.
139 // 'button.close' => 'Close',
140 // 'button.stop' => 'Stop',
142 // Labels for controls on forms. Labels in this section are used on multiple forms.
143 // TODO: translate the following.
144 // 'label.team_name' => 'Team name',
145 // 'label.address' => 'Address',
146 'label.currency' => 'Valuta',
147 // TODO: translate the following.
148 // 'label.manager_name' => 'Manager name',
149 // 'label.manager_login' => 'Manager login',
150 // 'label.person_name' => 'Name',
151 // 'label.thing_name' => 'Name',
152 // 'label.login' => 'Login',
153 'label.password' => 'Passord',
154 'label.confirm_password' => 'Bekreft passord',
155 'label.email' => 'E-post',
156 // TODO: translate the following.
157 // 'label.cc' => 'Cc',
158 // 'label.bcc' => 'Bcc',
159 'label.subject' => 'Emne',
160 // TODO: translate the following.
161 // 'label.date' => 'Date',
162 // 'label.start_date' => 'Start date',
163 // 'label.end_date' => 'End date',
164 // 'label.user' => 'User',
165 // 'label.users' => 'Users',
166 // 'label.client' => 'Client',
167 // 'label.clients' => 'Clients',
171 // TODO: refactoring ongoing down from here.
173 'label.total' => 'totalt',
174 // TODO: translate the following.
175 // 'label.page' => 'Page',
176 // 'label.condition' => 'Condition',
177 // 'label.yes' => 'yes',
178 // 'label.no' => 'no',
181 // TODO: the entire title section is missing here. See the English file.
183 // 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.
185 // "form.filter.project" => 'prosjekt',
186 // "form.filter.filter" => 'favorittrapport',
187 // "form.filter.filter_new" => 'lagre som favoritt',
188 // "form.filter.filter_confirm_delete" => 'er du sikker på at du vil slette denne favorittrapporten?',
190 // login form attributes
191 "form.login.title" => 'innlogging',
192 "form.login.login" => 'innlogging',
194 // password reminder form attributes
195 // Note to translators: "form.fpass.title" => 'remind password', // the string must be translated
196 "form.fpass.login" => 'innlogging',
197 "form.fpass.send_pass_str" => 'passordet er sendt',
198 "form.fpass.send_pass_subj" => 'Anuko Time Tracker passordet ditt',
199 // Note to translators: strings below need to be translated.
200 // "form.fpass.send_pass_body" => "Kjære bruker,\n\nNoen, trolig deg, bad om å få ditt Anuko Time Tracker password resatt. Vær vennlig å besøk denne lenken dersom du ønsker at passordet ditt skal resettes.\n\n%s\n\nAnuko Time Tracker er et enkelt og brukervennlig system for tidsregistrering basert på åpen kildekode. Les mer på https://www.anuko.com.\n\n",
201 // "form.fpass.reset_comment" => "vennligst skriv inn passordet og klikk på lagre for å resette passsordet.",
203 // Note to translators: the strings below must be translated
204 // // administrator form
205 // "form.admin.title" => 'administrator',
206 // "form.admin.duty_text" => 'opprett et nytt team ved å opprette en ny team manager konto.<br>du kan også importere team data fra en xml fil fra en annen Anuko Time Tracker server (ingen login kollisjoner er tillatt).',
208 // "form.admin.change_pass" => 'bytt passord på administratorkontoen',
209 // "form.admin.profile.title" => 'team',
210 // "form.admin.profile.noprofiles" => 'databasen din er tom. logg inn som admin og opprett et nytt team.',
211 // "form.admin.profile.comment" => 'slett team',
212 // "form.admin.profile.th.id" => 'id',
213 // "form.admin.profile.th.name" => 'navn',
214 // "form.admin.profile.th.edit" => 'endre',
215 // "form.admin.profile.th.del" => 'slett',
216 // "form.admin.profile.th.active" => 'aktiv',
217 // "form.admin.options" => 'opsjoner',
218 // "form.admin.custom_date_format" => "datoformat",
219 // "form.admin.custom_time_format" => "tidsformat",
220 // "form.admin.start_week" => "første ukedag",
222 // my time form attributes
223 // Note to translators: the 2 strings below must be translated
224 // "form.mytime.title" => 'min tid',
225 // "form.mytime.edit_title" => 'endre tidsoppføringen',
226 "form.mytime.del_str" => 'slett tids oppføringen',
227 "form.mytime.time_form" => ' (tt:mm)',
228 // Note to translators: "form.mytime.date" => 'dato', // the string must be translated
229 "form.mytime.project" => 'prosjekt',
230 "form.mytime.activity" => 'aktivitet',
231 "form.mytime.start" => 'starttid',
232 "form.mytime.finish" => 'ferdig',
233 "form.mytime.duration" => 'varighet',
234 "form.mytime.note" => 'notat',
235 "form.mytime.behalf" => 'daglig arbeide for',
236 "form.mytime.daily" => 'daglig arbeide',
237 "form.mytime.total" => 'totalt antall timer: ',
238 "form.mytime.th.project" => 'prosjekt',
239 "form.mytime.th.activity" => 'aktivitet',
240 "form.mytime.th.start" => 'starttid',
241 "form.mytime.th.finish" => 'ferdig',
242 "form.mytime.th.duration" => 'varighet',
243 "form.mytime.th.note" => 'notat',
244 "form.mytime.th.edit" => 'endre',
245 "form.mytime.th.delete" => 'slett',
246 // Note to translators: the strings below must be translated
247 // "form.mytime.del_yes" => 'tidsoppføringen er slettet',
248 // "form.mytime.no_finished_rec" => 'Denne oppføringen ble lagret kun med starttid. Det er ikke en feil. Logg ut om nødvendig.',
249 // "form.mytime.billable" => 'kan faktureres',
250 // "form.mytime.warn_tozero_rec" => 'Denne oppføringen må slettes fordi tidsperioden er låst',
251 // "form.mytime.uncompleted" => 'uferdig',
253 // profile form attributes
254 // Note to translators: we need a more accurate translation of form.profile.create_title
255 "form.profile.create_title" => 'lag ny adminkonto',
256 "form.profile.edit_title" => 'endre profil',
257 "form.profile.name" => 'navn',
258 "form.profile.login" => 'innlogging',
260 // Note to translators: the strings below are missing and must be added and translated
261 // "form.profile.showchart" => 'vis kakediagram',
262 // "form.profile.lang" => 'språk',
263 // "form.profile.custom_date_format" => "dato format",
264 // "form.profile.custom_time_format" => "tims format",
265 // "form.profile.default_format" => "(default)",
266 // "form.profile.start_week" => "første dag i uken",
268 // people form attributes
269 "form.people.ppl_str" => 'personer',
270 "form.people.createu_str" => 'legg til ny bruker',
271 "form.people.edit_str" => 'endre bruker',
272 "form.people.del_str" => 'slett bruker',
273 "form.people.th.name" => 'navn',
274 "form.people.th.login" => 'innlogging',
275 "form.people.th.role" => 'rolle',
276 "form.people.th.edit" => 'endre',
277 "form.people.th.del" => 'slett',
278 "form.people.th.status" => 'status',
279 // Note to translators: the 2 strings below are missing and must be added and translated
280 // "form.people.th.project" => 'prosjekt',
281 // "form.people.th.rate" => 'timesats',
282 // Note to translators: the strings below must be correctly translated
283 // "form.people.manager" => 'admin',
284 // "form.people.comanager" => 'co-manager',
285 "form.people.empl" => 'bruker',
286 "form.people.name" => 'navn',
287 "form.people.login" => 'innlogging',
289 "form.people.rate" => 'timesats',
290 // Note to translators: the strings below are missing and must be added and translated
291 // "form.people.comanager" => 'co-manager',
292 // "form.people.projects" => 'prosjekter',
294 // projects form attributes
295 "form.project.proj_title" => 'prosjekter',
296 "form.project.edit_str" => 'endre prosjekt',
297 "form.project.add_str" => 'legg til nytt prosjekt',
298 "form.project.del_str" => 'slett prosjekt',
299 "form.project.th.name" => 'navn',
300 "form.project.th.edit" => 'endre',
301 "form.project.th.del" => 'slett',
302 "form.project.name" => 'navn',
304 // activities form attributes
305 "form.activity.act_title" => 'aktiviteter',
306 "form.activity.add_title" => 'legg til ny aktivitet',
307 "form.activity.edit_str" => 'endre aktivitet',
308 // Note to translators: "form.activity.del_str" => 'slett aktivitet', // the string is incompletely translated
309 "form.activity.name" => 'navn',
310 "form.activity.project" => 'prosjekt',
311 "form.activity.th.name" => 'navn',
312 "form.activity.th.project" => 'prosjekt',
313 "form.activity.th.edit" => 'endre',
314 "form.activity.th.del" => 'slett',
317 "form.report.title" => 'rapporter',
318 "form.report.from" => 'starttid',
319 "form.report.to" => 'ferdig',
320 "form.report.groupby_user" => 'bruker',
321 "form.report.groupby_project" => 'prosjekt',
322 "form.report.groupby_activity" => 'aktivitet',
323 "form.report.duration" => 'varighet',
324 "form.report.start" => 'starttid',
325 "form.report.activity" => 'aktivitet',
326 "form.report.show_idle" => 'antall dager ikke aktiv',
327 "form.report.finish" => 'ferdig',
328 "form.report.note" => 'notat',
329 "form.report.project" => 'prosjekt',
330 // Note to translators: the strings below must be translated
331 // "form.report.totals_only" => 'kun summer',
332 "form.report.total" => 'totalt antall timer',
333 "form.report.th.empllist" => 'bruker',
334 "form.report.th.date" => 'dato',
335 "form.report.th.project" => 'prosjekt',
336 "form.report.th.activity" => 'aktivitet',
337 "form.report.th.start" => 'starttid',
338 "form.report.th.finish" => 'ferdig',
339 "form.report.th.duration" => 'varighet',
340 "form.report.th.note" => 'notat',
342 // mail form attributes
343 "form.mail.from" => 'fra',
344 "form.mail.to" => 'til',
345 "form.mail.comment" => 'kommentar',
346 "form.mail.above" => 'send denne rapporten som e-post',
347 // Note to translators: the strings below must be translated
348 // "form.mail.footer_str" => 'Anuko Time Tracker is et enkelt, brukervennlig tidsregistreringssystem<br>basert på åpen kildekode. Besøk <a href="https://www.anuko.com">www.anuko.com</a> for flere opplysninger.',
349 // "form.mail.sending_str" => '<b>the message has been sent</b>',
351 // invoice attributes
352 "form.invoice.title" => 'faktura',
353 "form.invoice.caption" => 'faktura',
354 "form.invoice.above" => 'tilleggsinformasjon for faktura',
355 // Note to translators: the strings below are missing and must be added and translated
356 // "form.invoice.select_cust" => 'velg klient',
357 // "form.invoice.fillform" => 'fyll inn i feltene',
358 "form.invoice.date" => 'dato',
359 "form.invoice.number" => 'fakturanummer',
360 "form.invoice.tax" => 'MVA',
361 "form.invoice.comment" => 'notat',
362 "form.invoice.th.username" => 'person',
363 "form.invoice.th.time" => 'timer',
364 "form.invoice.th.rate" => 'sats',
365 "form.invoice.th.summ" => 'antall',
366 "form.invoice.subtotal" => 'delsum',
367 "form.invoice.customer" => 'kommentar',
368 "form.invoice.mailinv_above" => 'send denne fakturaen som e-post',
369 // Note to translators: "form.invoice.sending_str" => '<b>invoice has been sent</b>', // the string must be translated
371 // Note to translators: the strings below are missing and must be added and translated
372 // "form.migration.zip" => 'komprimering',
373 // "form.migration.file" => 'velg fil',
374 // "form.migration.import.title" => 'import data',
375 // "form.migration.import.success" => 'import gjennomført vellykket',
376 // "form.migration.import.text" => 'import team data fra en xml fil',
377 // "form.migration.export.title" => 'export data',
378 // "form.migration.export.success" => 'eksport gjennomført vellykket',
379 // "form.migration.export.text" => 'du kan eksportere alle team data til en XML fil. dette kan være nyttig dersom du skal migrere data til din egen server.',
380 // "form.migration.compression.none" => 'ingen',
381 // "form.migration.compression.gzip" => 'gzip',
382 // "form.migration.compression.bzip" => 'bzip',
384 // "form.client.title" => 'klienter',
385 // "form.client.add_title" => 'legg til klient',
386 // "form.client.edit_title" => 'endre klient',
387 // "form.client.del_title" => 'slett klient',
388 // "form.client.th.name" => 'navn',
389 // "form.client.th.edit" => 'endre',
390 // "form.client.th.del" => 'slett',
391 // "form.client.name" => 'navn',
392 // "form.client.tax" => 'avgift',
393 // "form.client.comment" => 'kommentar ',
395 // miscellaneous strings
396 "forward.forgot_password" => 'glemt passordet?',
397 "forward.edit" => 'endre',
398 "forward.delete" => 'slett',
399 "forward.tocsvfile" => 'eksporter data til en .csv fil',
400 // Note to translators: the strings below are missing and must be translated and added
401 // "forward.toxmlfile" => 'eksporter data til en .xml fil',
402 // "forward.geninvoice" => 'lag faktura',
403 // "forward.change" => 'konfigur klienter',
405 // strings inside contols on forms
406 "controls.select.project" => '--- velg prosjekt ---',
407 "controls.select.activity" => '--- velg aktivitet ---',
408 // Note to translators: the string below is missing and must be translated and added
409 // "controls.select.client" => '--- velg klient ---',
410 "controls.project_bind" => '--- alle ---',
411 "controls.all" => '--- alle ---',
412 // Note to translators: the strings below are missing and must be translated and added
413 // "controls.notbind" => '--- no ---',
414 "controls.per_tm" => 'denne måneden',
415 "controls.per_lm" => 'forrige måned',
416 "controls.per_tw" => 'denne uken',
417 "controls.per_lw" => 'forrige uke',
418 // Note to translators: the strings below are missing and must be translated and added
419 // "controls.per_td" => 'i dag',
420 // "controls.per_at" => 'all tid',
421 // "controls.per_ty" => 'dette årr',
422 "controls.sel_period" => '--- velg tidsperiode ---',
423 "controls.sel_groupby" => '--- ingen sortering ---',
424 // Note to translators: the strings below are missing and must be translated and added
425 // "controls.inc_billable" => 'fakturerbar',
426 // "controls.inc_nbillable" => 'ikke fakturerbar',
427 // "controls.default" => '--- default ---',
430 // Note to translators: the strings below are missing and must be translated and added
431 // "label.chart.title1" => 'aktiviteter for bruker',
432 // "label.chart.title2" => 'prosjekter for bruker',
433 // "label.chart.period" => 'diagram for perioden',
435 "label.pinfo" => '%s, %s',
436 "label.pinfo2" => '%s',
437 "label.pbehalf_info" => '%s %s <b>på vegne av %s</b>',
438 // Note to translators: the strings below must be correctly translated
439 // "label.pminfo" => ' (admin)',
440 // "label.pcminfo" => ' (co-manager)',
441 // "label.painfo" => ' (administrator)',
442 "label.time_noentry" => 'ingen tilgang',
443 "label.today" => 'i dag',
444 "label.req_fields" => '* obligatoriske felt',
445 "label.sel_project" => 'velg prosjekt',
446 "label.sel_activity" => 'velg aktivitet',
447 "label.sel_tp" => 'velg tidsperiode',
448 "label.set_tp" => 'eller sett dato',
449 "label.fields" => 'vis feltene',
450 "label.group_title" => 'sorter på',
451 // Note to translators: the strings below must be translated
452 // "label.include_title" => 'ta med oppføringer',
453 // "label.inv_str" => 'faktura',
454 "label.set_empl" => 'velg brukere',
455 // Note to translators: the strings below are missing and must be translated and added
456 // "label.sel_all" => 'velg alle',
457 // "label.sel_none" => 'velg ingen',
458 // "label.or" => 'or',
459 // "label.disable" => 'slå av',
460 // "label.enable" => 'slå på',
461 // "label.filter" => 'filter',
462 // "label.timeweek" => 'uken totalt',
463 // "label.hrs" => 'timer',
464 // "label.errors" => 'feil',
465 // "label.ldap_hint" => 'Skriv din <b>Windows login</b> og <b>passord</b> i feltene nedenfor.',
466 // "label.calendar_today" => 'i dag',
467 // "label.calendar_close" => 'lukk',
470 // "login.hello.text" => "Anuko Time Tracker er et enkelt, brukervennlig tidsregistreringssystem basert på åpen kildekode.",