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 // Note to translators: Please use proper capitalization rules for your language.
 
  34 $i18n_language = 'Português';
 
  35 $i18n_months = array('janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'augosto', 'setembro', 'outubro', 'novembro', 'dezembro');
 
  36 $i18n_weekdays = array('domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado');
 
  37 // Note to translators: $i18n_weekdays_short needs to be translated. These are shortened days of week.
 
  38 // $i18n_weekdays_short = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
 
  40 $i18n_holidays = array('01/01', '02/24', '04/10', '04/12', '04/25', '05/01', '06/10', '06/11', '08/15', '10/05', '01/11', '12/01', '12/08', '12/25');
 
  42 $i18n_key_words = array(
 
  45 'menu.login' => 'Login',
 
  46 'menu.logout' => 'Logout',
 
  47 // TODO: Translate the following:
 
  48 // 'menu.forum' => 'Forum',
 
  49 'menu.help' => 'Ajuda',
 
  50 // Note to translators: menu.create_team needs a more accurate translation.
 
  51 'menu.create_team' => 'criar nova conta de gerente',
 
  52 'menu.profile' => 'Perfil',
 
  53 'menu.time' => 'Tempo',
 
  54 // TODO: Translate the following:
 
  55 // 'menu.expenses' => 'Expenses',
 
  56 'menu.reports' => 'Relatórios',
 
  57 // TODO: Translate the following:
 
  58 // 'menu.charts' => 'Charts',
 
  59 'menu.projects' => 'Projetos',
 
  60 // TODO: Translate the following:
 
  61 // 'menu.tasks' => 'Tasks',
 
  62 // 'menu.users' => 'Users',
 
  63 // 'menu.teams' => 'Tams',
 
  64 // 'menu.export' => 'Export',
 
  65 // 'menu.clients' => 'Clients',
 
  66 'menu.options' => 'Opções',
 
  68 // Footer - strings on the bottom of most pages.
 
  69 // TODO: Translate the following:
 
  70 // 'footer.contribute_msg' => 'You can contribute to Time Tracker in different ways.',
 
  71 // 'footer.credits' => 'Credits',
 
  72 // 'footer.license' => 'License',
 
  73 // 'footer.improve' => 'Contribute', // Translators: this could mean "Improve", if it makes better sense in your language.
 
  74                                      // This is a link to a webpage that describes how to contribute to the project.
 
  77 // TODO: Translate the following:
 
  78 // 'error.access_denied' => 'Access denied.',
 
  79 // 'error.sys' => 'System error.',
 
  80 // 'error.db' => 'database error',
 
  81 // 'error.field' => 'incorrect "{0}" data',
 
  82 // 'error.empty' => 'field "{0}" is empty',
 
  83 // 'error.not_equal' => 'field "{0}" is not equaled to field "{1}"',
 
  84 // 'error.interval' => 'incorrect interval',
 
  85 // 'error.project' => 'select project',
 
  86 // 'error.activity' => 'select activity',
 
  87 // 'error.auth' => 'incorrect login or password',
 
  88 // 'error.user_exists' => 'user with this login already exists',
 
  89 // 'error.project_exists' => 'project with this name already exists',
 
  90 // 'error.activity_exists' => 'activity with this name already exists',
 
  91 // 'error.client_exists' => 'client with this name already exists',
 
  92 // 'error.no_login' => 'no user with this e-mail',
 
  93 // 'error.upload' => 'file upload error',
 
  94 // 'error.range_locked' => 'Date range is locked.',
 
  95 // 'error.mail_send' => 'error sending mail',
 
  96 // 'error.no_email' => 'no email associated with this login',
 
  97 // 'error.uncompleted_exists' => 'uncompleted entry already exists. close or delete it.',
 
  98 // 'error.goto_uncompleted' => 'go to uncompleted entry.',
 
 100 // labels for various buttons
 
 101 'button.login' => 'login',
 
 102 'button.now' => 'hoje',
 
 103 // 'button.set' => 'set',
 
 104 'button.save' => 'salvar',
 
 105 'button.delete' => 'apagar',
 
 106 'button.cancel' => 'cancelar',
 
 107 'button.submit' => 'submeter',
 
 108 // Note to translators: 'button.add_user' => 'add user', // the string must be translated
 
 109 'button.add_project' => 'adicionar projeto',
 
 110 'button.add_activity' => 'adicionar atividade',
 
 111 // 'button.add_client' => 'add client', // TODO: translate this.
 
 112 'button.add' => 'adicionar',
 
 113 // Note to translators: strings below need to be translated.
 
 114 // 'button.generate' => 'generate',
 
 115 // 'button.reset_password' => 'reset password',
 
 116 'button.send' => 'enviar',
 
 117 'button.send_by_email' => 'enviar por e-mail',
 
 118 // Note to translators: the strings below are missing and must be added and translated
 
 119 // 'button.save_as_new' => 'save as new',
 
 120 // 'button.create_team' => 'create team',
 
 121 // 'button.export' => 'export team',
 
 122 // 'button.import' => 'import team',
 
 123 // 'button.apply' => 'apply',
 
 125 // labels for controls on various forms
 
 126 // TODO: translate label.team_name and strings below.
 
 127 // 'label.team_name' => 'team name',
 
 128 // 'label.currency' => 'currency',
 
 129 // 'label.manager_name' => 'manager name',
 
 130 // 'label.manager_login' => 'manager login',
 
 131 'label.password' => 'senha',
 
 132 'label.confirm_password' => 'confirme a senha',
 
 133 // 'label.email' => 'email',
 
 134 // Translate the following string.
 
 135 // 'label.page' => 'Page',
 
 138 // TODO: the entire title section is missing here. See the English file.
 
 140 // "form.filter.project" => 'project',
 
 141 // "form.filter.filter" => 'favorite report',
 
 142 // "form.filter.filter_new" => 'save as favorite',
 
 143 // "form.filter.filter_confirm_delete" => 'are you sure you want to delete this favorite report?',
 
 145 // login form attributes
 
 146 "form.login.title" => 'login como usuário de debug',
 
 147 // Note to translators: "form.login.login" => 'e-mail', // email has been changed to login
 
 149 // password reminder form attributes
 
 150 "form.fpass.title" => 'enviar senha',
 
 151 // Note to translators: "form.fpass.login" => 'e-mail', // email has been changed to login
 
 152 "form.fpass.send_pass_str" => 'senha foi enviada',
 
 153 "form.fpass.send_pass_subj" => 'Sua senha do Anuko Time Tracker',
 
 154 // Note to translators: the strings below are missing and must be added and translated
 
 155 // "form.fpass.send_pass_body" => "Dear User,\n\nSomeone, possibly you, requested your Anuko Time Tracker password reset. Please visit this link if you want to reset your password.\n\n%s\n\nAnuko Time Tracker is a simple, easy to use, open source time tracking system. Visit https://www.anuko.com for more information.\n\n",
 
 156 // "form.fpass.reset_comment" => "to reset your password please type it in and click on save",
 
 158 // administrator form
 
 159 // Note to translators: the strings below are missing and must be added and translated 
 
 160 // "form.admin.title" => 'administrator',
 
 161 // "form.admin.duty_text" => 'create a new team by creating a new team manager account.<br>you can also import team data from an xml file from another Anuko Time Tracker server (no login collisions are allowed).',
 
 163 // "form.admin.change_pass" => 'change password of administrator account',
 
 164 // "form.admin.profile.title" => 'teams',
 
 165 // "form.admin.profile.noprofiles" => 'your database is empty. login as admin and create a new team.',
 
 166 // "form.admin.profile.comment" => 'delete team',
 
 167 // "form.admin.profile.th.id" => 'id',
 
 168 // "form.admin.profile.th.name" => 'name',
 
 169 // "form.admin.profile.th.edit" => 'edit',
 
 170 // "form.admin.profile.th.del" => 'delete',
 
 171 // "form.admin.profile.th.active" => 'active',
 
 172 // "form.admin.lock.period" => 'lock interval in days',
 
 173 "form.admin.options" => 'opções',
 
 174 // "form.admin.lang_default" => 'site default language',
 
 175 // "form.admin.custom_date_format" => "date format",
 
 176 // "form.admin.custom_time_format" => "time format",
 
 177 // "form.admin.start_week" => "first day of week",
 
 179 // my time form attributes
 
 180 "form.mytime.title" => 'adicionar período',
 
 181 // Note to translators: the strings below must be translated
 
 182 // "form.mytime.edit_title" => 'editing time record',
 
 183 // "form.mytime.del_str" => 'deleting time record',
 
 184 // "form.mytime.time_form" => ' (hh:mm)',
 
 185 "form.mytime.date" => 'data',
 
 186 "form.mytime.project" => 'projeto',
 
 187 "form.mytime.activity" => 'atividade',
 
 188 "form.mytime.start" => 'início',
 
 189 "form.mytime.finish" => 'fim',
 
 190 "form.mytime.duration" => 'duração',
 
 191 "form.mytime.note" => 'anotação',
 
 192 // Note to translators: the string below must be translated
 
 193 // "form.mytime.behalf" => 'daily work for',
 
 194 "form.mytime.daily" => 'trabalho diário',
 
 195 "form.mytime.total" => 'horas totais: ',
 
 196 "form.mytime.th.project" => 'projeto',
 
 197 "form.mytime.th.activity" => 'actividade',
 
 198 "form.mytime.th.start" => 'início',
 
 199 "form.mytime.th.finish" => 'finish',
 
 200 "form.mytime.th.duration" => 'duração',
 
 201 "form.mytime.th.note" => 'fim',
 
 202 "form.mytime.th.edit" => 'editar',
 
 203 "form.mytime.th.delete" => 'apagar',
 
 204 "form.mytime.del_yes" => 'o período registrado foi apagado com sucesso',
 
 205 // Note to translators: the strings below are missing and must be added and translated 
 
 206 // "form.mytime.no_finished_rec" => 'this record was saved with only start time. it is not an error. logout if you need to.',
 
 207 // "form.mytime.billable" => 'billable',
 
 208 // "form.mytime.warn_tozero_rec" => 'this time record must be deleted because this time period is locked',
 
 209 // "form.mytime.uncompleted" => 'uncompleted',
 
 211 // profile form attributes
 
 212 // Note to translators: we need a more accurate translation of form.profile.create_title
 
 213 "form.profile.create_title" => 'criar nova conta de gerência',
 
 214 "form.profile.edit_title" => 'editando perfil',
 
 215 "form.profile.name" => 'nome',
 
 216 // Note to translators: the string below is missing and must be added and translated 
 
 217 // "form.profile.login" => 'login',
 
 219 // Note to translators: the strings below are missing and must be added and translated 
 
 220 // "form.profile.showchart" => 'show pie charts',
 
 221 // "form.profile.lang" => 'language',
 
 222 // "form.profile.custom_date_format" => "date format",
 
 223 // "form.profile.custom_time_format" => "time format",
 
 224 // "form.profile.default_format" => "(default)",
 
 225 // "form.profile.start_week" => "first day of week",
 
 227 // people form attributes
 
 228 "form.people.ppl_str" => 'pessoas',
 
 229 "form.people.createu_str" => 'adicionar novo usuário',
 
 230 "form.people.edit_str" => 'editando usuário',
 
 231 "form.people.del_str" => 'apagando usuário',
 
 232 "form.people.th.name" => 'nome',
 
 233 // Note to translators: "form.people.th.login" => 'e-mail', // email has been changed to login
 
 234 "form.people.th.role" => 'regra',
 
 235 "form.people.th.edit" => 'editar',
 
 236 "form.people.th.del" => 'apagar',
 
 237 "form.people.th.status" => 'status',
 
 238 // Note to translators: the strings below are missing and must be added and translated 
 
 239 // "form.people.th.project" => 'project',
 
 240 // "form.people.th.rate" => 'rate',
 
 241 "form.people.manager" => 'gerente',
 
 242 // Note to translators: the string below is missing and must be added and translated 
 
 243 // "form.people.comanager" => 'comanager',
 
 244 "form.people.empl" => 'usuário',
 
 245 "form.people.name" => 'nome',
 
 246 // Note to translators: the string below is missing and must be added and translated 
 
 247 // "form.people.login" => 'login',
 
 249 "form.people.rate" => 'hourly rate',
 
 250 // Note to translators: the strings below are missing and must be added and translated 
 
 251 // "form.people.comanager" => 'co-manager',
 
 252 // "form.people.projects" => 'projects',
 
 254 // projects form attributes
 
 255 "form.project.proj_title" => 'projetos',
 
 256 "form.project.edit_str" => 'editando projeto',
 
 257 "form.project.add_str" => 'adicionando novo projeto',
 
 258 "form.project.del_str" => 'apagando projeto',
 
 259 "form.project.th.name" => 'nome',
 
 260 "form.project.th.edit" => 'editar',
 
 261 "form.project.th.del" => 'apagar',
 
 262 "form.project.name" => 'nome',
 
 264 // activities form attributes
 
 265 "form.activity.act_title" => 'atividades',
 
 266 "form.activity.add_title" => 'adicionando nova atividade',
 
 267 "form.activity.edit_str" => 'editando atividade',
 
 268 // Note to translators: the string below must be translated
 
 269 // "form.activity.del_str" => 'deleting activity',
 
 270 "form.activity.name" => 'nome',
 
 271 "form.activity.project" => 'project',
 
 272 "form.activity.th.name" => 'nome',
 
 273 "form.activity.th.project" => 'project',
 
 274 "form.activity.th.edit" => 'editar',
 
 275 "form.activity.th.del" => 'apagar',
 
 278 "form.report.title" => 'relatórios',
 
 279 "form.report.from" => 'data inicial',
 
 280 "form.report.to" => 'data final',
 
 281 // Note to translators: the strings below must be translated
 
 282 // "form.report.groupby_user" => 'user',
 
 283 // "form.report.groupby_project" => 'project',
 
 284 // "form.report.groupby_activity" => 'activity',
 
 285 "form.report.duration" => 'duração',
 
 286 "form.report.start" => 'início',
 
 287 "form.report.activity" => 'atividade',
 
 288 // Note to translators: the string below must be translated
 
 289 // "form.report.show_idle" => 'show idle',
 
 290 "form.report.finish" => 'fim',
 
 291 "form.report.note" => 'anotação',
 
 292 "form.report.project" => 'projeto',
 
 293 // Note to translators: the string below is missing and must be added and translated 
 
 294 // "form.report.totals_only" => 'totals only',
 
 295 "form.report.total" => 'horas totais',
 
 296 "form.report.th.empllist" => 'usuário',
 
 297 // Note to translators: the strings below must be translated
 
 298 // "form.report.th.date" => 'data',
 
 299 // "form.report.th.project" => 'project',
 
 300 // "form.report.th.activity" => 'activity',
 
 301 // "form.report.th.start" => 'start',
 
 302 // "form.report.th.finish" => 'finish',
 
 303 // "form.report.th.duration" => 'duration',
 
 304 // "form.report.th.note" => 'note',
 
 306 // mail form attributes
 
 307 "form.mail.from" => 'de',
 
 308 "form.mail.to" => 'para',
 
 309 "form.mail.cc" => 'cc',
 
 310 "form.mail.subject" => 'assunto',
 
 311 "form.mail.comment" => 'comentário',
 
 312 "form.mail.above" => 'enviar este relatório por e-mail',
 
 313 // Note to translators: the strings below must be translated
 
 314 // "form.mail.footer_str" => 'Anuko Time Tracker is a simple, easy to use, open source<br>time tracking system. Visit <a href="https://www.anuko.com">www.anuko.com</a> for more information.',
 
 315 // "form.mail.sending_str" => '<b>the message has been sent</b>',
 
 317 // invoice attributes
 
 318 // Note to translators: the strings below must be translated
 
 319 // "form.invoice.title" => 'invoice',
 
 320 // "form.invoice.caption" => 'invoice',
 
 321 // "form.invoice.above" => 'additional information for invoice',
 
 322 // "form.invoice.select_cust" => 'select client',
 
 323 // "form.invoice.fillform" => 'fill the fields',
 
 324 // "form.invoice.date" => 'invoice date',
 
 325 // "form.invoice.number" => 'invoice number',
 
 326 // "form.invoice.tax" => 'tax',
 
 327 // "form.invoice.comment" => 'comment ',
 
 328 // "form.invoice.th.username" => 'person',
 
 329 // "form.invoice.th.time" => 'hours',
 
 330 // "form.invoice.th.rate" => 'rate',
 
 331 // "form.invoice.th.summ" => 'amount',
 
 332 // "form.invoice.subtotal" => 'subtotal',
 
 333 // "form.invoice.customer" =>'customer',
 
 334 // Note to translators: the strings below must be translated
 
 335 // "form.invoice.mailinv_above" => 'send this invoice by e-mail',
 
 336 // "form.invoice.sending_str" => '<b>invoice has been sent</b>',
 
 338 // Note to translators: the strings below are missing and must be added and translated 
 
 339 // "form.migration.zip" => 'compression',
 
 340 // "form.migration.file" => 'select file',
 
 341 // "form.migration.import.title" => 'import data',
 
 342 // "form.migration.import.success" => 'import completed successfully',
 
 343 // "form.migration.import.text" => 'import team data from an xml file',
 
 344 // "form.migration.export.title" => 'export data',
 
 345 // "form.migration.export.success" => 'export completed successfully',
 
 346 // "form.migration.export.text" => 'you can export all team data into an xml file. this could be useful if you are migrating data to your own server.',
 
 347 // "form.migration.compression.none" => 'none',
 
 348 // "form.migration.compression.gzip" => 'gzip',
 
 349 // "form.migration.compression.bzip" => 'bzip',
 
 351 // "form.client.title" => 'clients',
 
 352 // "form.client.add_title" => 'add client',
 
 353 // "form.client.edit_title" => 'edit client',
 
 354 // "form.client.del_title" => 'delete client',
 
 355 // "form.client.th.name" => 'name',
 
 356 // "form.client.th.edit" => 'edit',
 
 357 // "form.client.th.del" => 'delete',
 
 358 // "form.client.name" => 'name',
 
 359 // "form.client.tax" => 'tax',
 
 360 // "form.client.comment" => 'comment ',
 
 362 // miscellaneous strings
 
 363 "forward.forgot_password" => 'esqueceu a senha?',
 
 364 // Note to translators: the strings below must be translated 
 
 365 // "forward.edit" => 'edit',
 
 366 // "forward.delete" => 'delete',
 
 367 // Note to translators: the string below must be translated 
 
 368 // "forward.tocsvfile" => 'export data to .csv file',
 
 369 // Note to translators: the strings below are missing and must be added and translated 
 
 370 // "forward.toxmlfile" => 'export data to .xml file',
 
 371 // "forward.geninvoice" => 'generate invoice',
 
 372 // "forward.change" => 'configure clients',
 
 374 // strings inside contols on forms
 
 375 "controls.select.project" => '--- selecione projeto ---',
 
 376 "controls.select.activity" => '--- selecione atividade ---',
 
 377 // Note to translators: the strings below are missing and must be added and translated 
 
 378 // "controls.select.client" => '--- select client ---',
 
 379 // "controls.project_bind" => '--- all ---',
 
 380 // "controls.all" => '--- all ---',
 
 381 // "controls.notbind" => '--- no ---',
 
 382 "controls.per_tm" => 'este mês',
 
 383 "controls.per_lm" => 'último mês',
 
 384 "controls.per_tw" => 'esta semana',
 
 385 "controls.per_lw" => 'última semana',
 
 386 // Note to translators: the strings below are missing and must be added and translated 
 
 387 // "controls.per_td" => 'this day',
 
 388 // "controls.per_at" => 'all time',
 
 389 // "controls.per_ty" => 'this year',
 
 390 "controls.sel_period" => '--- selecione o período de tempo ---',
 
 391 // Note to translators: the strings below must be translated 
 
 392 // "controls.sel_groupby" => '--- no grouping ---',
 
 393 // "controls.inc_billable" => 'billable',
 
 394 // "controls.inc_nbillable" => 'not billable',
 
 395 // "controls.default" => '--- default ---',
 
 398 // Note to translators: the strings below are missing and must be added and translated 
 
 399 // "label.chart.title1" => 'activities for user',
 
 400 // "label.chart.title2" => 'projects for user',
 
 401 // "label.chart.period" => 'chart for period',
 
 403 "label.pinfo" => '%s, %s',
 
 404 "label.pinfo2" => '%s',
 
 405 "label.pbehalf_info" => '%s %s <b>on behalf of %s</b>',
 
 406 "label.pminfo" => ' (gerente)',
 
 407 // Note to translators: the strings below are missing and must be added and translated 
 
 408 // "label.pcminfo" => ' (co-manager)',
 
 409 // "label.painfo" => ' (administrator)',
 
 410 "label.time_noentry" => 'sem registro',
 
 411 "label.today" => 'today',
 
 412 "label.req_fields" => '* campos obrigatórios',
 
 413 // Note to translators: the strings below must be translated 
 
 414 // "label.sel_project" => 'select project',
 
 415 // "label.sel_activity" => 'select activity',
 
 416 "label.sel_tp" => 'selecione o período de tempo',
 
 417 "label.set_tp" => 'ou selecionar datas',
 
 418 "label.fields" => 'exibir campos',
 
 419 // Note to translators: the strings below must be translated
 
 420 // "label.group_title" => 'group by',
 
 421 // "label.include_title" => 'include records',
 
 422 // "label.inv_str" => 'invoice',
 
 423 //" label.sel_all" => 'select all',
 
 424 // "label.sel_none" => 'deselect all',
 
 425 // "label.or" => 'or',
 
 426 // "label.disable" => 'disable',
 
 427 // "label.enable" => 'enable',
 
 428 // "label.filter" => 'filter',
 
 429 // "label.timeweek" => 'weekly total',
 
 430 // "label.hrs" => 'hrs',
 
 431 // "label.errors" => 'errors',
 
 432 // "label.ldap_hint" => 'Type your <b>Windows login</b> and <b>password</b> in the fields below.',
 
 433 // "label.calendar_today" => 'today',
 
 434 // "label.calendar_close" => 'close',
 
 437 // "login.hello.text" => "Anuko Time Tracker is a simple, easy to use, open source time tracking system.",