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 $i18n_weekdays_short = array('Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab');
 
  39 $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');
 
  41 $i18n_key_words = array(
 
  43 // Menus - short selection strings that are displayed on top of application web pages.
 
  44 // Example: https://timetracker.anuko.com (black menu on top).
 
  45 'menu.login' => 'Login',
 
  46 'menu.logout' => 'Logout',
 
  47 // TODO: translate the following.
 
  48 // 'menu.forum' => 'Forum',
 
  49 'menu.help' => 'Ajuda',
 
  50 // TODO: translate the following.
 
  51 // 'menu.create_team' => 'Create Team',
 
  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' => 'Teams',
 
  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 equal to field "{1}".',
 
  84 // 'error.interval' => 'Field "{0}" must be greater than "{1}".',
 
  85 // 'error.project' => 'Select project.',
 
  86 // 'error.task' => 'Select task.',
 
  87 // 'error.client' => 'Select client.',
 
  88 // 'error.report' => 'Select report.',
 
  89 // 'error.record' => 'Select record.',
 
  90 // 'error.auth' => 'Incorrect login or password.',
 
  91 // 'error.user_exists' => 'User with this login already exists.',
 
  92 // 'error.project_exists' => 'Project with this name already exists.',
 
  93 // 'error.task_exists' => 'Task with this name already exists.',
 
  94 // 'error.client_exists' => 'Client with this name already exists.',
 
  95 // 'error.invoice_exists' => 'Invoice with this number already exists.',
 
  96 // 'error.no_invoiceable_items' => 'There are no invoiceable items.',
 
  97 // 'error.no_login' => 'No user with this login.',
 
  98 // 'error.no_teams' => 'Your database is empty. Login as admin and create a new team.',
 
  99 // 'error.upload' => 'File upload error.',
 
 100 // 'error.range_locked' => 'Date range is locked.',
 
 101 // 'error.mail_send' => 'Error sending mail.',
 
 102 // 'error.no_email' => 'No email associated with this login.',
 
 103 // 'error.uncompleted_exists' => 'Uncompleted entry already exists. Close or delete it.',
 
 104 // 'error.goto_uncompleted' => 'Go to uncompleted entry.',
 
 105 // 'error.overlap' => 'Time interval overlaps with existing records.',
 
 106 // 'error.future_date' => 'Date is in future.',
 
 108 // Labels for buttons.
 
 109 'button.login' => 'Login',
 
 110 'button.now' => 'Hoje',
 
 111 'button.save' => 'Salvar',
 
 112 // TODO: translate the following.
 
 113 // 'button.copy' => 'Copy',
 
 114 'button.cancel' => 'Cancelar',
 
 115 'button.submit' => 'Submeter',
 
 116 // TODO: translate the following.
 
 117 // 'button.add_user' => 'Add user',
 
 118 'button.add_project' => 'Adicionar projeto',
 
 119 // TODO: translate the following.
 
 120 // 'button.add_task' => 'Add task',
 
 121 // 'button.add_client' => 'Add client',
 
 122 // 'button.add_invoice' => 'Add invoice',
 
 123 // 'button.add_option' => 'Add option',
 
 124 'button.add' => 'Adicionar',
 
 125 // TODO: translate the following.
 
 126 // 'button.generate' => 'Generate',
 
 127 // 'button.reset_password' => 'Reset password',
 
 128 'button.send' => 'Enviar',
 
 129 'button.send_by_email' => 'Enviar por e-mail',
 
 130 // TODO: translate the following.
 
 131 // 'button.create_team' => 'Create team',
 
 132 // 'button.export' => 'Export team',
 
 133 // 'button.import' => 'Import team',
 
 134 // 'button.close' => 'Close',
 
 135 // 'button.stop' => 'Stop',
 
 137 // Labels for controls on forms. Labels in this section are used on multiple forms.
 
 138 // TODO: translate the following.
 
 139 // 'label.team_name' => 'Team name',
 
 140 // 'label.address' => 'Address',
 
 141 // 'label.currency' => 'Currency',
 
 142 // 'label.manager_name' => 'Manager name',
 
 143 // 'label.manager_login' => 'Manager login',
 
 144 'label.person_name' => 'Nome',
 
 145 'label.thing_name' => 'Nome',
 
 146 // TODO: translate the following.
 
 147 // 'label.login' => 'Login',
 
 148 'label.password' => 'Senha',
 
 149 'label.confirm_password' => 'Confirme a senha',
 
 150 'label.email' => 'E-mail',
 
 151 // TODO: translate the following.
 
 152 // 'label.cc' => 'Cc',
 
 153 // 'label.bcc' => 'Bcc',
 
 154 'label.subject' => 'Assunto',
 
 155 // TODO: translate the following.
 
 156 // 'label.date' => 'Date',
 
 157 // 'label.start_date' => 'Start date',
 
 158 // 'label.end_date' => 'End date',
 
 159 // 'label.user' => 'User',
 
 160 // 'label.users' => 'Users',
 
 161 // 'label.client' => 'Client',
 
 162 // 'label.clients' => 'Clients',
 
 163 // 'label.option' => 'Option',
 
 164 // 'label.invoice' => 'Invoice',
 
 165 // 'label.project' => 'Project',
 
 166 // 'label.projects' => 'Projects',
 
 167 // 'label.task' => 'Task',
 
 168 // 'label.tasks' => 'Tasks',
 
 169 // 'label.description' => 'Description',
 
 170 // 'label.start' => 'Start',
 
 171 // 'label.finish' => 'Finish',
 
 172 'label.duration' => 'Duração',
 
 173 // TODO: translate the following.
 
 174 // 'label.note' => 'Note',
 
 175 // 'label.notes' => 'Notes',
 
 176 // 'label.item' => 'Item',
 
 177 // 'label.cost' => 'Cost',
 
 178 // 'label.day_total' => 'Day total',
 
 179 // 'label.week_total' => 'Week total',
 
 180 // 'label.month_total' => 'Month total',
 
 181 // 'label.today' => 'Today',
 
 182 // 'label.total_hours' => 'Total hours',
 
 183 // 'label.total_cost' => 'Total cost',
 
 184 // 'label.view' => 'View',
 
 185 'label.edit' => 'Editar',
 
 186 'label.delete' => 'Apagar',
 
 187 // TODO: translate the following.
 
 188 // 'label.configure' => 'Configure',
 
 189 // 'label.select_all' => 'Select all',
 
 190 // 'label.select_none' => 'Deselect all',
 
 191 // 'label.day_view' => 'Day view',
 
 192 // 'label.week_view' => 'Week view',
 
 193 // 'label.id' => 'ID',
 
 194 // 'label.language' => 'Language',
 
 195 // 'label.decimal_mark' => 'Decimal mark',
 
 196 // 'label.date_format' => 'Date format',
 
 197 // 'label.time_format' => 'Time format',
 
 198 // 'label.week_start' => 'First day of week',
 
 199 // 'label.comment' => 'Comment',
 
 200 // 'label.status' => 'Status',
 
 201 // 'label.tax' => 'Tax',
 
 202 // 'label.subtotal' => 'Subtotal',
 
 203 // 'label.total' => 'Total',
 
 204 // 'label.client_name' => 'Client name',
 
 205 // 'label.client_address' => 'Client address',
 
 206 // 'label.or' => 'or',
 
 207 // 'label.error' => 'Error',
 
 208 // 'label.ldap_hint' => 'Type your <b>Windows login</b> and <b>password</b> in the fields below.',
 
 209 // 'label.required_fields' => '* - required fields',
 
 210 // 'label.on_behalf' => 'on behalf of',
 
 211 'label.role_manager' => '(gerente)',
 
 212 // TODO: translate the following.
 
 213 // 'label.role_comanager' => '(co-manager)',
 
 214 // 'label.role_admin' => '(administrator)',
 
 215 // 'label.page' => 'Page',
 
 216 // 'label.condition' => 'Condition',
 
 217 // 'label.yes' => 'yes',
 
 218 // 'label.no' => 'no',
 
 219 // Labels for plugins (extensions to Time Tracker that provide additional features).
 
 220 // TODO: translate the following.
 
 221 // 'label.custom_fields' => 'Custom fields',
 
 222 // 'label.monthly_quotas' => 'Monthly quotas',
 
 223 // 'label.type' => 'Type',
 
 224 // 'label.type_dropdown' => 'dropdown',
 
 225 // 'label.type_text' => 'text',
 
 226 // 'label.required' => 'Required',
 
 227 // 'label.fav_report' => 'Favorite report',
 
 228 // 'label.cron_schedule' => 'Cron schedule',
 
 229 // 'label.what_is_it' => 'What is it?',
 
 230 // 'label.expense' => 'Expense',
 
 231 // 'label.quantity' => 'Quantity',
 
 232 // 'label.paid_status' => 'Paid status',
 
 233 // 'label.paid' => 'Paid',
 
 234 // 'label.mark_paid' => 'Mark paid',
 
 235 // 'label.week_note' => 'Week note',
 
 236 // 'label.week_list' => 'Week list',
 
 239 'title.login' => 'Login',
 
 240 // TODO: translate the following.
 
 241 // 'title.teams' => 'Teams',
 
 242 // 'title.create_team' => 'Creating Team',
 
 243 // 'title.edit_team' => 'Editing Team',
 
 244 // 'title.delete_team' => 'Deleting Team',
 
 245 // 'title.reset_password' => 'Resetting Password',
 
 246 // 'title.change_password' => 'Changing Password',
 
 247 // 'title.time' => 'Time',
 
 248 // 'title.edit_time_record' => 'Editing Time Record',
 
 249 // 'title.delete_time_record' => 'Deleting Time Record',
 
 250 // 'title.expenses' => 'Expenses',
 
 251 // 'title.edit_expense' => 'Editing Expense Item',
 
 252 // 'title.delete_expense' => 'Deleting Expense Item',
 
 253 // 'title.predefined_expenses' => 'Predefined Expenses',
 
 254 // 'title.add_predefined_expense' => 'Adding Predefined Expense',
 
 255 // 'title.edit_predefined_expense' => 'Editing Predefined Expense',
 
 256 // 'title.delete_predefined_expense' => 'Deleting Predefined Expense',
 
 257 'title.reports' => 'Relatórios',
 
 258 // TODO: translate the following.
 
 259 // 'title.report' => 'Report',
 
 260 // 'title.send_report' => 'Sending Report',
 
 261 // 'title.invoice' => 'Invoice',
 
 262 // 'title.send_invoice' => 'Sending Invoice',
 
 263 // 'title.charts' => 'Charts',
 
 264 // 'title.projects' => 'Projects',
 
 265 // 'title.add_project' => 'Adding Project',
 
 266 // 'title.edit_project' => 'Editing Project',
 
 267 // 'title.delete_project' => 'Deleting Project',
 
 268 // 'title.tasks' => 'Tasks',
 
 269 // 'title.add_task' => 'Adding Task',
 
 270 // 'title.edit_task' => 'Editing Task',
 
 271 // 'title.delete_task' => 'Deleting Task',
 
 272 // 'title.users' => 'Users',
 
 273 // 'title.add_user' => 'Adding User',
 
 274 // 'title.edit_user' => 'Editing User',
 
 275 // 'title.delete_user' => 'Deleting User',
 
 276 // 'title.clients' => 'Clients',
 
 277 // 'title.add_client' => 'Adding Client',
 
 278 // 'title.edit_client' => 'Editing Client',
 
 279 // 'title.delete_client' => 'Deleting Client',
 
 280 // 'title.invoices' => 'Invoices',
 
 281 // 'title.add_invoice' => 'Adding Invoice',
 
 282 // 'title.view_invoice' => 'Viewing Invoice',
 
 283 // 'title.delete_invoice' => 'Deleting Invoice',
 
 284 // 'title.notifications' => 'Notifications',
 
 285 // 'title.add_notification' => 'Adding Notification',
 
 286 // 'title.edit_notification' => 'Editing Notification',
 
 287 // 'title.delete_notification' => 'Deleting Notification',
 
 288 // 'title.monthly_quotas' => 'Monthly Quotas',
 
 289 // 'title.export' => 'Exporting Team Data',
 
 290 // 'title.import' => 'Importing Team Data',
 
 291 // 'title.options' => 'Options',
 
 292 // 'title.profile' => 'Profile',
 
 293 // 'title.cf_custom_fields' => 'Custom Fields',
 
 294 // 'title.cf_add_custom_field' => 'Adding Custom Field',
 
 295 // 'title.cf_edit_custom_field' => 'Editing Custom Field',
 
 296 // 'title.cf_delete_custom_field' => 'Deleting Custom Field',
 
 297 // 'title.cf_dropdown_options' => 'Dropdown Options',
 
 298 // 'title.cf_add_dropdown_option' => 'Adding Option',
 
 299 // 'title.cf_edit_dropdown_option' => 'Editing Option',
 
 300 // 'title.cf_delete_dropdown_option' => 'Deleting Option',
 
 301 // NOTE TO TRANSLATORS: Locking is a feature to lock records from modifications (ex: weekly on Mondays we lock all previous weeks).
 
 302 // It is also a name for the Locking plugin on the Team profile page.
 
 303 // 'title.locking' => 'Locking',
 
 304 // 'title.week_view' => 'Week View',
 
 306 // Section for common strings inside combo boxes on forms. Strings shared between forms shall be placed here.
 
 307 // Strings that are used in a single form must go to the specific form section.
 
 308 // TODO: translate the following.
 
 309 // 'dropdown.all' => '--- all ---',
 
 310 // 'dropdown.no' => '--- no ---',
 
 311 // 'dropdown.current_day' => 'today',
 
 312 // 'dropdown.previous_day' => 'yesterday',
 
 313 // 'dropdown.selected_day' => 'day',
 
 314 // 'dropdown.current_week' => 'this week',
 
 315 // 'dropdown.previous_week' => 'previous week',
 
 316 // 'dropdown.selected_week' => 'week',
 
 317 // 'dropdown.current_month' => 'this month',
 
 318 // 'dropdown.previous_month' => 'previous month',
 
 319 // 'dropdown.selected_month' => 'month',
 
 320 // 'dropdown.current_year' => 'this year',
 
 321 // 'dropdown.previous_year' => 'previous year',
 
 322 // 'dropdown.selected_year' => 'year',
 
 323 // 'dropdown.all_time' => 'all time',
 
 324 // 'dropdown.projects' => 'projects',
 
 325 // 'dropdown.tasks' => 'tasks',
 
 326 // 'dropdown.clients' => 'clients',
 
 327 // 'dropdown.select' => '--- select ---',
 
 328 // 'dropdown.select_invoice' => '--- select invoice ---',
 
 329 // 'dropdown.status_active' => 'active',
 
 330 // 'dropdown.status_inactive' => 'inactive',
 
 331 // 'dropdown.delete'=>'delete',
 
 332 // 'dropdown.do_not_delete'=>'do not delete',
 
 333 // 'dropdown.paid' => 'paid',
 
 334 // 'dropdown.not_paid' => 'not paid',
 
 338 // TODO: refactoring ongoing down from here.
 
 340 // password reminder form attributes
 
 341 "form.fpass.send_pass_str" => 'senha foi enviada',
 
 342 "form.fpass.send_pass_subj" => 'Sua senha do Anuko Time Tracker',
 
 344 // administrator form
 
 345 "form.admin.options" => 'opções',
 
 347 // my time form attributes
 
 348 "form.mytime.title" => 'adicionar período',
 
 349 "form.mytime.date" => 'data',
 
 350 "form.mytime.project" => 'projeto',
 
 351 "form.mytime.start" => 'início',
 
 352 "form.mytime.finish" => 'fim',
 
 353 "form.mytime.note" => 'anotação',
 
 354 "form.mytime.daily" => 'trabalho diário',
 
 355 "form.mytime.total" => 'horas totais: ',
 
 356 "form.mytime.th.project" => 'projeto',
 
 357 "form.mytime.th.activity" => 'actividade',
 
 358 "form.mytime.th.start" => 'início',
 
 359 "form.mytime.th.finish" => 'finish',
 
 360 "form.mytime.th.duration" => 'duração',
 
 361 "form.mytime.th.note" => 'fim',
 
 362 "form.mytime.del_yes" => 'o período registrado foi apagado com sucesso',
 
 363 // Note to translators: the strings below are missing and must be added and translated 
 
 364 // "form.mytime.no_finished_rec" => 'this record was saved with only start time. it is not an error. logout if you need to.',
 
 365 // "form.mytime.billable" => 'billable',
 
 366 // "form.mytime.warn_tozero_rec" => 'this time record must be deleted because this time period is locked',
 
 367 // "form.mytime.uncompleted" => 'uncompleted',
 
 369 // profile form attributes
 
 370 // Note to translators: we need a more accurate translation of form.profile.create_title
 
 371 "form.profile.create_title" => 'criar nova conta de gerência',
 
 372 "form.profile.edit_title" => 'editando perfil',
 
 374 // people form attributes
 
 375 "form.people.ppl_str" => 'pessoas',
 
 376 "form.people.createu_str" => 'adicionar novo usuário',
 
 377 "form.people.edit_str" => 'editando usuário',
 
 378 "form.people.del_str" => 'apagando usuário',
 
 380 // Note to translators: "form.people.th.login" => 'e-mail', // email has been changed to login
 
 381 "form.people.th.role" => 'regra',
 
 382 "form.people.th.status" => 'status',
 
 383 // Note to translators: the strings below are missing and must be added and translated 
 
 384 // "form.people.th.project" => 'project',
 
 385 // "form.people.th.rate" => 'rate',
 
 386 "form.people.manager" => 'gerente',
 
 387 // Note to translators: the string below is missing and must be added and translated 
 
 388 // "form.people.comanager" => 'comanager',
 
 389 "form.people.empl" => 'usuário',
 
 391 // projects form attributes
 
 392 "form.project.proj_title" => 'projetos',
 
 393 "form.project.edit_str" => 'editando projeto',
 
 394 "form.project.add_str" => 'adicionando novo projeto',
 
 395 "form.project.del_str" => 'apagando projeto',
 
 397 // activities form attributes
 
 398 "form.activity.project" => 'project',
 
 401 "form.report.title" => 'relatórios',
 
 402 "form.report.from" => 'data inicial',
 
 403 "form.report.to" => 'data final',
 
 404 "form.report.duration" => 'duração',
 
 405 "form.report.start" => 'início',
 
 406 "form.report.finish" => 'fim',
 
 407 "form.report.note" => 'anotação',
 
 408 "form.report.project" => 'projeto',
 
 409 // Note to translators: the string below is missing and must be added and translated 
 
 410 // "form.report.totals_only" => 'totals only',
 
 411 "form.report.total" => 'horas totais',
 
 412 "form.report.th.empllist" => 'usuário',
 
 413 // Note to translators: the strings below must be translated
 
 414 // "form.report.th.date" => 'data',
 
 416 // mail form attributes
 
 417 "form.mail.from" => 'de',
 
 418 "form.mail.to" => 'para',
 
 419 "form.mail.comment" => 'comentário',
 
 420 "form.mail.above" => 'enviar este relatório por e-mail',
 
 421 // Note to translators: the strings below must be translated
 
 422 // "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.',
 
 423 // "form.mail.sending_str" => '<b>the message has been sent</b>',
 
 425 // miscellaneous strings
 
 426 "forward.forgot_password" => 'esqueceu a senha?',
 
 428 // strings inside contols on forms
 
 429 "controls.select.project" => '--- selecione projeto ---',
 
 430 "controls.per_tm" => 'este mês',
 
 431 "controls.per_lm" => 'último mês',
 
 432 "controls.per_tw" => 'esta semana',
 
 433 "controls.per_lw" => 'última semana',
 
 434 "controls.sel_period" => '--- selecione o período de tempo ---',
 
 437 "label.pbehalf_info" => '%s %s <b>on behalf of %s</b>',
 
 438 "label.time_noentry" => 'sem registro',
 
 439 "label.req_fields" => '* campos obrigatórios',
 
 440 "label.sel_tp" => 'selecione o período de tempo',
 
 441 "label.set_tp" => 'ou selecionar datas',
 
 442 "label.fields" => 'exibir campos',